In diesem Handbuch werde ich anhand von Beispielen erklären, wie Sie das FFmpeg-Multimedia-Framework verwenden, um verschiedene Audio-, Video-Transcodierungs- und Konvertierungsvorgänge durchzuführen. Ich habe die am häufigsten und am häufigsten verwendeten 20+ FFmpeg-Befehle für Anfänger zusammengestellt.
Ich werde diesen Leitfaden ständig aktualisieren, indem ich von Zeit zu Zeit weitere Beispiele hinzufüge. Bitte speichern Sie dieses Handbuch als Lesezeichen und schauen Sie später wieder vorbei, um nach Updates zu suchen. Lassen Sie uns anfangen, sollen wir?
FFmpeg unter Linux installieren
Wenn Sie FFmpeg noch nicht auf Ihrem Linux-System installiert haben, lesen Sie die folgende Anleitung.
- FFmpeg unter Linux installieren
FFmpeg-Befehle mit Beispielen
Die typische Syntax des FFmpeg-Befehls lautet:
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...
Wir werden jetzt einige wichtige und nützliche FFmpeg-Befehle sehen.
1. Abrufen von Informationen zu Audio-/Videodateien
Um die Details einer Mediendatei anzuzeigen, führen Sie Folgendes aus:
$ ffmpeg -i video.mp4
Beispielausgabe:
ffmpeg version n4.1.3 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 8.2.1 (GCC) 20181127 configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3 libavutil 56. 22.100 / 56. 22.100 libavcodec 58. 35.100 / 58. 35.100 libavformat 58. 20.100 / 58. 20.100 libavdevice 58. 5.100 / 58. 5.100 libavfilter 7. 40.101 / 7. 40.101 libswscale 5. 3.100 / 5. 3.100 libswresample 3. 3.100 / 3. 3.100 libpostproc 55. 3.100 / 55. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.20.100 Duration: 00:00:28.79, start: 0.000000, bitrate: 454 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/smpte170m), 1920x1080 [SAR 1:1 DAR 16:9], 318 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default) Metadata: handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019. Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019. At least one output file must be specified
Wie Sie in der obigen Ausgabe sehen, zeigt FFmpeg die Mediendateiinformationen zusammen mit FFmpeg-Details wie Version, Konfigurationsdetails, Urheberrechtshinweis, Build- und Bibliotheksoptionen usw. an.
Wenn Sie das FFmpeg-Banner und andere Details nicht sehen möchten, sondern nur die Mediendateiinformationen, verwenden Sie -hide_banner
kennzeichnen wie unten.
$ ffmpeg -i video.mp4 -hide_banner
Beispielausgabe:

