Nvidia hardware h264 encoder problem with arbitrary video resolutions

I having problems encoding arbitrary resolutions using omh264enc in gstreamer pipeline.

e-g 1600 x 726 would encode fine but 1610 x 726 would not. It would appear as distorted image. Same case with some other arbitrary resolutions.

What am I missing ? is there any ratio that I need to keep for frame sizes ?

Would you please provide the pipeline used for this issue?
I tried the following pipeline and it works well.

gst-launch-1.0 videotestsrc ! nvvidconv ! ‘video/x-raw(memory:NVMM), width=(int)1610, height=(int)726,format=(string)I420, framerate=(fraction)30/1’ ! omxh264enc ! qtmux ! filesink location=test.mp4 -e


Here is my pipeline:

appsrc name=src_name ! video/x-raw, format=(string)I420,width=(int)1610, height=(int)726, framerate=25/1 ! omxh264enc ! video/x-h264, stream-format=(string)byte-stream ! h264parse ! flvmux ! filesink location=test.mp4

And I am feeding in 1610x726 images So i dont really need any resizing.

Why would nvvidconv be necessary here ? even if I already am providing the images in correct format and Size ?

Hello, mdotali:
I suggest strongly using nvvidconv, which will improve performance significantly.

nvvidconv-omxh264enc path is optimized.


On the Jetson TK1 I noticed that nvidia plugins do not work with images, in which the width is not divisible by 4, or height is not divisible by 2. I hope, nvidia will fix these problems in the nearest future

I second that.