av_read_frame AVERROR_EOF

问题描述:

使用ffmpeg API编码,调用av_read_frame()读取缓存队列中的视频流时,提示AVERROR_EOF,导致进程提前终止。

原因解析:

因为ffmpeg的输入为缓存队列,缓存队列中的数据是一直在不断写入的,而ffmpeg是一直在读取,未控制写入侧和读取侧的速度,导致av_read_frame()读取缓存数据过快,从而产生AVERROR_EOF错误。

解决方案:

控制av_read_frame()读取缓存队列的速度,在读取缓存队列前进行预读取,根据缓存队列的大小判断是否进行av_read_frame(),从而控制缓存队列不被全部读取,避免产生AVERROR_EOF。

发布了59 篇原创文章 · 获赞 22 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/Martin_chen2/article/details/103069058
EOF