【发布时间】:2021-07-16 14:34:01
【问题描述】:
我创建了一个基于 FFmpeg api 的应用程序。应用程序读取视频帧,进行一些处理,然后将处理后的视频帧写入一个新文件。该应用程序在大多数情况下都可以正常工作。但是,当应用程序配置为使用具有 SD 分辨率 (720x480) 的 420 或 422 色度二次采样时,我会遇到奇怪的输出。当使用具有高清分辨率 (1920x1080) 的 420 或 422 色度二次采样时,输出结果很好。通过失真的输出,我可以看到问题出在子采样通道上。 Y 通道看起来不错,但 Cr 和 Cb 似乎失真了。
我没有在编码器中使用任何特定的编解码器选项,并且可以使用 prores 或 hevc 编解码器复制该问题。如果我输出到原始二进制视频文件,我看不到任何问题,这证实了问题在编码期间的某个时间发生,并且输入 AVFrame 的二进制数据在二次采样后格式正确。
图片如下:
【问题讨论】:
标签: ffmpeg video-processing video-encoding