什么是使用 ffmpeg 从 mxf 视频格式中提取 YUV 色彩空间和无损压缩的理想图像格式



我希望能够处理.mxf视频文件中的帧。视频的图像格式为 JPEG 2000,使用 YUV 色彩空间,具有 4:2:2 子采样和无损压缩。

我的目的是使用 ffmpeg 从这个视频中提取帧。然后,提取的帧将在 Matlab 中进行处理(目前我对执行着色感兴趣(。

我想以尽可能少的数据丢失提取帧,我想在 YUV 色彩空间中工作。我知道 PNG 涉及无损过程,但只涉及 RGB 色彩空间 - 所以不是一个选项。

我想我可以在 YUV 色彩空间中提取 jpeg2000 帧,但我不确定我是否从压缩过程中丢失了数据。我在 ffmpeg 中尝试了以下代码:

ffmpeg -i video.mxf -r 1/5 out%03d.jp2

。但是,提取的JP2文件在各种软件中是不可读的,包括HiView,这是一个专门的JPEG 2000软件。

Quesiton 1:这种 jpeg 2000 提取方法无损吗?我做错了什么?

我还考虑以 tiff 格式提取图像,这样我就可以达到 YUV 和无损要求。我在 ffmpeg 中尝试了以下代码:

ffmpeg -i video.mxf -vcodec tiff f%10d.tif

。但是,提取的TIFF文件在Paint,paint.net 和Windows照片查看器等软件中是不可读的。

问题2:这种tiff提取方法正确吗?我做错了什么?

问题 3:满足我的 YUV 和无损要求的理想图像格式是什么?

您需要使用可以导入 YUV 图像的图像编辑器,更重要的是,在 YUV 色彩空间中工作。如果后一个功能不存在,则在保存编辑后的图像时,将会出现 YUV -> RGB -> YUV 往返,并会丢失一些数据,假设编辑器可以保存在 YUV 空间中。

您的TIFF提取似乎没有任何问题。这些是 YUV 空间 TIFF,因此您的图像编辑器无法理解它们。

ffplay f0000000001.tif

以确认TIFF确实有效。

如果你找不到YUV编辑器,我建议你尝试免费的Fusion VFX应用程序或任何类似的视频合成应用程序。 最坏的情况是,你可以像这样输出RGB TIFF,

ffmpeg -i video.mxf -pix_fmt rgb48le f%10d.tif

Photoshop可以打开这些,GIMP的当前开发版本也是如此。

最新更新