我想将视频文件编码为 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
(或替换copy
为aac
,libfdk_aac
或libfaac
— 按质量排序)将音频转换为 AAC - 编译 ffmpeg 时使用
--enable-libx265
(和--enable-libfdk-aac
或--enable-libfaac
如果需要)
答案3
尝试当前的 divx 编码器。它内置了对 h265 的支持: http://www.divx.com/