avformat_close_input函数释放内存不彻底和有延时问题

如果使用了QSV/VAAPI硬件加速,在释放内存时没有按正确顺序释放就会出现这个问题:

[video4linux2,v4l2] Some buffers are still owned by the caller on close.

对解码器和编码器的释放一定要放到关闭输入流之前:

avcodec_free_context()
avformat_close_input()

同时如果报这个错误,avformat_open_input(),关闭/dev/videoX输入设备会滞后,意味着你不能关闭后立马打开,往往需要睡眠1s,不然它会报设备正在占用,busy等错误。

按照顺序释放,这个错误就会解决,可以在关闭后立马打开/dev/videoX设备,依然会有可能报错,经测试发现在avformat_close_input()关闭/dev/video0后,和avforma

猜你喜欢

转载自blog.csdn.net/weixin_43466192/article/details/129102952