avenc_mpeg4 doesn't appear to respond to different bitrates
I have a pipeline that reads YUV files, encodes the video in various codecs
(h.264, MPEG2, MPEG4, etc) then streams the video to various devices for
testing purposes. My pipeline is dynamic in that I can set the properties of
the various elements according to a test spec. For example, to test my
devices regarding how their respective decoders respond to a range of
bitrates, I can send a test stream using a pipeline where the encoder's
"bitrate" property is changed according to the range of bitrates I need to
test for. I am using wireshare on the network to monitor and graph the
bitrate to ensure that I am at least within a reasonable margin.
The problem I am having is that I cannot get the encoders to vary their
bitrates. Using the avenc_mpeg4 encoder, if I set the "bitrate" property to
1000 kbps wireshark graphs an average bitrate of about 6000 kbps. If I set
the "bitrate" property to 6000 kbps, wireshark shows the same average
So, what other properties of avenc_mpeg4 do I need to adjust to be able to
configure this encoder for various bitrates? I want a bit stream to be
configurable in a range of about 1000 kbps to about 5000 kbps.
I have tried various "pass" property values. But I am assuming that if I
want to configure a desired average bitrate, then I should use "pass" set to
"cbr" or 0, for constant bitrate encoding.
I have noticed that "bitrate-tolerance" does effect the average bitrate, but
using various "bitrate" values still produces the same average bitrates
regardless of the "bitrate-tolerance" values.
So it appears that some other property of avenc_mpeg4 is clamping the
average bitrate regardless of the "bitrate" property setting.