当前位置: 首页 > 工具软件 > SAIL > 使用案例 >

SOPHON sail.Decoder无法正常解码rtsp流(使用ffmpeg和opencv可以正常解码)

夔修伟
2023-12-01

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

定位问题的原因是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这个数字太大了。

SOPHON SAIL在2.7.0(20220412_224617)及以后的版本将extram_buffer_num设置为5,并且添加了其它设置,保持和opencv一致。

 类似资料: