定位问题的原因是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一致
定位问题的原因是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一致
举报