Sehen? Jetzt werden nur die Details der Mediendatei angezeigt.
Empfohlene Lektüre:
- Informationen zu Mediendateien unter Linux mit MediaInfo anzeigen
2. Konvertieren von Videodateien in verschiedene Formate
Da FFmpeg ein funktionsreicher und leistungsstarker Audio- und Videokonverter ist, ist es möglich, Mediendateien zwischen verschiedenen Formaten zu konvertieren. Sagen wir zum Beispiel, um mp4
zu konvertieren Datei in avi
Datei , ausführen:
$ ffmpeg -i video.mp4 video.avi
Ebenso können Sie Mediendateien in ein beliebiges Format Ihrer Wahl konvertieren.
Zum Beispiel zum Konvertieren von YouTube flv
Videos in mpeg
formatieren formatieren, ausführen:
$ ffmpeg -i video.flv video.mpeg
Wenn Sie die Qualität Ihrer Quellvideodatei beibehalten möchten, verwenden Sie '-qscale 0'
Parameter:
$ ffmpeg -i input.webm -qscale 0 output.mp4
Führen Sie Folgendes aus, um die Liste der von FFmpeg unterstützten Formate zu überprüfen:
$ ffmpeg -formats
3. Konvertieren von Videodateien in Audiodateien
Um eine Videodatei in eine Audiodatei umzuwandeln, geben Sie einfach das Ausgabeformat als .mp3
an , oder .ogg
, oder andere Audioformate.
Der obige Befehl konvertiert input.mp4
Videodatei in output.mp3
Audiodatei.
$ ffmpeg -i input.mp4 -vn output.mp3
Außerdem können Sie verschiedene Audiotranskodierungsoptionen für die Ausgabedatei verwenden, wie unten gezeigt.
$ ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3
Hier,
-vn
- Zeigt an, dass wir die Videoaufzeichnung in der Ausgabedatei deaktiviert haben.-ar
- Legen Sie die Audiofrequenz der Ausgabedatei fest. Die allgemein verwendeten Werte sind22050
,44100
,48000
Hz.-ac
- Legen Sie die Anzahl der Audiokanäle fest.-ab
- Zeigt die Audio-Bitrate an.-f
- Ausgabedateiformat. In unserem Fall ist esmp3
formatieren.
Der obige Befehl zeigt eine Warnmeldung wie unten an.
[libmp3lame @ 0x5589ed539240] Bitrate 320 is extremely low, maybe you mean 320k The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s
Das liegt daran, dass wir 320
angegeben haben Bits/Sekunde als Bitrate, was sehr niedrig ist. Dadurch wird eine kleinere Ausgabedatei erstellt. Verwenden Sie für die beste Ausgabequalität den Bitratenwert 320k
statt nur 320
.
4. Ändern Sie die Lautstärke von Audiodateien
FFmpeg ermöglicht es uns, die Lautstärke einer Audiodatei mit "volume filter"
zu ändern Option.
Der folgende Befehl verringert beispielsweise die Lautstärke um die Hälfte.
$ ffmpeg -i input.mp3 -af 'volume=0.5' output.mp3
Ebenso können wir die Lautstärke wie folgt erhöhen:
$ ffmpeg -i input.mp3 -af 'volume=1.5' output.mp3
5. Auflösung von Videodateien ändern
Wenn Sie eine bestimmte Auflösung für eine Videodatei festlegen möchten, können Sie den folgenden Befehl verwenden:
$ ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4
Oder,
$ ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4
Der obige Befehl setzt die Auflösung der angegebenen Videodatei auf 1280x720
.
Ähnlich, um die obige Datei in 640x480
zu konvertieren Größe, Ausführung:
$ ffmpeg -i input.mp4 -filter:v scale=640:480 -c:a copy output.mp4
Oder,
$ ffmpeg -i input.mp4 -s 640x480 -c:a copy output.mp4
Dieser Trick hilft Ihnen, Ihre Videodateien auf kleinere Anzeigegeräte wie Tablets und Handys zu skalieren.
6. Komprimieren von Videodateien
Es ist immer eine gute Idee, die Größe der Mediendateien auf eine niedrigere Größe zu reduzieren, um Speicherplatz zu sparen.
Der folgende Befehl komprimiert und reduziert die Größe der Ausgabedatei.
$ ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4
Bitte beachten Sie, dass Sie die Qualität verlieren, wenn Sie versuchen, die Videodateigröße zu reduzieren. Sie können diesen crf
verringern Wert auf 23
oder niedriger, wenn 24
ist zu aggressiv.
Sie können das Audio auch ein wenig nach unten transkodieren und in Stereo umwandeln, um die Größe zu reduzieren, indem Sie die folgenden Optionen hinzufügen.
-ac 2 -c:a aac -strict -2 -b:a 128k
7. Audiodateien komprimieren
Genau wie beim Komprimieren von Videodateien können Sie auch Audiodateien mit -ab
komprimieren Flag, um Speicherplatz zu sparen.
Nehmen wir an, Sie haben eine Audiodatei von 320
kbps-Bitrate. Sie möchten es komprimieren, indem Sie die Bitrate auf einen niedrigeren Wert wie unten ändern.
$ ffmpeg -i input.mp3 -ab 128 output.mp3
Die Liste der verschiedenen verfügbaren Audio-Bitraten sind:
- 96 kbps
- 112 kbps
- 128 kbps
- 160 kbit/s
- 192 kbit/s
- 256 kbps
- 320 kbps
8. Audiostream aus einer Videodatei entfernen
Wenn Sie kein Audio von einer Videodatei wünschen, verwenden Sie -an Flagge.
$ ffmpeg -i input.mp4 -an output.mp4
Hier 'an'
zeigt keine Audioaufnahme an. Mit anderen Worten, diese Option schaltet den Ton stumm.
Der obige Befehl macht alle audiobezogenen Flags rückgängig.
9. Videostream aus einer Mediendatei entfernen
Wenn Sie keinen Videostream wünschen, können Sie ihn ganz einfach mit 'vn'
aus der Mediendatei entfernen Flagge. vn steht für keine Videoaufzeichnung. Mit anderen Worten, dieser Befehl konvertiert die angegebene Mediendatei in eine Audiodatei.
Der folgende Befehl entfernt das Video aus der angegebenen Mediendatei.
$ ffmpeg -i input.mp4 -vn output.mp3
Sie können auch die Bitrate der Ausgabedatei mit '-ab'
angeben Flag, wie im folgenden Beispiel gezeigt.
$ ffmpeg -i input.mp4 -vn -ab 320 output.mp3
10. Extrahieren von Bildern aus dem Video
Eine weitere nützliche Funktion von FFmpeg ist, dass wir Bilder einfach aus einer Videodatei extrahieren können. Dies kann sehr nützlich sein, wenn Sie aus einer Videodatei ein Fotoalbum erstellen möchten.
Um Bilder aus einer Videodatei zu extrahieren, verwenden Sie den folgenden Befehl:
$ ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png
Hier,
-r
- Stellen Sie die Bildrate ein. D.h. die Anzahl der Frames, die pro Sekunde in Bilder extrahiert werden sollen. Der Standardwert ist25
.-f
- Gibt das Ausgabeformat an, in unserem Fall also das Bildformat.image-%2d.png
- Gibt an, wie wir die extrahierten Bilder benennen möchten. In diesem Fall sollten die Namen wie folgt beginnen:image-01.png
,image-02.png
,image-03.png
und so weiter. Wenn Sie%3d
verwenden , dann beginnt der Name der Bilder wieimage-001.png
,image-002.png
und so weiter.
11. Videos zuschneiden
FFMpeg ermöglicht es, eine bestimmte Mediendatei in jeder Größe unserer Wahl zuzuschneiden.
Die Syntax zum Zuschneiden einer Videodatei ist unten angegeben:
ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
Hier,
input.mp4
- Quellvideodatei.-filter:v
- Zeigt den Videofilter an.crop
- Zeigt Crop-Filter an.w
- Breite des Rechtecks, das wir aus dem Quellvideo zuschneiden möchten.h
- Höhe des Rechtecks.x
- x Koordinate des Rechtecks, das wir aus dem Quellvideo zuschneiden möchten.y
- y-Koordinate des Rechtecks.
Angenommen, Sie möchten ein Video mit einer Breite von 640
Pixel und eine Höhe von 480
Pixel , von der Position (200,150
) , wäre der Befehl:
$ ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4
Bitte beachten Sie, dass das Zuschneiden von Videos die Qualität beeinträchtigt. Tun Sie dies nur, wenn es unbedingt erforderlich ist.
12. Konvertieren Sie einen bestimmten Teil eines Videos
Manchmal möchten Sie vielleicht nur einen bestimmten Teil (Dauer) der Videodatei in ein anderes Format konvertieren. Angenommen, der folgende Befehl konvertiert die erste 10
Sekunden der angegebenen video.mp4-Datei in das video.avi-Format.
$ ffmpeg -i input.mp4 -t 10 output.avi
Hier geben wir die Zeit in Sekunden an. Außerdem ist es möglich, die Uhrzeit in hh.mm.ss
anzugeben formatieren.
13. Stellen Sie das Seitenverhältnis auf Video ein
Sie können das Seitenverhältnis einer Videodatei mit -aspect
einstellen kennzeichnen wie unten.
$ ffmpeg -i input.mp4 -aspect 16:9 output.mp4
Die am häufigsten verwendeten Seitenverhältnisse sind:
- 16:9
- 4:3
- 16:10
- 5:4
- 2:21:1
- 2:35:1
- 2:39:1
14. Posterbild zu Mediendateien hinzufügen
Sie können die Posterbilder zu Ihren Dateien hinzufügen, sodass die Bilder während der Wiedergabe der Audio- oder Videodateien angezeigt werden. Dies kann nützlich sein, um Audiodateien auf Video-Hosting- oder -Sharing-Websites zu hosten.
$ ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4
15. Kürzen Sie eine Mediendatei mit Start- und Stoppzeiten
Um ein Video mithilfe von Start- und Stoppzeiten auf einen kleineren Clip zu trimmen, können wir den folgenden Befehl verwenden.
$ ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4
Hier,
--s
- Zeigt die Startzeit des Videoclips an. In unserem Beispiel ist die Startzeit die 50. Sekunde.-t
- Zeigt die Gesamtzeitdauer an.
Dies ist sehr hilfreich, wenn Sie einen Teil aus einer Audio- oder Videodatei mit Start- und Endzeit schneiden möchten.
Auf ähnliche Weise können wir die Audiodatei wie unten zuschneiden.
$ ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3
16. Audio-/Videodateien in mehrere Teile aufteilen
Auf einigen Websites können Sie nur eine bestimmte Videogröße hochladen. Beispielsweise erlaubt WhatsApp nur 15
Sekunden Videos, die als Statusmeldung für Benutzer in Indien festgelegt werden sollen. In solchen Fällen können Sie die großen Videodateien wie unten in mehrere kleinere Teile aufteilen.
$ ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4
Hier, -t 00:00:30
gibt einen Teil an, der vom Start des Videos bis zur 30. Sekunde des Videos erstellt wird. -ss 00:00:30
zeigt den Startzeitstempel für den nächsten Teil des Videos. Das bedeutet, dass der zweite Teil ab der 30. Sekunde beginnt und bis zum Ende der ursprünglichen Videodatei fortgesetzt wird.
Recommended Download - Free Guide: "How to Start Your Own Successful Podcast"
17. Verbinden oder Zusammenführen mehrerer Audio-/Videoteile zu einem
FFmpeg fügt auch die mehreren Videoteile zusammen und erstellt eine einzelne Videodatei.
Erstellen Sie join.txt
Datei, die die genauen Pfade der Dateien enthält, die Sie zusammenführen möchten. Alle Dateien sollten dasselbe Format haben (gleicher Codec). Die Pfadnamen aller Dateien sollten nacheinander wie unten angegeben werden.
file /home/sk/myvideos/part1.mp4 file /home/sk/myvideos/part2.mp4 file /home/sk/myvideos/part3.mp4 file /home/sk/myvideos/part4.mp4
Verbinden Sie nun alle Dateien mit dem Befehl:
$ ffmpeg -f concat -i join.txt -c copy output.mp4
Wenn Sie eine Fehlermeldung wie unten erhalten:
[concat @ 0x555fed174cc0] Unsafe file name '/path/to/mp4' join.txt: Operation not permitted
Fügen Sie "-safe 0"
hinzu :
$ ffmpeg -f concat -safe 0 -i join.txt -c copy output.mp4
Der obige Befehl fügt part1.mp4
hinzu , part2.mp4
, part3.mp4
, und part4.mp4
Dateien in eine einzelne Datei namens "output.mp4"
.
Alternativ können Sie den folgenden einzeiligen Befehl verwenden, um alle Dateien in einem Verzeichnis zusammenzufügen. Wechseln Sie in das Verzeichnis, in dem Sie Dateien haben, und führen Sie den folgenden Befehl aus, um die Dateien mit dem Namen audio1.mp3
zu verknüpfen , audio2,mp3
und audio3.mp3
in output.mp3
.
$ ffmpeg -i "concat:audio1.mp3|audio2.mp3|audio3.mp3" -c copy output.mp3
18. Untertitel zu einer Videodatei hinzufügen
Wir können einer Videodatei mit FFmpeg auch Untertitel hinzufügen. Laden Sie den richtigen Untertitel für Ihr Video herunter und fügen Sie ihn wie unten gezeigt Ihrem Video hinzu.
$ fmpeg -i input.mp4 -i subtitle.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp4
19. Vorschau oder Test von Video- oder Audiodateien
Möglicherweise möchten Sie eine Vorschau anzeigen, um zu überprüfen oder zu testen, ob die Ausgabedatei richtig transcodiert wurde oder nicht. Dazu können Sie es von Ihrem Terminal aus mit folgendem Befehl abspielen:
$ ffplay video.mp4

