Container und Codecs

Derek Herman
Derek Herman
Joe Medley
Joe Medley

Damit mehrere Browser unterstützt werden, musst du deinen .mov mit FFmpeg konvertieren. in zwei verschiedene Container: einen MP4-Container und einen WebM-Container. In würden Sie wahrscheinlich gleichzeitig einen Codec angeben. Fürs Erste können wir für FFmpeg die Standardeinstellungen verwenden.

Wenn Sie mit diesen Konzepten noch nicht vertraut sind, sollten Sie Grundlagen zu Mediendateien bevor Sie fortfahren. Wenn du FFmpeg nicht installiert hast, lies Medienanwendungen – Grundlagen um Docker einzurichten.

Wir verwenden die vorgeschlagene Docker-Installation die Datei glocken.mov aus dem Artikel Mediendateien für das Web vorbereiten die im Verzeichnis media hinzugefügt wurden. Wir haben FFmpeg Version 4.3.2 für alle Befehle in diesem Abschnitt.

Container

Zuerst müssen wir die beiden Container aus der Datei .mov mit der .mp4 und .webm mit einem Audio- und Videostream in der Datei. Grundlagen zu Mediendateien finden Sie weitere Informationen zu Containern und Streams. .

  1. MP4

    /media # ffmpeg -i glocken.mov glocken.mp4
    
  2. WebM

    /media # ffmpeg -i glocken.mov glocken.webm
    

Das Erstellen von WebM dauert länger als bei MP4. Das ist keine Überraschung, die Ergebnisse. Im MP4-Format wird die Datei auf etwa 83% der Dateien ist WebM auf 78% der Originalgröße reduziert, kann aber deutlich kleiner sein. Ihre Ergebnisse werden unterschiedlich ausfallen. Dabei ist wichtig zu erwähnen, dass mit FFmpeg 4.2.2 Die standardmäßige Videobitrate ist 200k. In 4.3.2 wird keine Standardbitrate festgelegt. Das Video ist also nicht mehr nur 4% des Originals. Sie können sich das selbst ansehen. Verwenden Sie dazu den bash-Befehl ls -a in dem Ordner, in dem sich Ihre Mediendateien befinden.

Beispiel:

/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root   9503301 Mar 7 18:30 glocken.webm

Um eine kleine Datei zu erhalten, würden Sie stattdessen wie folgt vorgehen:

/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame=  300 fps=3.6 q=0.0 Lsize=     483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root    494497 Mar 7 18:45 glocken.webm

Ergebnisse prüfen

Verwenden Sie zum Überprüfen Ihrer Ergebnisse FFmpeg und Shaka Packager, wie bereits in Grundlagen zu Medienanwendungen:

/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4

Codecs

Als Nächstes den Codec. Wie unter Grundlagen zu Mediendateien beschrieben, wird ein Codec ist nicht dasselbe wie ein Container (Dateityp). Zwei Dateien desselben Containers -Typ die Daten enthalten kann, die mit verschiedenen Codecs komprimiert wurden. Mit dem WebM-Format ermöglicht die Codierung von Audio mit Vorbis oder Opus. Um den Codec zu ändern, verwende FFmpeg. Dieser Befehl gibt beispielsweise eine .mkv-Datei mit einer vorbis-Audiodatei aus. und den Video-Codec av1.

/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv

In diesem Beispiel geben das Flag -c:a und -c:v die Audiodaten und Video-Codecs.

Auf der Seite Medien-Conversion werden Befehle zum Konvertieren von Codecs. In den folgenden Tabellen sind die verwendeten Bibliotheken zusammengefasst: in FFmpeg, um die Codec-Konvertierungen für WebM- und MP4-Dateien durchzuführen. Dies sind die die für DASH bzw. HLS empfohlen werden.

Video

Codec Erweiterung Bibliothek
av1 WebM, MKV Libaom-Av1
h264 MP4 libx264
vp9 WebM libvpx-vp9

Audio

Codec Erweiterung Bibliothek
AAC MP4 AAC
Opus WebM Libopus
Vorbis WebM libvorbis

Als Nächstes zeigen wir dir, wie du die Bitrate neu erstellter Dateien änderst.