当调用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
选项。
参考资料:邮件列表上的拼凑详细描述了这个问题。