Kodieren Sie 4K-Videos mit FFmpeg für die Wiedergabe in QuickTime erneut auf H.265 / HEVC

3129
rgov

Ich habe ein einstündiges 4K-Video, das bei 10 GB wog. Ich dachte, ich würde versuchen, mit FFmpeg erneut in HEVC zu kodieren, um Platz zu sparen, etwas, das ich vorher nicht versucht hatte.

Ich habe jedoch das Containerformat von .m4v auf .mp4 umgestellt, wobei ich nicht wusste, dass der QuickTime Player nicht abgespielt werden kann. Es unterstützt nur HEVC-Streams in .mov-Containern. VLC kann die .mp4-Datei abspielen, daher scheint die Konvertierung erfolgreich gewesen zu sein.

Also habe ich versucht, das Containerformat auf .mov umzustellen, aber QuickTime möchte es immer noch nicht öffnen.

Gibt es einen zusätzlichen Schritt, den ich vermisse? Die Konvertierung wurde über Nacht ausgeführt, also würde ich es lieber nicht noch einmal tun, wenn es einen Weg gibt, den Container einfach zu wechseln.

$ ffmpeg -i otomatsuri.m4v -c: v libx265 -preset medium -crf 28 -c: a aac -b: a 128 k otomatsuri.mp4 ffmpeg version 3.4.1 Copyright (c) 2000-2017 der FFmpeg-Entwickler gebaut mit Apple LLVM Version 9.1.0 (clang-902.0.30) Konfiguration: --prefix = / usr / local / Cellar / ffmpeg / 3.4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc = clang --host-cflags = --host-ldflags = --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable -lzma Libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Eingabe # 0, mov, mp4, m4a, 3gp, 3g2, mj2 von 'otomatsuri.m4v': Metadaten: major_brand: M4V  Nebenversion: 1 compatible_brands: M4V M4A mp42isom creation_time: 2018-02-09T09: 37: 48.000000Z Drehgeber: Lavf57.83.100 Dauer: 00: 53: 53.00, Start: 0.000000, Bitrate: 24377 kb / s Stream # 0: 0 (und): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, mono, fltp, 95 kb / s (Standard) Metadaten: creation_time: 2018-02-09T09: 37: 48.000000Z handler_name: Core Media Audio Strom Nr. 0: 1 (und): Video: h264 (Hoch) (avc1 / 0x31637661), yuv420p, 2880x2160 [SAR 4: 3 DAR 16: 9], 24278 kb / s, 24 Bilder / s, 24 tps, 60 ktbn, 48 tbc (default) Metadaten: creation_time: 2018-02-09T09: 37: 48.000000Z handler_name: Core Media Video Stream-Mapping: Stream # 0: 1 -> # 0: 0 (h264 (native) -> hevc (libx265)) Stream # 0: 0 -> # 0: 1 (aac (native) -> aac (native)) Drücken Sie die Taste [q], um zu stoppen x265 [info]: HEVC-Geberversion 2.6 x265 [Info]: Build-Info [Mac OS X] [Clang 9.0.0] [64 Bit] 8 Bit + 10 Bit + 12 Bit x265 [info]: Verwendung der CPU-Funktionen: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 x265 [info]: Hauptprofil, Stufe-5 (Hauptschicht) x265 [info]: Thread-Pool mit 4 Threads erstellt x265 [info]: Scheiben: 1 x265 [info]: Frame-Threads / Pool-Funktionen: 2 / Wpp (34 Zeilen) x265 [info]: Kodierung QT: maximale CU-Größe, minimale CU-Größe: 64/8 x265 [info]: Rest-QT: maximale TU-Größe, maximale Tiefe: 32/1 inter / 1 intra x265 [info]: ME / range / subpel / merge: hex / 57/2/2 x265 [Info]: Keyframe min / max / Szenerie / Vorspannung: 24/250/40 / 5.00 x265 [info]: Lookahead / bframes / badapt: ​​20/4/2 x265 [info]: b-pyramide / weightp / weightb: 1/1/0 x265 [info]: Referenzen / ref-limit cu / tiefe: 3 / ein / ein x265 [info]: AQ: mode / str / qg-size / cu-tree: 1 / 1.0 / 32/1 x265 [info]: Rate Control / qCompress: CRF-28.0 / 0.60 x265 [info]: tools: rd = 3 psy-rd = 2.00 rskip signhide TMVP stark-intra-glätten x265 [info]: tools: lslices = 8 deblock sao Ausgabe # 0, mp4 an 'otomatsuri.mp4': Metadaten: major_brand: M4V  Nebenversion: 1 compatible_brands: M4V M4A mp42isom Drehgeber: Lavf57.83.100 Stream # 0: 0 (und): Video: hevc (libx265) (hev1 / 0x31766568), yuv420p, 2880x2160 [SAR 4: 3 DAR 16: 9], q = 2-31, 24 fps, 12288 tbn, 24 tbc ( Standard) Metadaten: creation_time: 2018-02-09T09: 37: 48.000000Z handler_name: Core Media Video Drehgeber: Lavc57.107.100 libx265 Stream # 0: 1 (und): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, Mono, ftp, 128 kb / s (Standard) Metadaten: creation_time: 2018-02-09T09: 37: 48.000000Z handler_name: Core Media Audio Drehgeber: Lavc57.107.100 aac Rahmen = 77592 fps = 2,8 q = -0,0 Lsize = 1670478 kB Zeit = 00: 53: 52,93 Bitrate = 4232,9 kbit / s Geschwindigkeit = 0,117x  Video: 1624946kB Audio: 43103kB Untertitel: 0kB andere Streams: 0kB globale Header: 2kB Muxing-Overhead: 0.145604% x265 [info]: Frame I: 738, Avg QP: 25,05 kb / s: 9283,77  x265 [info]: Bild P: 20942, Durchschnitt QP: 27,55 kb / s: 6165,77  x265 [info]: Bild B: 55912, durchschnittliche QP: 31,10 kb / s: 3280,92  x265 [info]: Gewichtete P-Frames: Y: 21,5% UV: 15,2% x265 [info]: aufeinanderfolgende B-Frames: 7.8% 10.9% 15.9% 46.2% 19.1%   kodierte 77592-Frames in 27541,51 s (2,82 fps), 4116,63 kb / s, Avg QP: 30,09 [aac @ 0x7fd6d7801e00] Qavg: 58695.016 
$ ffmpeg -i otomatsuri.mp4 -c kopiert -map 0 otomatsuri.mov ffmpeg version 3.4.1 Copyright (c) 2000-2017 der FFmpeg-Entwickler gebaut mit Apple LLVM Version 9.1.0 (clang-902.0.30) Konfiguration: --prefix = / usr / local / Cellar / ffmpeg / 3.4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc = clang --host-cflags = --host-ldflags = --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable -lzma Libavutil 55. 78.100 / 55. 78.100 libavcodec 57.107.100 / 57.107.100 libavformat 57. 83.100 / 57. 83.100 libavdevice 57. 10.100 / 57. 10.100 libavfilter 6.107.100 / 6.107.100 libavresample 3. 7. 0 / 3. 7. 0 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Eingabe # 0, mov, mp4, m4a, 3gp, 3g2, mj2 von 'otomatsuri.mp4': Metadaten: major_brand: isom Nebenversion: 512 compatible_brands: isomiso2mp41 Drehgeber: Lavf57.83.100 Dauer: 00: 53: 53.00, Start: 0.000000, Bitrate: 4232 kb / s Stream # 0: 0 (und): Video: hevc (Haupt) (hev1 / 0x31766568), yuv420p (tv, progressiv), 2880x2160 [SAR 4: 3 DAR 16: 9], 4117 kb / s, 24 fps, 24 tbr, 12288 tbn, 24 tbc (Standard) Metadaten: handler_name: VideoHandler Stream # 0: 1 (und): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, Mono, ftp, 109 kb / s (Standard) Metadaten: handler_name: SoundHandler Ausgang # 0, mov, an 'otomatsuri.mov': Metadaten: major_brand: isom Nebenversion: 512 compatible_brands: isomiso2mp41 Drehgeber: Lavf57.83.100 Stream # 0: 0 (und): Video: hevc (Haupt) (hev1 / 0x31766568), yuv420p (tv, progressiv), 2880 x 2160 [SAR 4: 3 DAR 16: 9], q = 2-31, 4117 kb / s, 24 fps, 24 tbr, 12288 tbn, 12288 tbc (Standardeinstellung) Metadaten: handler_name: VideoHandler Stream # 0: 1 (und): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, Mono, ftp, 109 kb / s (Standard) Metadaten: handler_name: SoundHandler Stream-Mapping: Stream # 0: 0 -> # 0: 0 (Kopie) Stream # 0: 1 -> # 0: 1 (Kopie) Drücken Sie die Taste [q], um zu stoppen Rahmen = 77592 fps = 18819 q = -1,0 Lsize = 1670479 kB Zeit = 00: 53: 52,90 Bitrate = 4232,9 kbit / s Geschwindigkeit = 784x  Video: 1624946kB Audio: 43103kB Untertitel: 0kB andere Streams: 0kB globale Header: 2kB Muxing-Overhead: 0.145614% 
0
Es kann sich nur um ein Codec-Tag handeln. Versuchen Sie `ffmpeg -i otomatsuri.mp4 -c copy -map 0 -vtag hvc1 otomatsuri.mov` Gyan vor 6 Jahren 1
@ Mulvya Ja das ist es. Möchten Sie eine Antwort posten, damit ich sie annehmen kann? rgov vor 6 Jahren 0

1 Antwort auf die Frage

2
Gyan

Einige Player sind auf Metadaten angewiesen, um festzustellen, ob der Inhalt der Datei verwendet werden kann. QT gehört zu dieser Kategorie. Wie in Kommentaren bestätigt, ermöglicht die Zuweisung eines Codec-Tags hvc1die Wiedergabe in QT,

ffmpeg -i otomatsuri.mp4 -c copy -map 0 -vtag hvc1 otomatsuri.mov 
Und ich denke, eine All-in-One-Konvertierung lautet: `ffmpeg -i tomatina.m4v -c: v libx265 -preset medium -crf 28 -vtag hvc1 -c: a aac -b: a 128k tomatina.mov` rgov vor 6 Jahren 0