我自己写的一个ffmpeg播放器,播放本地视频的时候可以完整播放,播放实时视频流的时候,播放一阵子后会av_read_frame返回值为-5,错误为 I/O 问题,查看了流媒体服务器的日志,显示的是socket send timeout。
在网上找了资料后,再对比了另一个播放器的实现后,定位问题在ffmpeg取流线程上。
解决方案:
如果ffmpeg取流线程同时兼顾解码,会导致cpu占用会很高。可以设置一个缓冲区和一个新线程。把取流线程的packet放到缓冲区,另一个线程实现解码渲染。经测试,没有发生该情况了。
04-04
5899

“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交