FFMpeg - 解码视频 H264 并发出警告:SEI 类型被截断;错误隐藏;没有加速的色彩空间转换



当调用avcodec_decode_video2(pCodecCtx, pFrame, &got_picture, &packet)时;从PMP文件解码H264视频。

我经常收到以下警告:

FF: SEI type 1 size 40 truncated at 36
FF: error while decoding MB 23 15, bytestream (td)
FF: Cannot use next picture in error concealment
...
FF: No accelerated colorspace conversion found from yuv420p to rgb24.
....

虽然,got_picture仍然返回 1,但视频质量很差,经常模糊和闪烁。怎么了?我能做什么?谢谢!

您正在解码的内容来自较旧的 ffmpeg/libav 版本,较旧的 libx264 版本生成无效的 SEI 有效负载。您看到的是相同的截断,被视为警告。

要更正此问题,您需要在启用以下比特流滤波器的情况下重新编码(而不是流复制):

-bsf:v 'h264_metadata=sei_user_data=dc45e9bde6d948b7962cd820d923eeef+x264 - core 150'

然后重新测试。

要更正错误,请使用 -ec 0 。如果您使用 mpv 播放此文件,您还需要传递 --vd-lavc-assume-old-x264 选项。

参考资料:邮件列表上的拼凑详细描述了这个问题。

最新更新