Ebenso können Sie die Audiodateien wie unten gezeigt testen.
$ ffplay audio.mp3

20. Videowiedergabegeschwindigkeit erhöhen/verringern
Mit FFmpeg können Sie die Videowiedergabegeschwindigkeit anpassen.
Um die Wiedergabegeschwindigkeit des Videos zu erhöhen, führen Sie Folgendes aus:
$ ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
Der Befehl verdoppelt die Geschwindigkeit des Videos.
Um Ihr Video zu verlangsamen, müssen Sie einen Multiplikator größer als 1
verwenden . Führen Sie Folgendes aus, um die Wiedergabegeschwindigkeit zu verringern:
$ ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4
21. Audio-Wiedergabegeschwindigkeit erhöhen/verringern
Um die Audiowiedergabe zu beschleunigen oder zu verringern, verwenden Sie "atempo"
Audiofilter. Der folgende Befehl verdoppelt die Audiogeschwindigkeit.
$ ffmpeg -i input.mp4 -filter:a "atempo=2.0" -vn output.mp4
Sie können jeden Wert zwischen 0.5
verwenden und 2.0
für Audio.
22. Animiertes GIF erstellen
Wir verwenden GIF-Bilder in fast allen sozialen und beruflichen Netzwerken für verschiedene Zwecke. Mit FFmpeg können wir einfach und schnell animierte Videodateien erstellen.
Die folgende Anleitung erklärt, wie man eine animierte GIF-Datei mit FFmpeg und ImageMagick in Linux- und Unix-ähnlichen Systemen erstellt.
- So erstellen Sie animierte GIFs unter Linux
Empfohlene Lektüre:
- Gifski - Ein plattformübergreifender hochwertiger GIF-Encoder
23. Videos aus PDF-Dateien erstellen
Ich habe im Laufe der Jahre viele PDF-Dateien, hauptsächlich Linux-Tutorials, gesammelt und auf meinem Tablet-PC gespeichert. Manchmal fühle ich mich zu faul, sie vom Tablet abzulesen.
Also beschloss ich, ein Video aus PDF-Dateien zu erstellen und es auf einem großen Bildschirm wie einem Fernseher oder einem Computer anzusehen. Wenn Sie sich jemals gefragt haben, wie Sie aus einer Sammlung von PDF-Dateien eine Filmdatei erstellen können, hilft Ihnen die folgende Anleitung weiter.
- So erstellen Sie ein Video aus PDF-Dateien unter Linux
24. Videos drehen
Wenn Sie Videodateien mit unterschiedlicher Ausrichtung (Hoch- oder Querformat) haben, können Sie sie drehen, wie in der folgenden Anleitung beschrieben.
- So drehen Sie Videos mit FFMpeg von der Befehlszeile aus
25. Konvertieren Sie Videos in das WhatsApp-Videoformat
WhatsApp unterstützt einige Videos nicht. Sie können sie nicht mit Ihren Kontakten teilen oder sie in den WhatsApp-Status versetzen. Keine Bange! Wir können Videos ganz einfach in das von WhatsApp unterstützte Videoformat mit FFmpeg konvertieren, wie im folgenden Link beschrieben.
- Videos mit FFmpeg in das WhatsApp-Videoformat konvertieren
26. Videos vergrößern und verkleinern
FFmpeg hat viele nützliche Filter, um eine bestimmte Aufgabe auszuführen. Einer davon ist Zoompan. Mit dem Zoompan-Filter können wir alle X Sekunden problemlos hinein- und herauszoomen. Weitere Einzelheiten finden Sie unter folgendem Link:
- So vergrößern und verkleinern Sie Videos mit FFmpeg
27. Hilfe bekommen
In diesem Handbuch habe ich die am häufigsten verwendeten FFmpeg-Befehle behandelt. Es hat viel mehr verschiedene Optionen, um verschiedene erweiterte Funktionen auszuführen. Um mehr darüber zu erfahren, lesen Sie die Manpage.
$ man ffmpeg
Verwandte Lektüre:
- Youtube-dl Tutorial mit Beispielen für Anfänger
Und das ist alles. Ich hoffe, dieser Leitfaden hat Ihnen genügend FFmpeg-Befehlsbeispiele für den Einstieg in FFmpeg gegeben.