背景

背景

我想将视频文件编码为 H.265。ffmpeg 的最新版本应该支持 H.265(来源)。

但是,我找不到有关该确切命令的任何信息。

我不知道,我应该在后面指出哪个库-vcodec

我使用最新的 Zeranoe FFmpeg Build (git-c78a416 (2013-10-26))。

答案1

背景

自 2014 年 2 月 12 日起,FFmpeg 支持使用 libx265 编码 HEVC/H.265。现在您可以直接使用 ffmpeg 编码 HEVC,或者使用其他编码器,然后使用 FFmpeg 手动将其混合为 .mp4、.mov 或 .mkv。

可用编码器

当前的 H.265/HEVC 编码器包括:

仅建议使用 MulticoreWare 和 DivX,因为它们的开发时间和可靠性。

两个 x265

一个令人困惑的是两个独立项目都以“x265”命名,一个是由一名中国大学生开发的,目前已基本停产;另一个是由一家名为 MulticoreWare 的商业公司开发的。虽然前者最早出现,但现在已基本停产;后者正在积极开发中,并得到了 VideoLAN(x264 的开发商)的支持。

FFmpeg HEVC 编码支持时间表

  • 2013-10-12 添加了 .mov 多路复用支持53f903b
  • 2014-02-12 添加 libx265 编码支持bb6b173
  • 2014-03-09 添加了对 HEVC 更完整的 Matroska 复用支持38aee64
  • 2014-03-09 添加了更完整的 .mov 和新的 .mp4 多路复用支持9563e67

总结

无论如何,按照我的建议顺序,这些是当前对 HEVC 进行编码的完整可能性集:

  • 直接使用 MulticoreWare libx265 和 FFmpeg。这意味着使用最新的 Zeranoe 版本,您现在可以执行以下操作:

    ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mov
    # With audio
    ffmpeg -i INPUT -c:v libx265 -c:a copy -x265-params crf=25 OUT.mov
    

    注意:2014-03-09 之后的 FFmpeg 版本允许您将 HEVC 混合到 .mp4 文件中(提交 9563e67):

    ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mp4
    

    您也可以将其混合到 Matroska (.mkv) 中:

    ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mkv
    
  • 使用独立的 MulticoreWare x265,然后将生成的文件与 FFmpeg 或MP4盒。这将适用于不支持 libx265 的旧版 FFmpeg 版本。

    # Decode input using FFmpeg and encode using x265 using pipe
    ffmpeg -i INPUT -f yuv4mpegpipe -pix_fmt yuv420p - | \
    x265 --y4m -o encoded.265 -
    
    # Mux the resulting encoded .265 file into an .mp4 or .mov
    
    # Using ffmpeg: only works with newer builds that support muxing HEVC
    # Muxing to .mp4 supported since 03-09-2014
    ffmpeg -i encoded.265 -c copy out.mp4
    # With audio
    ffmpeg -i encoded.265 -i INPUT -map 0 -map 1:a -c copy out.mp4
    
    # Using MP4Box
    MP4Box -add raw.265 out.mp4
    # With audio
    MP4Box -add {INPUT}#audio -add raw.265 out.mp4
    

    感谢@Duvrai。

  • 使用 DivX HEVC 编码器,然后对其进行多路复用。

    使用方式与使用独立 x265 类似(见上文)。

更新:FFmpeg 现在使用 MulticoreWare libx265 支持 HEVC 编码。

更新 2:FFmpeg 现在支持将 HEVC 合并为 mp4现在移动。

答案2

ffmpeg 于 2014 年 2 月 12 日添加了 x265 编码,并于 3 月 9 日添加了 mp4 容器支持:

ffmpeg -i input -c:v libx265 -c:a copy output.mp4

笔记:

  • 上述命令将复制音频的原始编解码器。如果不起作用,请通过省略-c:a copy(或替换copyaaclibfdk_aaclibfaac— 按质量排序)将音频转换为 AAC
  • 编译 ffmpeg 时使用--enable-libx265(和--enable-libfdk-aac--enable-libfaac如果需要)

答案3

尝试当前的 divx 编码器。它内置了对 h265 的支持: http://www.divx.com/

(据报道http://jkdigital.de/h265-hevc-divx-praxisbericht/

相关内容