【发布时间】:2016-08-02 06:39:14
【问题描述】:
好的,我已经下载了一些 .yuv 格式的原始 UHD 序列,并在 .mp4 容器中使用 ffmpeg 对它们进行了编码(h264 4:4:4,100% 质量,25fps)。当我使用 ffprobe 找出编码了多少帧时,我得到了 600,所以这是 24 秒的视频。
但是,当我通过av_read_frame() 运行这些编码的视频序列时,我只得到了在av_read_frame() 返回错误代码-12 之前处理的帧的 40-50%。所以我猜测流中间有一些数据包被av_read_frame()读取并强制函数返回-12。
我的问题是,我应该如何处理这个问题,以便我可以编码全部帧数(600)?当av_read_frame() 返回的值与0 不同时,我应该av_free_packet() 并继续阅读下一帧吗?由于av_read_frame() 为错误代码返回值< 0,所以EOF 使用哪个错误代码,所以我可以隔离文件代码的结尾?
【问题讨论】: