GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Über 20 FFmpeg-Befehle für Anfänger

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 sind  22050 , 44100 , 48000 Hz.
  • -ac - Legen Sie die Anzahl der Audiokanäle fest.
  • -ab - Zeigt die Audio-Bitrate an.
  • -f - Ausgabedateiformat. In unserem Fall ist es mp3 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:

  1. 96 kbps
  2. 112 kbps
  3. 128 kbps
  4. 160 kbit/s
  5. 192 kbit/s
  6. 256 kbps
  7. 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 ist 25 .
  • -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 wie image-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.


Linux
  1. 10 Linux-Befehle für die Netzwerkdiagnose

  2. DNF-Befehlsbeispiele für Anfänger

  3. YAML für Anfänger

  4. Linux für Anfänger:10 Befehle für den Einstieg am Terminal

  5. Linux für Anfänger:10 weitere Befehle zum Manipulieren von Dateien

Bash Heredoc-Tutorial für Anfänger

Die nützlichsten FFmpeg-Befehle für die Audio- und Videokonvertierung

Grundlegende Linux-Befehle für Anfänger

20 grundlegende Ubuntu-Befehle für Anfänger

Die 40 nützlichen Linux-Server-Befehle für Anfänger und Profis

17 beste Linux-Netzwerk- und Fehlerbehebungsbefehle für Anfänger