MFC: different h264 profile and level output the same size encoded result

Randy Li randy.li at rock-chips.com
Sun Aug 28 22:58:59 PDT 2016



On 08/29/2016 01:49 PM, Andrzej Hajda wrote:
> Hi,
>
> On 08/27/2016 11:55 AM, Randy Li wrote:
>> Hi:
>>
>>    I have been reported that the setting the profile, level and bitrate
>> through the v4l2 extra controls would not make the encoded result
>> different. I tried it recently, it is true. Although the h264 parser
>> would tell me the result have been applied as different h264 profile and
>> level, but size is the same.
>>
>> You may try this in Gstreamer.
>>
>> gst-launch-1.0 -v \
>> videotestsrc num-buffers=500 ! video/x-raw, width=1920,height=1080 ! \
>> videoconvert ! \
>> v4l2video4h264enc
>> extra-controls="controls,h264_profile=1,video_bitrate=100;" ! \
>> h264parse ! matroskamux ! filesink location=/tmp/1.mkv
>>
>> Is there any way to reduce the size of MFC encoded data?
>>
>
> There is control called rc_enable (rate control enable), it must be set
> to one if you want to control bitrate.
> This control confuses many users, I guess it cannot be removed as it
> is already part of UAPI, but enabling it internally by the driver
> if user sets bitrate, profille, etc, would make it more saner.
I see, thank you so much.
A guy told me that the "frame_level_rate_control_enable=1" in _ 
extra-controls="encode,h264_level=10,h264_profile=4,frame_level_rate_control_enable=1,video_bitrate=2097152"
would also make it works.
But I really know there is a switch need to turn on.

>
> Regards
> Andrzej
>
>

-- 
Randy Li
The third produce department




More information about the linux-arm-kernel mailing list