Bitrate dynamic change of omxh264, vp8 encoder does not work

I have seen several answers in this forum saying that bitrate can be dynamically changed in the gst-omx encoder.

So, I tried to change the dynamic bit rate in the way in the forum below, but the bit rate change is not observed in the actual video.

[Gstreamer variable bitrate for UDP streaming]

g_object_set (G_OBJECT(encoder), "bitrate", 4000000, NULL);

I am working on a project for vp8, but after seeing in the forum that the dynamic bit rate cannot be changed for the vp9 format, I tried it with h264, but it still does not work.

My pipeline is this.

vp8: appsrc name=mysrc ! videoconvert ! omxvp8enc ! rtpvp8pay name=pay0 pt=96
h264: appsrc name=mysrc ! videoconvert ! omxh264enc ! h264parse ! rtph264pay name=pay0 pt=96

  1. Is the method I referenced the way to change the dynamic bitrate? Is there another way?

  2. If yes, do you know why the changed bit rate is not reflected?

  3. Does h264 support dynamic change and vp8 not?

The sample should work for vp8 if you use nvv4l2vp8enc. If you don’t see change in the print:

printf("bitrate = %d bps \n", average_rate);

Please share your release version so that we can do further investigation.