omxh264enc properties

Hi everybody,

I have a project that aims to access the hardware encoder of NVIDIA Jetson TX2 to develop an adaptive video compression solution where we can change the parameters of the encoder to respect the bit-rate constraints in real time and on the fly. So now I should find the values of encoder’s parameters which help me to obtain the best quality of my video after encoding. Hope that someone can help me in the following :

  1. Now I have a simple pipeline : yuv file -> encoder -> h264 file -> decoder -> yuv’ file, I should change the parameters of the encoder to obtain the best quality of yuv’ file accordind to the input yuv file, so I start to change the parameters that I can find by typing the command : gst-inspect-1.0 omxh264enc, but there are some parameters that don’t affect the quality. Can someone help me to know which parameters I should change to improve the quality and if there are more details (or a documentation) about each property (because as not expert in the field of video compression, the information provided by gst-inspect-1.0 are not sufficient for me).

  2. How we can change the encoder parameters on the fly ?

  3. In order to access the encoder in real-time and to change its properties on the fly, it is better to use the gstreamer API or the MMAPI ?

I hope that I succeed to explain what I need in a good way, but my problem that I am not very good in English not also in video compression, so excuse me for my errors … and hope that someone can help me !!


Hi Nostalgie,
For gstreamer, you can refer to

Below encoder property can be changed on the fly:

bitrate             : Target bitrate
"force-IDR" :  void user_function (GstElement* object);

For MM API, please refer to tegra_multimedia_api/samples/01_video_encode

Thanks DaneLL for ur reply,

But can you tell me please, why some parameters don’t affect the quality of the output. When changing some parameters like : temporal-tradeoff, quant-i-frames … we don’t observe any changes in the output.


I can say that they don’t have effect on the encoder …

Please refer to