针对ffmpeg 解码h264优化

ffmpeg解码花屏,拖影,等等问题相信大家都遇见过,对于一些知识简单看视频的花点一瞬间过去可能影响不太,但对于做机器视觉的行业安防行业做视频分析,可能一张图花了造成误检测,没办法只能硬着头皮去解决,一开始无从下手,一开始的方案是看到的一片博客,地址https://blog.csdn.net/u013354805/article/details/51611391

但是我找了半天如何增加全局变量,怎么将数据传出来,是否线程安全,更可气的是通过查看avcodeccontext结构体传出来的地址不一样,完蛋只能放弃,如果有人用此法解决,非常感谢指导。

该死的百度也是一坨屎,没法办只能看ffmpeg源码,看看解码h264这段到底在干什么,经过一番痛苦源码阅读,虽然也没看懂,但是终于注意到一个参数,着重标识一下:AV_EF_EXPLODE

这个参数比较好啊,所有解码错他可以报出来(据自己看源码查出来),这个参数虽然解决了一些解码重大错误,但是拖影的问题仍然没办法解决,难道是该参数有问题,突然想到解码的缓存问题,猜想可能缓存造成的,所以在遇到解码错误的时候把解码器缓存清空一下,意想不到的好效果诞生了,在遇到解码错误的时候跳过该帧。

此法只对对视频质量要求比较强的项目,对帧率要求不太高,卡顿要求也不太的项目。

优化点1:

优化点2:

借用雷博的测试源码进行试验,可以自己用视频做测试效果。

对应的ffplay的修改:

1、

2、

猜你喜欢

转载自blog.csdn.net/huangyifei_1111/article/details/97263485