如何在不损失质量的情况下将 10 位 H.265/HEVC 视频转换为 H.264?

Hap*_*ace 31 ffmpeg video-conversion x264 video-encoding x265

我的笔记本电脑无法处理 10 位 H.265 / HEVC 视频,所以我想将它们转换为 10 位 H.264。我如何使用 ffmpeg 来做到这一点,质量损失最少?以及如何将 10 位 H.265 转换为 8 位 H.265?

llo*_*gan 59

10 位/12 位 HEVC 转 8 位 H.264

ffmpeg -i input -map 0 -c:v libx264 -crf 18 -vf format=yuv420p -c:a copy output.mkv
Run Code Online (Sandbox Code Playgroud)
  • -map 0将包括所有流(默认流选择仅选择每种类型 1 个流)。请参阅FFmpeg Wiki:地图

  • 调整该-crf值以提供所需的质量水平。-preset如果要调整编码速度,请添加该选项。有关和 的更多信息,请参阅FFmpeg Wiki:H.264-crf-preset

  • 使用格式过滤器选择yuv420p像素格式以创建 8 位输出。

10 位/12 位 HEVC 转 10 位 H.264

ffmpeg -i input -map 0 -c:v libx264 -crf 18 -c:a copy output.mkv
Run Code Online (Sandbox Code Playgroud)
  • -map 0将包括所有流(默认流选择仅选择每种类型 1 个流)。请参阅FFmpeg Wiki:地图

  • 调整该-crf值以提供所需的质量水平。-preset如果要调整编码速度,请添加该选项。有关和 的更多信息,请参阅FFmpeg Wiki:H.264-crf-preset

  • 在这种情况下不需要格式过滤器。

10 位/12 位 HEVC 到 8 位 HEVC

ffmpeg -i input -map 0 -c:v libx265 -crf 20 -vf format=yuv420p -c:a copy output.mkv
Run Code Online (Sandbox Code Playgroud)
  • -map 0将包括所有流(默认流选择仅选择每种类型 1 个流)。请参阅FFmpeg Wiki:地图

  • 调整该-crf值以提供所需的质量水平。-preset如果要调整编码速度,请添加该选项。有关和 的更多信息,请参阅FFmpeg Wiki:HEVC/H.265-crf-preset

  • 使用格式过滤器选择yuv420p像素格式以创建 8 位输出。

12 位 HEVC 到 10 位 HEVC

ffmpeg -i input -map 0 -c:v libx265 -crf 20 -vf format=yuv420p10le -c:a copy output.mkv
Run Code Online (Sandbox Code Playgroud)
  • -map 0将包括所有流(默认流选择仅选择每种类型 1 个流)。请参阅FFmpeg Wiki:地图

  • 调整该-crf值以提供所需的质量水平。-preset如果要调整编码速度,请添加该选项。有关和 的更多信息,请参阅FFmpeg Wiki:HEVC/H.265-crf-preset

  • 使用格式过滤器选择yuv420p10le像素格式以创建 10 位输出。libx265 支持的其他 10 位像素格式是yuv422p10le& yuv444p10le,但您的播放器可能不喜欢这些。有关ffmpeg -h encoder=libx265其他支持的像素格式,请参阅。

  • 将 `-map 0` 添加到上述命令将保留字幕和其他附加流。 (2认同)