您的位置:首页 > 编程语言

H264支持码率变化和GOP调整的代码整理

2014-09-04 15:38 302 查看
1、现有代码要想支持H264变码率,需要修改的地方:

\platform\openmax\hantro_omx\libvideo\libenc\codec_hw\H264EncLib\ViEncH264.cpp         ViH264EncParam.rcupdateflag置1表示能够改变码率

\platform\openmax\hantro_omx\libvideo\libenc\codec_hw\H264EncLib\ViEncH264.h添加rcupdateflag这个变量

以前的应用代码

videocodec = gst_element_factory_make("omxh264enc", "video-codec");

 
g_object_set(videocodec, "control-rate", ratectrl, NULL);   //是否支持改变比特率
g_object_set(videocodec, "target-bitrate", targetrate, NULL);//如果支持,目标比特率

因为代码里的rcupdateflag这个变量没有添加,所以,即使设了也没有生效。现在经过以上修改,就可让设目标比特率的代码生效了。具体的调用层级:



从gstreamer到omx的调用细节:



2、支持GOP的改变

目前已经支持了编码率,具体做开发的平台上:car_digital_video_rec_140904

修改的文件

应用层:rec_gst_thread.cpp     增加调用g_object_set(elegroup.videocodec, "target-goplen", 2, NULL);

                                 注意:这个调用必须要在gst_element_set_state(elegroup.video_pipeline, GST_STATE_PLAYING);之后才能生效

底层修改的文件:1、/gstreamer/plugin_gst/

#       modified:   omx-1.0.0/omx/gstomxvideoenc.c

#       modified:   omx-1.0.0/omx/gstomxvideoenc.h

#       modified:   omx-1.0.0/omx/openmax/OMX_Index.h

#       modified:   omx-1.0.0/omx/openmax/OMX_Video.h

2、/platform/openmax/hantro_omx/

#       modified:   libvideo/libenc/codec_hw/H264EncLib/ViEncH264.cpp

#       modified:   libvideo/libenc/codec_hw/Inc/ViEncH264.h

#       modified:   vmc_omx/vmc_omx_component/h264enc/omx_avcenc.c

#       modified:   vmc_omx/vmc_omx_include/khronos/OMX_Index.h

#       modified:   vmc_omx/vmc_omx_include/khronos/OMX_Video.h
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: