Das vollständige Handbuch zur Verwendung von ffmpeg unter Linux

Kurz: Diese ausführliche Anleitung zeigt, wie ffmpeg in Ubuntu und anderen Linux-Distributionen installiert wird. Es werden auch einige nützliche ffmpeg-Befehle für den praktischen Gebrauch gezeigt.

ffmpeg ist ein CLI-Dienstprogramm (Command Line Based) für die Verarbeitung von Mediendateien. Es ist ein Framework mit einer Vielzahl von Funktionen und aufgrund seiner Open Source-Lizenz die Basis für viele weit verbreitete Apps wie VLC, YouTube, iTunes und viele mehr. Eine Reihe von Linux-Video-Editoren verwenden ffmpeg unter der Benutzeroberfläche.

Was ich an ffmpeg noch mehr liebe, ist, dass es alleine verwendet werden kann, um viele Verarbeitungsaufgaben auf sehr einfache Weise zu erledigen (mit einem oder zwei Befehlen). Es ist jedoch ein sehr leistungsfähiges Programm, das auf komplexere Weise verwendet werden kann und sogar einen Bearbeitungsworkflow ersetzt.

In diesem ffmpeg-Tutorial werde ich Ihnen zeigen, wie Sie ffmpeg installieren und die verschiedenen Verwendungszwecke behandeln. Ich werde sogar auf komplexere Funktionen eingehen.

Hier sind die Abschnitte dieses Handbuchs:

  • Ffmpeg installieren
  • Grundsätzliche Verwendung von ffmpeg
  • Erweiterte Nutzung von ffmpeg
  • Filtergrundlagen

Ich werde alles im Detail erklären, damit Sie verstehen, was los ist, auch wenn Sie neu in der Linux-Welt sind.

Ich werde Ubuntu 18.04 verwenden, aber diese Befehle sollten auch für andere Distributionen funktionieren.

Hinweis: Obwohl ich ffmpeg gründlich recherchiert und alles getestet habe, was ich in diesem Artikel erwähne, bearbeite ich keine Videos (oder andere Medien) täglich. Wenn Sie Vorschläge, Tipps oder Korrekturen haben, lassen Sie es mich in den Kommentaren wissen!

Lassen Sie uns loslegen!

Installieren von ffmpeg unter Ubuntu und anderem Linux

Die Installation von ffmpeg ist unkompliziert. Es ist eine beliebte Anwendung und in den meisten Linux-Distributionen über den Paketmanager verfügbar.

Installieren Sie ffmpeg in Ubuntu

In Ubuntu ist ffmpeg im Universums-Repository verfügbar. Stellen Sie daher sicher, dass das Universums-Repository aktiviert ist. und aktualisieren Sie dann die Paketliste und installieren Sie ffmpeg. Sie können all dies mit den folgenden Befehlen in einem Terminal ausführen:

 sudo add-apt-repository universe

sudo apt update

sudo apt install ffmpeg

Das sollte es sein! Sie können die Installation überprüfen, indem Sie einfach Folgendes eingeben:

 ffmpeg 

Daraufhin sollte ein Text angezeigt werden, der Ihre ffmpeg- Konfiguration beschreibt (einschließlich der Version ).

ffmpeg vversion

Wie Sie dem obigen Screenshot entnehmen können, ist die installierte Version 3.4.4 . Die aktuellste Version von ffmpeg zum Zeitpunkt des Schreibens dieses Artikels ist jedoch 4.1 . Um eine beliebige 4.x- Version zu installieren, müssen Sie das ffmpeg ppa verwenden . Erweitern Sie den nächsten Abschnitt, um die Details der ffmpeg-Installation über PPA anzuzeigen.

Installieren Sie das neueste ffmpeeg in Ubuntu-basierten Distributionen mit PPA

Es gibt eine inoffizielle PPA, mit der Sie die neueste ffmpeg-Version installieren können. Verwenden Sie einfach diese Befehle:

 sudo add-apt-repository ppa: jonathonf / ffmpeg-4

sudo apt update

sudo apt install ffmpeg -y

Installieren Sie ffmpeg in Arch-basierten Distributionen

Verwenden Sie den folgenden Befehl, um ffmpeg in Arch-basierten Distributionen zu installieren:

 sudo pacman -S ffmpeg 

Installieren Sie ffmpeg in Fedora-basierten Distributionen

Um ffmpeg in Fedora-basierten Linux-Distributionen zu installieren, können Sie diesen Befehl verwenden:

 sudo dnf installiere ffmpeg 

Wie benutzt man ffmpeg: Die Grundlagen

Wenn ffmpeg installiert ist, werde ich grundlegende Befehle durchgehen, um Ihnen den Einstieg in dieses leistungsstarke Tool zu erleichtern.

0. ffmpeg-Befehle

Die Grundform eines ffmpeg-Befehls lautet:

 ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ... 

Beachten Sie, dass alle Dateioptionen nur für die folgende Datei gelten (Sie müssen sie für die nächste Datei erneut schreiben).

Alle Dateien, denen -i nicht vorausgeht, werden als Ausgabedateien betrachtet. Ffmpeg verwendet so viele Ein- und Ausgänge, wie Sie bereitstellen. Sie können sowohl für eine Eingabe- als auch für eine Ausgabedatei denselben Namen verwenden, müssen jedoch vor dem Namen der Ausgabedatei das -y -Tag einfügen .

Hinweis

Sie sollten keine Ein- und Ausgänge mischen . Geben Sie zuerst die Eingabedateien und dann die Ausgabedateien an.

1. Informationen zu Mediendateien abrufen

Bei der ersten Verwendung von ffmpeg werden Informationen zu einer Mediendatei angezeigt. Dies kann erreicht werden, indem keine Ausgabedateien eingegeben werden. Einfach eintippen:

 ffmpeg -i Dateiname 

Dies funktioniert sowohl für Audio- als auch für Videodateien:

 ffmpeg -i video_file.mp4

ffmpeg -i audio_file.mp3

Informationen zu einer Mediendatei mit ffmpeg anzeigen

Dieser Befehl ist zwar nützlich, zeigt jedoch viel zu viele Informationen an, die für Ihre Datei nicht relevant sind (Informationen zu ffmpeg). Um dies auszulassen, fügen Sie das Flag -hide_banner hinzu :

 ffmpeg -i video_file.mp4 -hide_banner

ffmpeg -i audio_file.mp3 -hide_banner

Zeigen Sie Informationen einer Mediendatei mit ffmpeg an

Wie Sie sehen, gibt der Befehl nur noch Details zu der von Ihnen angegebenen Mediendatei aus (Encoder, Streams usw.).

2. Konvertieren Sie Mediendateien

Eine weitere sehr nützliche Möglichkeit, ffmpeg zu verwenden, ist die problemlose Konvertierung zwischen verschiedenen Medienformaten. Sie müssen nur Eingabe- und Ausgabedateien angeben, da ffmpeg das erforderliche Format von den Dateierweiterungen erhält. Dies funktioniert für Video-zu-Video- und Audio-zu-Audio-Konvertierungen.

Hier sind einige Beispiele:

 ffmpeg -i video_input.mp4 video_output.avi

ffmpeg -i video_input.webm video_output.flv

ffmpeg -i audio_input.mp3 audio_output.ogg

ffmpeg -i audio_input.wav audio_output.flac

Sie können sogar mehr Ausgabedateien angeben:

 ffmpeg -i audio_input.wav audio_output_1.mp3 audio_output_2.ogg 

Dadurch werden die Eingabedateien in alle angegebenen Formate konvertiert.

Verwenden Sie zum Anzeigen einer Liste aller unterstützten Formate Folgendes:

 ffmpeg -formate 

Auch hier können Sie -hide_banner hinzufügen, um Informationen über die App wegzulassen.

Sie können den Parameter -qscale 0 vor der Ausgabedatei angeben, um die Qualität einer Videodatei zu erhalten:

 ffmpeg -i video_input.wav -qscale 0 video_output.mp4 

Außerdem können Sie Codecs angeben, die Sie verwenden möchten, indem Sie -c: a (für Audio ) und -c: v (für Video ) gefolgt vom Namen der Codecs hinzufügen oder kopieren, wenn Sie dieselben Codecs wie das Original verwenden möchten Datei:

 ffmpeg -i video_input.mp4 -c: v copy -c: ein libvorbis video_output.avi 

Hinweis: Dies könnte die Dateierweiterung täuschen, seien Sie also vorsichtig.

3. Extrahieren Sie Audio aus Video

Um Audio aus einer Videodatei zu extrahieren, führen Sie eine einfache Konvertierung durch und fügen das Flag -vn hinzu :

 ffmpeg -i video.mp4 -vn audio.mp3 

Beachten Sie, dass dieser Befehl die Bitrate der Originaldatei verwendet. Es ist eine gute Idee, es selbst einzustellen. Sie können -ab (Audio-Bitrate) verwenden:

 ffmpeg -i video.mp4 -vn -ab 128k audio.mp3 

Einige übliche Bitraten sind 96k, 128k, 192k, 256k, 320k (höchste von MP3 unterstützte Bitrate).

Andere gebräuchliche Optionen sind -ar ( Audiofrequenz : 22050, 441000, 48000), -ac (Anzahl der Audiokanäle ), -f ( Audioformat, obwohl normalerweise automatisch erkannt). -ab kann auch durch -b ersetzt werden : a . Zum Beispiel:

 ffmpeg -i video.mov -vn -ar 44100 -ac 2 -b: a 128k -f mp3 audio.mp3 

4. Audio in Video stumm schalten

Ähnlich wie bei der letzten Aufgabe fügen wir dazu ein einfaches Tag hinzu: -an (anstelle von -vn ).

 ffmpeg -i video_input.mp4 -an -video_output.mp4 

Hinweis: Das -an- Tag macht alle Audiooptionen für diese Ausgabedatei unbrauchbar, da das Ergebnis des Vorgangs kein Audio enthält.

5. Extrahieren Sie Bilder aus Video

Dies könnte für viele Menschen nützlich sein. Beispielsweise könnten Sie eine Reihe von Bildern haben (z. B. eine Diashow), und Sie möchten alle Bilder daraus herausholen. Einfach eingeben:

 ffmpeg -i video.mp4 -r 1 -f image2 image-% 3d.png 

Lassen Sie uns das für eine Sekunde auseinander nehmen.

-r gibt die Bildrate an (wie viele Bilder in einer Sekunde extrahiert werden, Standard : 25), -f gibt das Ausgabeformat an ( image2 steht eigentlich für image2 sequence).

Der letzte Parameter (die Ausgabedatei) hat eine interessante Bezeichnung: Am Ende wird % 3d verwendet. Dadurch werden Ihre Bilder einfach dreistellig nummeriert (000, 001 usw.). Sie können auch % 2d (zweistelliges Format) oder sogar % 4d (vierstelliges Format) verwenden. Fühlen Sie sich frei zu experimentieren und zu verwenden, was auch immer für Sie funktioniert!

Hinweis: Es gibt auch eine Möglichkeit, eine Reihe von Bildern in ein Video / eine Diashow umzuwandeln. Ich werde das im Abschnitt " Erweiterte Verwendung " behandeln .

6. Ändern Sie die Videoauflösung oder das Seitenverhältnis

Eine weitere einfache Aufgabe für ffmpeg . Alles, was Sie tun müssen, um die Größe eines Videos zu ändern, ist eine neue Auflösung nach dem Flag -s anzugeben:

 ffmpeg -i video_input.mov -s 1024 x 576 video_output.mp4 

Außerdem möchten Sie möglicherweise -c: a angeben, um sicherzustellen, dass die Audiocodecs der Ausgabedatei die richtigen sind:

 ffmpeg -i video_input.h264 -s 640 x 480 -c: eine video_output.mov 

Sie können das Seitenverhältnis auch mit -aspect ändern :

 ffmpeg -i video_input.mp4 -aspect 4: 3 video_output.mp4 

Hinweis: Im Abschnitt " Erweiterte Verwendung" wird erneut eine etwas leistungsstärkere Methode erwähnt.

7. Fügen Sie dem Audio ein Poster-Bild hinzu

Auf diese Weise können Sie Audio in Video umwandeln, indem Sie ein einzelnes Foto (z. B. ein Albumcover) als Audio verwenden. Dies ist eine sehr nützliche Funktion, wenn Sie Audiodateien auf Websites hochladen möchten, die nichts anderes als Videos / Bilder zulassen (YouTube und Facebook sind zwei Beispiele für solche Websites).

Hier ist ein Beispiel:

 ffmpeg -loop 1 -i image.jpg -i audio.wav -c: v libx264 -c: aac -strict experimental -b: a 192k -shortest output.mp4 

Ändern Sie einfach die Codecs ( -c: v gibt die Videocodecs an, -c: a gibt die Audiocodecs an) und die Namen Ihrer Dateien.

Hinweis: Sie müssen -strict experimental nicht verwenden , wenn Sie eine neuere Version ( 4.x ) verwenden.

8. Untertitel zu Video hinzufügen

Ebenso nützlich und einfach mit ffmpeg zu tun ist das Hinzufügen von Untertiteln zu einem Video (zum Beispiel einem Film). Gebe folgendes ein:

 ffmpeg -i video.mp4 -i subtitles.srt -c: v copy -c: a copy -preset veryfast -c: s mov_text -map 0 -map 1 output.mp4 

Natürlich können Sie beliebige Codecs angeben (und weitere zusätzliche Optionen in Bezug auf Audio / Video). Sie können diesen Artikel über das grafische Bearbeiten von Untertiteln unter Linux lesen.

9. Mediendateien komprimieren

Durch das Komprimieren von Dateien wird die Dateigröße erheblich reduziert, wodurch Sie viel Platz sparen. Dies kann für die Übertragung von Dateien wichtig sein. Mit ffmpeg gibt es mehrere Methoden, um die Dateigröße zu reduzieren.

Hinweis: Wenn Sie Dateien zu stark komprimieren, wird die Qualität der resultierenden Datei spürbar beeinträchtigt.

Reduzieren Sie zunächst für Audiodateien einfach die Bitrate (mit -b: a oder -ab ):

 ffmpeg -i audio_input.mp3 -ab 128k audio_output.mp3 ffmpeg -i audio_input.mp3 -b: a 192k audio_output.mp3 

Wieder sind einige unterschiedliche Bitratenwerte: 96k, 112k, 128k, 160k, 192k, 256k, 320k. Je höher die Bitrate, desto höher die Dateigröße und die Qualität.

Für Videodateien stehen Ihnen weitere Optionen zur Verfügung. Eine Möglichkeit wäre, die Videobitrate zu reduzieren (mit -b: v ):

 ffmpeg -i video_input.mp4 -b: v 1000k -bufsize 1000k video_output.mp4 

Hinweis: Die Video-Bitraten unterscheiden sich von den Audio-Bitraten (viel höhere Werte).

Sie können das Flag -crf ( Constant Rate Factor ) setzen. Ein niedrigerer crf bedeutet eine höhere Bitrate. Außerdem hilft es, libx264 als Video-Codec zu verwenden. Hier ist eine sehr effiziente Größenreduzierung bei sehr geringer Qualitätsreduzierung:

 ffmpeg -i video_input.mp4 -c: v libx264 -crf 28 video_output.mp4 

Ein crf von 20 bis 30 ist üblich, aber Sie können gerne mit dem spezifischen Wert herumspielen .

Das Verringern der Bildrate funktioniert in einigen Fällen möglicherweise (obwohl sich das Video dadurch sehr leicht träge anfühlt):

 ffmpeg -i video_input.mp4 -r 24 video_output.mp4 

-r gibt die Bildrate an (in diesem Fall 24 ).

Sie können auch versuchen, die Größe des Videos zu verringern (bereits erläutert, wie Sie dies tun). Ein weiterer Tipp ist, auch das Audio zu komprimieren, es in Stereo zu schalten und die Bitrate zu verringern . Zum Beispiel:

 ffmpeg -i video_input.mp4 -c: v libx264 -ac 2 -c: aac -strict -2 -b: a 128k -crf 28 video_output.mp4 

Hinweis: -strict -2 und -ac 2 kümmern sich um den Stereoteil. Ich habe bereits den Teil behandelt, der die Bitrate reduziert .

10. Mediendateien schneiden (Basic)

Um Dateien von Anfang an zu kürzen, müssen Sie mit -t eine Dauer angeben:

 ffmpeg -i input_video.mp4 -t 5 output_video.mp4

ffmpeg -i input_audio.wav -t 00:00:05 output_audio.wav

Wie Sie sehen können, funktioniert dies sowohl für Video- als auch für Audiodateien . Beide oben genannten Befehle führen dasselbe aus: Speichern Sie die ersten 5 Sekunden der Eingabedatei in der Ausgabedatei. Ich habe verschiedene Arten der Eingabe der Dauer verwendet : eine einzelne Zahl (Anzahl der Sekunden) und HH: MM: SS (Stunden, Minuten, Sekunden). Die zweite Version wirkt eher wie eine Endzeit .

Sie können noch weiter gehen, indem Sie mit -ss eine Startzeit und mit -to sogar eine Endzeit angeben :

 ffmpeg -i input_audio.mp3 -ss 00:01:14 output_audio.mp3

ffmpeg -i input_audio.wav -ss 00:00:30 -t 10 output_audio.wav

ffmpeg -i input_video.h264 -ss 00:01:30 -to 00:01:40 output_video.h264

ffmpeg -i input_audio.ogg -ss 5 output_audio.ogg

Sie können die Startzeit ( -ss HH: MM: SS ), die Dauer ( -t duration ) in Sekunden, die Endzeit ( -to HH: MM: SS ) und die Startzeit ( -s duration ) in Sekunden (beginnend nach duration ) anzeigen Sekunden).

All dies sind gültige Befehle, mit denen Sie mit jedem Teil einer Mediendatei arbeiten können.

Verwendung von ffmpeg: Erweiterte Verwendung

Ich werde jetzt etwas weiter fortgeschrittene Funktionen (wie Screen Casting, Verwendung von Geräten usw.) behandeln. Kommen wir gleich zum ersten Punkt!

1. Mediendateien teilen

Ich habe bereits das Beschneiden von Dateien behandelt. Um eine Datei in mehrere Teile aufzuteilen, müssen Sie mehrere Schnitte angeben ( Startzeiten, Endzeiten oder Dauer vor jeder Ausgabedatei angeben).

Beachten Sie dieses Beispiel:

 ffmpeg -i video.mp4 -t 00:00:30 video_1.mp4 -ss 00:00:30 video_2.mp4 

Die Syntax ist recht einfach. Ich habe -t 00:00:30 als Dauer für den ersten Teil angegeben (der erste Teil besteht aus den ersten 30 Sekunden des Originalvideos). Als nächstes habe ich festgelegt, dass der Rest Teil eines zweiten Videos sein soll (beginnend mit dem Ende des letzten Teils, 00:00:30 ).

Dies kann für so viele Teile erfolgen, wie Sie möchten! Viel Spaß beim Spielen mit dieser Funktion, da sie sehr leistungsfähig ist. Denken Sie daran, dass es auch mit Audio funktioniert.

2. Verketten Sie Mediendateien

ffmpeg kann auch das Gegenteil bewirken: mehrere Teile zusammenfügen.

Dazu müssen Sie eine neue Textdatei erstellen und diese mit Ihrem bevorzugten Editor bearbeiten .

Da ich das Terminal gerne benutze, benutze ich touch und vim . Es spielt keine Rolle, wie Sie diese Datei nennen. Ich rufe meine join.txt auf und erstelle die Datei mit touch :

 Berühre videos_to_join.txt 

Jetzt bearbeite ich es mit vim :

 vim videos_to_join.txt 

Sie können beliebige Tools verwenden (Nano, Gedit usw.). Dies ist genau das, was ich am einfachsten verwenden kann.

Geben Sie hier die vollständigen Pfade zu allen Dateien ein, die Sie verbinden möchten (sie werden in der Reihenfolge verbunden, in der Sie sie hier schreiben), und zwar einen pro Zeile. Stellen Sie sicher, dass sie dieselbe Erweiterung haben (z. B. mp4 ). Hier ist meins:

 /home/ubuntu/Desktop/video_1.mp4

/home/ubuntu/Desktop/video_2.mp4

/home/ubuntu/Desktop/video_3.mp4

Speichern Sie die soeben bearbeitete Datei. Diese Methode funktioniert für alle Audio- oder Videodateien.

Geben Sie nun Folgendes ein:

 ffmpeg -f concat -i join.txt output.mp4 

Hinweis: Meine Ausgabedatei ist output.mp4, aber das liegt daran, dass alle meine Eingabedateien die Erweiterung mp4 haben .

Dies sollte alle Dateien, die Sie in join.txt notiert haben (oder wie auch immer Sie diese Datei benannt haben), in einer einzigen Ausgabedatei zusammenführen.

3. Verbinden Sie Bilder zu einem Video

So können Sie eine Diashow oder ähnliches zusammenstellen. Ich zeige Ihnen, wie Sie auch Audio hinzufügen können.

Als erstes empfehle ich, sicherzustellen, dass sich die Fotos, die Sie zusammenstellen möchten, im selben Verzeichnis befinden. Ich werde meine in ein Verzeichnis namens my_photos legen . Die für die Bilder empfohlenen Erweiterungen sind .png und .jpg . Stellen Sie sicher, dass alle Bilder dieselbe Erweiterung haben (andernfalls kann die Verwendung von ffmpeg unbeabsichtigte Auswirkungen haben). Sie können die .png- Dateien einfach in .jpg konvertieren oder umgekehrt (siehe Grundsätzliche Verwendung ).

Das Format ( -f ) unserer Konvertierung sollte image2pipe sein . Für die Eingabe müssen Sie einen Bindestrich ( - ) eingeben . Mit image2pipe können Sie die Ergebnisse eines Befehls wie cat in ffmpeg leiten (im Terminal | verwenden ), anstatt alle Namen einzeln einzugeben . Genau das werde ich tun. Damit dies funktioniert, müssen wir auch erwähnen, dass die Videocodecs kopiert werden sollen ( -c: v copy ) (um die Bilder richtig zu verwenden):

 Katze my_photos / * | ffmpeg -f image2pipe -i - -c: v copy video.mkv 

Wenn Sie diese Datei wiedergeben, denken Sie möglicherweise, dass der Diashow nur einige Bilder hinzugefügt wurden. Eigentlich wurden alle Ihre Bilder hinzugefügt, aber ffmpeg durchläuft sie so schnell wie möglich. Dies bedeutet 1 Bild pro Foto; ffmpeg (standardmäßig) läuft mit ca. 23 fps .

Um dies zu ändern, müssen Sie die gewünschte Bildrate ( -framerate ) angeben:

 Katze my_photos / * | ffmpeg -framerate 1 -f image2pipe -i - -c: v copy video.mkv 

In meinem Beispiel habe ich die Bildrate auf 1 gesetzt, dh, jedes Bild (dh auch jedes Bild) wird 1 Sekunde lang angezeigt.

Um Audio wie ein Hintergrundlied hinzuzufügen, müssen wir die Audiodatei als Eingabedatei angeben ( -i audo_file ) und die Audiocodecs kopieren ( -c: eine Kopie ). Für die Codecs können Sie mit -c copy sowohl Audio- als auch Videocodecs gleichzeitig kopieren . Stellen Sie sicher, dass Sie die Codecs richtig eingestellt haben, bevor Sie die Ausgabedatei angeben. Sie können die Bildrate auch so einstellen, dass alle Ihre Bilder mit der Dauer des Audiosignals synchronisiert werden, das Sie verwenden möchten. Teilen Sie dazu die Anzahl der Bilder durch die Audiodauer (in Sekunden) . In meinem Beispiel habe ich eine 22 Sekunden lange Audiodatei und 9 Bilder. 9/22 ist ungefähr 0.40, also werde ich das für meine Framerate verwenden:

 Katze my_photos / * | ffmpeg -framerate 0.40 -f image2pipe -i - -i audio.wav -c copy video.mkv 

4. Nehmen Sie Ihren Bildschirm auf

Screencasting mit ffmpeg ist keine schwere Aufgabe. Das zu verwendende Format ( -f ) ist x11grab . Dadurch wird Ihr XSERVER erfasst . Als Eingabe müssen Sie Ihre Bildschirmanzeigenummer angeben (der Hauptbildschirm sollte normalerweise 0: 0 sein ). Dies erfasst jedoch nur einen oberen linken Teil des Bildschirms. Sie sollten eine Bildschirmgröße ( -s ) hinzufügen. Meins ist 1920 × 1080 . Die Bildschirmgröße sollte vor der Eingabe angegeben werden :

 ffmpeg -f x11grab -s 1920 x 1080 -i: 0.0 output.mp4 

Sie können jederzeit q oder STRG + C drücken, um den Screencast zu stoppen .

Bonus-Trick: Sie können die Größe der Ausgabedatei als Vollbild festlegen, indem Sie diese nach der Größe eingeben (anstelle von 1920 × 1080 oder einer anderen festgelegten Auflösung):

 -s $ (xdpyinfo | grep dimensions | awk '{print $ 2;}') 

Hier ist der vollständige Befehl:

 ffmpeg -f x11grab -s $ (xdpyinfo | grep dimensions | awk '{print $ 2;}') -i: 0.0 output.mp4 

5. Nehmen Sie Ihre Webcam auf

Das Aufzeichnen von Eingaben über Ihre Webcam (oder ein anderes Gerät, z. B. eine USB-Kamera) ist noch einfacher. Unter Linux werden Geräte in / dev als / dev / video0, / dev / video1 usw. gespeichert :

 ffmpeg -i / dev / video0 output.mkv 

Drücken Sie erneut q oder STRG + C, um die Aufnahme zu stoppen .

6. Nehmen Sie Ihr Audio auf

Linux verarbeitet Audio hauptsächlich über ALSA und pulseaudio . ffmpeg kann beides aufnehmen, aber ich werde mich mit pulseaudio befassen, da Debian-basierte Distributionen es standardmäßig enthalten. Die Syntax ist für beide Methoden etwas unterschiedlich.

Für pulseaudio müssen Sie alsa erzwingen ( -f ) und default als Eingabe angeben ( -i default ):

 ffmpeg -f alsa -i default output.mp3 

Hinweis: Vergewissern Sie sich in den Einstellungen für den Verteilungston, dass das Standardaufnahmegerät dasjenige ist, das Sie aufnehmen möchten.

Ich spiele ziemlich viel Gitarre und ich habe ein Audio-Interface, damit ich es aufnehmen kann. Ich hatte eine angenehme Überraschung, als ffmpeg meine Gitarre ohne Probleme aufnahm.

Bonus-Tipps zur Aufnahme

Für jede Art von Aufnahme können Sie natürlich auch Codecs angeben (bereits behandelt). Sie können eine bestimmte Bildrate ( -r ) auswählen. Sie können Audioaufnahmen auch mit Webcam- / Bildschirmaufnahmen kombinieren !

 ffmpeg -i / dev / video0 -f alsa -i Standard -c: v libx264 -c: a flac -r 30 output.mkv 

Anstatt Audio aufzunehmen, können Sie genauso einfach eine Audiodatei hinzufügen wie einen Eingang, der über Ihrem Screencast / Ihrer Webcam aufgezeichnet werden soll:

 ffmpeg -f x11grab -s $ (xdpyinfo | grep dimensions | awk '{print $ 2;}') -i: 0.0 -i audio.wav -c: eine Kopie output.mp4 

Hinweis: ffmpeg nimmt in kleinen Stücken auf, sodass eine wirklich kleine Aufnahme möglicherweise nicht gespeichert wird. Ich empfehle, nur ein wenig länger aufzunehmen und anschließend zu schneiden (wenn Sie nur ein paar Sekunden möchten), um sicherzustellen, dass die Datei tatsächlich auf Ihre Festplatte geschrieben wird.

Grundlegende Verwendung von Filtern in ffmpeg

Filter sind eine unglaublich leistungsstarke Funktion von ffmpeg . Es gibt eine verrückte Anzahl von Filtern, die Sie verwenden können, sodass ffmpeg in der Lage ist, alle Bearbeitungsanforderungen zu erfüllen. Da es so viele Filter gibt und dieser Artikel bereits umfangreich ist, werde ich nur einige einfache Filter behandeln.

Die Grundstruktur für die Verwendung eines Filters lautet:

 ffmpeg -i input.mp4 -vf "filter = setting_1 = value_1: setting_2 = value_2, etc" output.mp4 ffmpeg -i input.wav -af "filter = setting_1 = value_1: setting_2 = value_2, etc" output.wav 

Wie Sie sehen, spezifiziere ich Videofilter ( -vf, kurz für -filter: v ) und Audiofilter ( -af, kurz für -filter: a ). Die eigentlichen Filter stehen in doppelten Anführungszeichen ( ) und können durch Trennen mit Kommas ( , ) verkettet werden. Sie können so viele Filter angeben, wie Sie möchten (ich habe usw. geschrieben, um zusätzliche Filter zu notieren, sie sind eigentlich nicht Teil des Befehls).

Die allgemeine Form eines Filters lautet:

 filter = setting_2 = value_2: setting_2 = value_2 

Die verschiedenen Filtereinstellungen und ihre Werte sind durch Doppelpunkte getrennt.

Sie können auch mathematische Operationen als Werte für die verschiedenen Einstellungen ausführen.

Hinweis: Eine detailliertere Beschreibung der verschiedenen Konstanten, die in Ausdrücken und Einstellungen verwendet werden sollen, finden Sie in der offiziellen ffmpeg-Filterdokumentation .

Ich werde sowohl Video- als auch Audiofilter behandeln . Schauen wir uns einige Beispiele an!

1. Videoskalierung

Dies ist ein sehr einfacher Filter. Die einzigen Einstellungen sind Breite und Höhe :

 ffmpeg -i input.mp4 -vf "scale = w = 800: h = 600" output.mp4 

Ich erwähnte, dass Sie mathematische Operationen auch für Werte verwenden können :

 ffmpeg -i input.mkv -vf "scale = w = 1/2 * in_w: h = 1/2 * in_h" output.mkv 

Dieser Befehl setzt die Ausgabegröße auf die Hälfte ( 1/2 ) der Eingabegröße ( in_w, in_h ).

2. Video zuschneiden

Die Einstellungen für den Skalierungsfilter beziehen sich auf die Breite und Höhe der resultierenden Datei. Optional können Sie Koordinaten für die linke obere Ecke des Schnitts angeben ( Standard: Mitte des Eingabevideos):

 ffmpeg -i input.mp4 -vf "crop = w = 1280: h = 720: x = 0: y = 0" output.mp4

ffmpeg -i input.mkv -vf "crop = w = 400: h = 400" output.mkv

Wie bereits erwähnt, schneidet der zweite Schnitt in der Mitte der Eingabedatei (da ich für die linke obere Ecke keine x- und y- Koordinaten angegeben habe). Der erste Befehl wird von der oberen linken Ecke abgeschnitten ( x = 0: y = 0 ).

Hier ist ein Beispiel, das mathematische Ausdrücke als Werte verwendet :

 ffmpeg -i input.mkv -vf "crop = w = 3/4 * in_w: h = 3/4 * in_h" output.mkv 

Dieser Befehl setzt die Ausgabegröße auf 3/4 der Eingabegröße ( in_w, in_h ).

3. Videodrehung

Sie können ein Video auch um einen Wert im Uhrzeigersinn drehen ( im Bogenmaß ). Zur Vereinfachung können Sie einen Wert in Grad angeben und in Bogenmaß umrechnen, indem Sie diesen Wert mit PI / 180 multiplizieren :

 ffmpeg -i input.avi -vf "drehen = 90 * PI / 180"

ffmpeg -i input.mp4 -vf "rotate = PI"

Der erste Befehl dreht das Video um 90 Grad im Uhrzeigersinn . Mit dem zweiten Befehl wird das Video auf den Kopf gestellt (PI rad = 180 Grad).

4. Audio Channel Remapping

Dies kann hilfreich sein, wenn Sie nur Audio im rechten Ohr oder ähnliches hören. Sie können das Audio von beiden Ohren aus (in diesem speziellen Fall) wie folgt hörbar machen:

 ffmpeg -i input.mp3 -af "channelmap = 1-0 | 1-1" output.mp3 

Dies ordnet den rechten ( 1 ) Audiokanal sowohl dem linken ( ) und den rechten ( 1 ) Audiokanal. (Die linke Zahl steht für die Eingabe, die rechte Zahl für die Ausgabe ).

5. Audiovolumen-Multiplikation

Sie können die Lautstärke mit jeder reellen Zahl (ganzzahlig oder nicht) multiplizieren . Sie müssen nur den Multiplikator angeben:

 ffmpeg -i input.wav -af "volume = 1.5" output.wav

ffmpeg -i input.ogg -af "volume = 0.75" output.ogg

Der erste Befehl verstärkt die Lautstärke um das 1, 5- fache. Der zweite Befehl macht den Ton 1/4 (0, 25) mal leiser .

Bonus-Tipp: Anpassung der Wiedergabegeschwindigkeit

Ich werde sowohl das Video (ohne Auswirkungen auf Audio) als auch Audiofilter für diese Aufgabe einschließen.

1. Video

Der Filter für Video ist setpts (PTS = Presentation Time Stamp). Das funktioniert auf eine etwas interessante Art und Weise. Da wir das PTS tatsächlich modifizieren, bedeutet ein größerer Koeffizient ein langsameres Ergebnis und umgekehrt:

 ffmpeg -i input.mkv -vf "setpts = 0.5 * PTS" output.mkv

ffmpeg -i input.mp4 -vf "setpts = 2 * PTS" Ausgabe, mp4

Wie ich gerade erklärt habe, verdoppelt der erste Befehl die Wiedergabegeschwindigkeit und der zweite Befehl verlangsamt das Video auf die Hälfte der Geschwindigkeit . EIN

2. Audio

Der Filter dafür ist atempo . Es gibt eine kleine Einschränkung: Es kann nur Werte zwischen 0, 5 (halbe Geschwindigkeit) und 2 (doppelte Geschwindigkeit) annehmen. Um das zu umgehen, können Sie Atempo- Filter verketten :

 ffmpeg -i input.wav -af "atempo = 0.75" output.wav

ffmpeg -i input.mp3 -af "atempo = 2.0, atempo = 2.0" ouutput.mp3

Der erste Befehl verlangsamt den Ton um 1/4 der ursprünglichen Geschwindigkeit. Der zweite Befehl beschleunigt den Ton viermal (2 * 2).

Hinweis: Um die Geschwindigkeit der Video- und Audiowiedergabe mit demselben Befehl zu ändern, müssen Sie in den Filtergraphen nachsehen .

Einpacken

In diesem umfassenden Handbuch habe ich die Installation, die grundlegende Verwendung, die erweiterte Verwendung und die Grundlagen von Filtern behandelt.

Ich hoffe, dass dies eine hilfreiche Ressource für alle sein kann, die ffmpeg ausprobieren möchten, für jemanden, der ffmpeg für mehrere Aufgaben verwenden möchte oder auch nur für jemanden, der bereit ist, sich mit den umfangreichen Funktionen dieses erstaunlichen Dienstprogramms vertraut zu machen.

Lassen Sie uns wissen, ob Sie diesen Artikel in den Kommentaren unten nützlich fanden, und sagen Sie uns, wofür Sie ffmpeg verwenden ! Wir freuen uns über Ergänzungen jeglicher Art. Vielen Dank, dass Sie unseren Blog gelesen haben, und achten Sie auf einen Artikel, in dem es um komplexere Filter geht . Genießen!

Empfohlen

Xenlism WildFire: Minimales Icon-Theme für Linux Desktop
2019
Beschleunigen Sie Ubuntu Unity auf Low-End-Systemen
2019
MAUJ rüstet sich zum 30. Geburtstag der Free Software Foundation
2019