我想使用Venc_switchCodecAlgCh来在应用层进行编码参数的动态设置,测试发现Venc_switchCodecAlgCh接口在设置h264 vbr模式时可以的,cbr模式一直会失败,相关cvbr相关参数尝试多种也不行,出错信息如下:
[m3video] Queueing codec switch reqObj into IVA [0]
[m3video] 21805:!ERROR!:ENCLINK::links_m3video/iva_enc/encLink_h264.c:[232]::INTERNAL ERROR:-1
[m3video] ALGCONTROL FAILED:CMD:1
[m3video] ERROR: XDM_UNSUPPORTEDPARAM = 14, [m3video] ERROR: XDM_FATALERROR = 15 [m3video] ERROR: IH264ENC_UNSUPPORTED_RATECONTROLPARAMS = 21, [m3video] [m3video] 21805:ERR::linkID:10000021::channelID:12::errorCode:-5::FileName:links_m3video/iva_enc/encLink_h264.c::linuNum:1270::errorCondition:(algStatus == XDM_EOK)
[m3video] 21808: Assertion @ Line: 925 in links_m3video/iva_enc/encLink_common.c: retVal == ENC_LINK_S_SUCCESS : failed !!!
另外 设置为mpeg4编码格式也会出错,测试过demo中的编码格式切换,发现h264(demo是写死了vbr模式)和mjpeg切换时可以的,切换到mpeg4也是会报报错,是不是这个接口sdk本身实现还不完善,还是调用这个接口时有些参数有比较特殊的规则需要注意,希望能得到大家的帮助,给点建议也好,谢谢了。
Chris Meng:
你好,
从错误提示来看是ratecontrol参数配置错误,你参考一下你使用的算法版本的user guide,看一下是否有参数范围配置错误,或者不能动态修改的你修改了? 对比一下你出错前后的参数,看看变化了什么。
eric liu:
回复 Chris Meng:
首先谢谢楼上的回复!
最近不知怎么回事,我的账号一直无法登录社区论坛,没能及时反馈。
我尝试过各种参数设定,Venc_switchCodecAlgCh接口始终无法正常使用,即使在调用时不报错了,编码器也无法正常编码出数据,后来百试无果后我放弃了使用该接口,直接在mcfw的我采用的usecase中来设定编码格式和参数(编码格式通过参数传入),现在h264和mpeg4能正常编码了,但又出现一个无法解决的问题,就是h264和mpeg4编码出的流始终都是cbr的效果,设置成vbr后通过测试发现码率跟cbr一模一样,没有任何变化,即使是静止画面,vbr模式下码率也是cbr一样的,我设置vbr的方法和sdk中的usecase中代码一模一样,设置vbr时没有任何报错或警告信息,通过mcfw中代码调试,也确认vbr是设置到了编码器,可能是什么原因呢,希望能得到大家的指点。