算能科技
直播中

杨勇

7年用户 1173经验值
私信 关注
[问答]

rtsp流使用ffmpeg和opencv可以正常解码,但是使用sail.Decoder无法正常解码是怎么回事?

rtsp流使用ffmpeg和opencv可以正常解码,但是使用sail.Decoder无法正常解码

回帖(1)

张莹

2023-9-19 17:22:18
定位问题的原因是extra_frame_buffer_num给的太大。分别分析几个矛盾的现象如下: #. ffmpeg下能够正常执行,而python sail下不能执行:这是因为ffmpeg下默认extra_frame_buffer_num为5 #. 录下码流后,离线文件python sail可以工作,rtsp下python sail不能工作:这是因为python sail只在rtsp下设置extram_buffer_num为20个
解码器内部每个instance最多允许32个 frame buffer,因为这个摄像头码流要求的缓存frame buffer比较多,加上20个extra frame buffer后,超过了32个,所以导致register frame buffer失败。
目前在opencv中配置extra_frame_buffer_num为3, ffmpeg默认为5,这个配置基本不影响到速度,如果需要直接用解码器解出来的frame buffer做缓存,可以试着配置为10,20这个数字太大了。
sail在2.7.0(20220412_224617)及以后的版本将extram_buffer_num设置为5,并且添加其它了其它设置,保持和opencv一致
举报

更多回帖

发帖
×
20
完善资料,
赚取积分