Hintergrund
FFmpeg unterstützt die Kodierung von HEVC / H.265 seit 2014-2-12 mit libx265. Jetzt können Sie ffmpeg direkt verwenden, um HEVC zu codieren, oder einen anderen Encoder verwenden, der dann manuell in .mp4, .mov oder .mkv mithilfe von FFmpeg muxiert wird.
Verfügbare Encoder
Aktuelle H.265 / HEVC-Geber sind:
Aufgrund der Entwicklungszeit und Zuverlässigkeit werden nur MulticoreWare und DivX vorgeschlagen.
Zwei x265
Eine Verwirrung ist, dass es zwei unabhängige Projekte gibt, die beide "x265" genannt werden, eines von einem chinesischen Studenten und praktisch tot, und eines von einer kommerziellen Firma namens MulticoreWare. Obwohl Ersteres zuerst begonnen hat, ist es praktisch tot, und Letzteres befindet sich in aktiver Entwicklung und wird von VideoLAN (dem Entwickler von x264) unterstützt.
Zeitleiste der Unterstützung für FFmpeg HEVC-Codierung
- 2013-10-12 .mov Muxing-Unterstützung hinzugefügt in
53f903b
. - 2014-02-12 Unterstützung für libx265-Codierung hinzugefügt in
bb6b173
. - 2014-03-09 Vollständigere Matroska-Multiplex-Unterstützung für HEVC hinzugefügt in
38aee64
. - 2014-03-09 Vollständigere .mov- und neue .mp4-Multiplexing-Unterstützung in hinzugefügt
9563e67
.
tl; dr
Jedenfalls handelt es sich hier um ein komplettes Set aktueller Möglichkeiten, HEVC in der Reihenfolge meiner Empfehlung zu kodieren:
Direkte Verwendung von MulticoreWare libx265 mit FFmpeg. Mit dem neuesten Zeranoe-Build können Sie nun Folgendes tun:
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
Hinweis: FFmpeg erstellt neuer als 2014-03-09. Sie können HEVC jetzt in .mp4-Dateien muxieren (Festschreiben 9563e67):
ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mp4
Sie können es auch in Matroska (.mkv) muxen:
ffmpeg -i INPUT -c:v libx265 -an -x265-params crf=25 OUT.mkv
Verwenden Sie Standalone-MulticoreWare x265 und muxen Sie die resultierende Datei mit FFmpeg oder MP4Box . Dies funktioniert mit älteren FFmpeg-Builds, die keine Libx265-Unterstützung haben.
# 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 #audio -add raw.265 out.mp4
Danke an @Duvrai.
Verwenden Sie den DivX HEVC Encoder und muxen Sie ihn.
Die Verwendung ist ähnlich wie bei der Verwendung von Standalone x265 (siehe oben).
Update: FFmpeg unterstützt jetzt HEVC-Codierung mit MulticoreWare libx265.
Update 2: FFmpeg unterstützt jetzt das Muxen von HEVC in mp4 und mov.