ffmpeg 无损 mp4 到图像序列转换(并再次返回到 mp4)

ffmpeg lossless mp4 to image sequence conversion (and back to mp4 again)

我已经浏览 google 几个小时了,但找不到任何相关信息。 我真的很难在没有任何质量损失的情况下将 mp4 的帧提取到图像序列中。 我需要能够再次将图像序列转换回 mp4 而没有质量损失。 我这样做的目的是基本上丢弃所有帧的一半,使 60fps mp4 变成 30fps。 以前我发现的唯一其他方法是创建一个占用大量磁盘 space 的原始比特流,我不希望这样。你可以找到 post here。任何可以帮助我实现这一目标的东西,如果你能分享,我将不胜感激。

1。输出图像

TIFF 是一种无损图像格式,可以支持 YUV 色彩空间:

ffmpeg -i input.mp4 images_%04d.tif

2。编码视频

有损(但您可能没有注意到)

ffmpeg -framerate 25 -i images_%04d.tif -crf 17 -vf format=yuv420p output.mp4
  • 技术上不是无损的,但如果有足够的位,它可以减少 generation loss 的影响并且看起来“视觉上无损”。这就是用户在说他们想要“无损失”时通常真正想要的。

  • 这假设您的文件是按连续顺序排列的。如果没有,那么您可以在 Linux/macOS.

    上使用 ffmpeg -pattern_type glob -i "*.tif" ...

无损

ffmpeg -framerate 25 -i images_%04d.tif -crf 0 output.mp4
  • 文件大小会巨大因为它是无损的,您的播放器可能不喜欢它。

  • 这假设您的文件是按连续顺序排列的。如果没有,那么您可以在 Linux/macOS.

    上使用 ffmpeg -pattern_type glob -i "*.tif" ...

更多信息