Damit mehrere Browser unterstützt werden, musst du deine .mov
-Datei mit FFmpeg in zwei verschiedene Container konvertieren: einen MP4-Container und einen WebM-Container. In der Praxis geben Sie wahrscheinlich gleichzeitig einen Codec an. Vorerst verwenden wir die Standardeinstellungen von FFmpeg.
Wenn Sie mit diesen Konzepten noch nicht vertraut sind, sollten Sie zuerst den Artikel Grundlagen zu Mediendateien lesen, bevor Sie fortfahren. Wenn FFmpeg nicht installiert ist, lies den Hilfeartikel Grundlagen von Medienanwendungen, um es mit Docker einzurichten.
Wir verwenden die vorgeschlagene Docker-Installation und die Datei glocken.mov aus dem Verzeichnis Mediendateien für das Web vorbereiten, die im Verzeichnis media
hinzugefügt wurden. Für alle Befehle in diesem Abschnitt wurde FFmpeg-Version 4.3.2 verwendet.
Container
Zuerst müssen wir aus der .mov
-Datei zwei Container mit den Dateiendungen .mp4
und .webm
erstellen, die sowohl einen Audio- als auch einen Videostream enthalten.
Wenn du den Unterschied zwischen Containern und Streams nicht kennst, lies den Hilfeartikel Grundlagen von Mediendateien.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
Das Erstellen von WebM-Dateien dauert länger als das Erstellen von MP4-Dateien. Das ist nicht überraschend, wenn man sich die Ergebnisse ansieht. MP4-Dateien werden auf etwa 83%
der Größe der Originaldatei komprimiert. WebM-Dateien werden auf 78%
der Größe der Originaldatei komprimiert, können aber viel kleiner sein.
Die Ergebnisse können variieren. Wichtig: In FFmpeg 4.2.2
ist die Standard-Videobitrate auf 200k
festgelegt. In 4.3.2
ist keine Standardbitrate festgelegt.
Das Video ist also nicht mehr nur 4%
des Originals. Mit dem Bash-Befehl ls -a
in dem Ordner, in dem sich Ihre Mediendateien befinden, können Sie sich das ansehen.
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
So erhalten Sie eine winzige Datei:
/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
Verwende FFmpeg und Shaka Packager, um die Ergebnisse zu überprüfen, wie bereits in Grundlagen von Medienanwendungen gezeigt:
/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4
Codecs
Als Nächstes der Codec. Wie unter Grundlagen von Mediendateien beschrieben, ist ein Codec nicht dasselbe wie ein Container (Dateityp). Zwei Dateien desselben Containertyps können Daten enthalten, die mit verschiedenen Codecs komprimiert wurden. Das WebM-Format ermöglicht beispielsweise die Codierung von Audioinhalten entweder mit Vorbis oder Opus. Zum Ändern des Codecs verwenden wir FFmpeg. Mit diesem Befehl wird beispielsweise eine .mkv
-Datei mit einem vorbis
-Audio-Codec und einem av1
-Video-Codec ausgegeben.
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
In diesem Beispiel werden mit dem Flag -c:a
und dem -c:v
die Audio- bzw. Video-Codecs angegeben.
Auf der Seite Medienkonvertierung sind die Befehle aufgeführt, die für die Konvertierung von Codecs erforderlich sind. In den folgenden Tabellen sind die Bibliotheken zusammengefasst, die in FFmpeg zur Durchführung der Codec-Konvertierungen für WebM- und MP4-Dateien verwendet werden. Dies sind die für DASH bzw. HLS empfohlenen Formate.
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 deiner neu erstellten Dateien änderst.