FFmpeg ist ein hervorragendes Tool zum Konvertieren, Komprimieren und Streamen von Audio- und Videoaufnahmen mit nur Befehlen.
FFmpeg; Es ist eine kostenlose Open-Source-Multimediabibliothek und ein terminalbasiertes Tool zum Bearbeiten von Video-, Audio- und anderen Multimediadateien. Es kombiniert viele Encoder und Decoder, um fast alle gängigen und ungewöhnlichen Multimedia-Formate zu unterstützen.
FFmpeg hat eine Lernkurve, besonders wenn Sie neu in der Terminalschnittstelle sind. Sie müssen Befehle mit Ihrer Tastatur eingeben, um Multimediadateien und Streams zu transkodieren. In diesem Artikel werde ich die am häufigsten verwendeten FFmpeg-Befehle mit Beispielen vorstellen, um verschiedene Aufgaben wie das Konvertieren von Medienformaten, das Trimmen von Videos und das Extrahieren von Audio-/Videostreams auszuführen.
Vor allem anderen, FFmpegLassen Sie uns einrichten.
FFmpeg-Installation
Die Installation von FFmpeg in Pardus ist recht einfach. Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein.
sudo apt update && sudo apt install ffmpeg
Nachdem die Installation erfolgreich abgeschlossen wurde, testen wir, ob FFmpeg tatsächlich installiert ist.
Sie können die installierte Version von FFmpeg herausfinden, indem Sie den folgenden Befehl eingeben.
ffmpeg -Version
Mit den folgenden Befehlen können Sie alle verfügbaren Encoder und Decoder (Encoder und Decoder) von FFmpeg auflisten.
ffmpeg-Encoder ffmpeg-Decoder
Nachdem die Installation abgeschlossen ist, können wir mit den am häufigsten verwendeten Befehlen fortfahren.
Abrufen von Videoinformationen mit FFmpeg
Mit FFmpeg können Sie ganz einfach die Informationen einer bestimmten Mediendatei abrufen (z. B. input.mp4). Normalerweise müssen die Eingabedatei und die Ausgabedatei angegeben werden, aber in diesem Fall kann die Ausgabedatei übersprungen werden, da wir nur einige grundlegende Informationen erhalten.
ffmpeg -i input.mp4 -hide_banner
hide_banner
flag hilft beim Ausblenden von FFmpeg-Headern und anderen Details und zeigt nur Mediendateiinformationen an
Vorschau oder Testen von Video- oder Audiodateien
Das FFmpeg-Framework besteht aus FFmpeg selbst, ffprobe und ffplay, dem Mediaplayer, der auf der FFmpeg-Bibliothek basiert. Wenn Sie eine Mediendatei vor oder nach dem Herumspielen in der Vorschau anzeigen oder testen möchten, können Sie sie mit ffplay abspielen, indem Sie den folgenden Befehl ausführen:
ffPlay-Eingabe.mp4
Kernpunkt: Befehl zum Aufrufen des Vollbildmodus -fs
hinzufügen.
Konvertieren von Video- oder Audiodateien in ein anderes Format
FFmpeg ist äußerst nützlich, um Ihre Video- oder Audiodatei in ein anderes Format zu konvertieren. Fahren wir mit den Beispielen fort.
MOV zu MP4 mit FFmpeg
Führen Sie den folgenden Befehl aus, um Ihre Videodatei im MOV-Format mit FFmpeg in MP4 zu konvertieren.
ffmpeg -i Eingabe.mov Ausgabe.mp4
WAW zu MP3 mit FFmpeg
Ebenso können Sie Audiodateien mit FFmpeg konvertieren, indem Sie das Ausgabeformat angeben. Beispielsweise konvertiert FFmpeg mit dem folgenden Befehl WAV in MP3.
ffmpeg -i input.wav -vn -ar 44100 -ac 2 -b:a 192k Output.mp3
Audio aus Video mit FFmpeg extrahieren (Video in Audio konvertieren)
FFmpeg kann Video und Audio trennen sowie die Videodatei in ein anderes Format konvertieren. Mit dem folgenden Befehl können Sie das Audio aus dem Video extrahieren.
ffmpeg -i Eingabe.mp4 -vn Ausgabe.mp3
Ton aus Video entfernen
Sie können den Audiostream mit dem folgenden Befehl aus dem Video entfernen und nur den Videoteil behalten. Sie können auch das Ausgabeformat (MP4 im Beispiel unten) aus den unterstützten Formaten auswählen.
ffmpeg -i input.mp4 -an mute-output.mp4
Konvertieren eines bestimmten Teils des Videos
Zusätzlich zum Konvertieren des Formats des gesamten Videos können Sie mit FFmpeg bei Bedarf auch einen bestimmten Teil des Video- oder Audioformats konvertieren. In diesem Fall, um die Zeit anzugeben -t
Sie müssen den Wert verwenden. Der folgende Befehl konvertiert beispielsweise die ersten 4 Sekunden der input.mp10-Datei in das MKV-Format. Die Zeit hh.mm.ss Beachten Sie, dass Sie auch das Format angeben können.
ffmpeg -i Eingabe.mp4 -t 10 Ausgabe.mkv
Video schneiden mit FFmpeg
FFmpeg kann auch beim Trimmen von Video- und Audiodateien helfen. Einstellen der Startzeit des Clips -ss
Wert und Endzeit einzustellen -to
Nutzwert. -c
Der Wert dient zum Einstellen des Codecs. Um die Dauer des Clips im obigen Beispiel festzulegen, -t
Sie können auch Wert verwenden.
ffmpeg -i input.mp4 -ss 00:01:54 -to 00:06:53 -c copy output.mp4
Zuschneiden von Videomaterial mit FFmpeg
Verwenden Sie den folgenden Befehl, um den Rahmen auf die gewünschte Größe zuzuschneiden. Im Beispiel unten -filter:v
zeigt an, dass der Filter für Video ist. crop
gibt an, dass es sich bei dem benötigten Filter um den Clipping-Filter handelt. „w:h:x:y“ repräsentiert die Breite, Höhe bzw. Position des Rahmens.
ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
Größe des Videos ändern
Der folgende Befehl ändert die Größe des Videos auf die gewünschte Größe. im folgenden Befehl -vf
, im obigen Beispiel -filter:v
ist ein Alias für (alias).
ffmpeg -i input.mp4 -vf Scale=1920:1080 Output.mp4
Kombinieren Sie Audio und Video
Wenn Sie eine Audio- und Videodatei haben, können Sie Ihr Video mit dem folgenden Befehl mit Audio mischen. Beachten Sie, dass Sie ein Containerformat verwenden müssen, das mit Codierungsformaten kompatibel ist.
ffmpeg -i audio.mp3 -i video.mp4 video_audio_mix.mkv
Videos zusammenführen
Wenn Sie mehrere Videoclips haben, die mit demselben Codec codiert sind, können Sie diese Videos zusammenführen oder zusammenführen. Erstellen Sie eine TXT-Datei mit einer Liste aller Quelldateien, die Sie zusammenführen möchten, und führen Sie dann den folgenden Befehl aus.
ffmpeg -f concat -i Dateiliste.txt -c Ausgabe.mp4 kopieren
Videos drehen
Mit FFmpeg können Sie ein Video ganz einfach im Uhrzeigersinn und gegen den Uhrzeigersinn drehen, ein Video vertikal und horizontal spiegeln. In diesem Fall verwenden wir die Eigenschaft "transponieren". Der folgende Befehl dreht das Eingabevideo um 90 Grad im Uhrzeigersinn.
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
transpose
Die verfügbaren Parameter sind 0, 1, 2 und 3.
- 0 – 90 Grad gegen den Uhrzeigersinn drehen und vertikal spiegeln (Standardwert).
- 1 – 90 Grad im Uhrzeigersinn drehen.
- 2 – 90 Grad gegen den Uhrzeigersinn drehen.
- 3 – 90 Grad im Uhrzeigersinn drehen und vertikal drehen.
Um Videos um 180 Grad im Uhrzeigersinn zu drehen transpose
Beachten Sie, dass Sie den Parameter wie folgt zweimal angeben müssen.
ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4
Videos beschleunigen
FFmpeg hilft, die Wiedergabegeschwindigkeit des Videos zu ändern. Sie können ein Video je nach Bedarf beschleunigen oder verlangsamen. Der folgende Befehl verdoppelt beispielsweise die Geschwindigkeit des Videos. Sie können den Wert nach Ihren Bedürfnissen einstellen.
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
Videos komprimieren
Das Komprimieren des Videos mit FFmpeg reduziert die Dateigröße und spart Speicherplatz. Führen Sie den folgenden Befehl für die Videokomprimierung aus.
ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4
Vergrößern oder verkleinern Sie das Video
Gefunden auf FFmpeg zoompan
Mit dem Filter können Sie Zoom- und Schwenkeffekte auf das angegebene Video anwenden. Der folgende Befehl zoomt das Video auf das 1,5-fache und scrollt immer in die Mitte des Bildes.
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
zoom
,z
– Stellen Sie den Zoom-Ausdruck ein. Der Bereich ist 1-10. Der Standardwert ist 1.d
– Legen Sie den Dauerausdruck in Frames fest. Der Standardwert ist 90.x
,y
– Legen Sie den x- und y-Ausdruck fest. Standard ist 0.in_w
,iw
,in_h
,ih
– Breiten-/Höhenwert eingeben.
Schleifen des Videos
Um ein Video mit FFmpeg zu loopen, müssen Sie den Loop-Filter verwenden. Beispielsweise wird der folgende Befehl das MP4-Intro-Video dreimal wiederholen. Der Standardwert der Schleifenzahl ist 0, es gibt also keine Schleife. Verwenden Sie -1 für eine Endlosschleife.
ffmpeg -stream_loop 2 -i input.mp4 -c copy output.mp4
Einstellen der Bilder pro Sekunde (FPS)
FFmpeg ist auch nützlich, um einige Parameter zu ändern, einschließlich FPS und GOP. Sie können die FPS für verschiedene Zwecke ändern, ohne andere Parameter zu ändern. Geben Sie den folgenden Befehl ein und führen Sie ihn aus; FFmpeg ändert die ursprünglichen FPS auf den von Ihnen festgelegten Wert.
ffmpeg -i Eingabe.mp4 -vf "fps=30" Ausgabe.mp4
Fotos grubeinstellen (GOP)
GOP (Group of Pictures) bedeutet den Abstand zwischen zwei Keyframes. -g
Sie können den Wert nach Belieben einstellen. Beachten Sie, dass das Erzwingen zu vieler Keyframes für die Vorwärtsalgorithmen einiger Encoder sehr schädlich ist.
ffmpeg -i Eingabe.mp4 -g 300 Ausgabe.mp4
Kopieren der Metadaten
Sie können die Metadaten einer Quellmediendatei auch mit dem folgenden FFmpeg-Befehl kopieren. Beachten Sie, dass einige Videos möglicherweise nicht alle Metadaten korrekt kopieren, da sie benutzerdefinierte Metadaten speichern.
ffmpeg -i input.mov -map_metadata 0 -movflags use_metadata_tags output.mp4
Untertitel zu Videos hinzufügen
FFmpeg kann mit dem folgenden Befehl eine separate Untertiteldatei zu einem Video hinzufügen. Stellen Sie sicher, dass Sie ein kompatibles Containerformat für das Ausgabevideo auswählen.
ffmpeg -i input.mp4 -i subtitle.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast video-output.mkv
Behalten Sie die ursprüngliche Codierung bei
Manchmal möchten Sie vielleicht die ursprüngliche Kodierung kopieren. Der folgende Befehl erstellt eine Kopie des Einführungsvideos. „-c copy
Der Parameter „” bewirkt, dass FFmpeg den Dekodierungs- und Kodierungsschritt für den angegebenen Stream überspringt, sodass nur Multiplexing und Parsing durchgeführt werden. Es ist nur nützlich, um das Containerformat zu ändern oder Metadaten auf Containerebene zu ändern.
ffmpeg -i input.mp4 -c Ausgabe.mkv kopieren
Erstellen Sie ein animiertes GIF
Ich werde einige FFmpeg-Funktionen rund um Bilddateien vorstellen.
Lassen Sie uns zunächst sehen, wie Sie mit FFmpeg ein animiertes GIF aus einem Video erstellen. Die Grundformel ist einfach wie unten gezeigt:
ffmpeg -i Eingabe.mp4 Ausgabe.gif
Sie können auch einige Parameter hinzufügen, um das ausgegebene GIF-Bild anzupassen:
ffmpeg -ss 00:00:20 -i input.mp4 -to 10 -r 10 -vf Scale=200:-1 Output.gif
-ss
: Gibt den Startpunkt des GIF an.-to
: Zeigt die Endposition des GIF an.-r
: steht für Framerate.-vf scale
: Skaliert das GIF-Bild auf die gewünschte Größe.
Bilder mit FFmpeg skalieren
Sie können FFmpeg auch verwenden, um die Größe von Bildern zu ändern, ähnlich wie Sie die Größe des Videos in einem der vorherigen Beispiele ändern. Der folgende Befehl ändert die Bildgröße auf 1920:1080. Sie können diesen Wert auf eine der gewünschten Dimensionen festlegen.
ffmpeg -i input.png -vf "scale=1920:1080" output.png
Von Bildern bis zu Videos
FFmpeg kann eine Reihe von Bildern in ein Video umwandeln. Dies ist sehr nützlich, wenn Sie eine Diashow erstellen möchten. Der folgende Befehl wäre beispielsweise img001.png, img002.png usw. Es wird eine Diashow mit einer Reihe von Bildern namens erstellt -r 1/5 gibt an, dass jedes Bild eine Dauer von 5 Sekunden hat.
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p Ausgabe.mp4
Konvertieren eines einzelnen Bildes in ein Video
Da Video aus Einzelbildern besteht, ist es möglich, mit FFmpeg ein einzelnes Bild in eine Videodatei umzuwandeln. Verwenden Sie den Parameter -t, um die Dauer des Videos anzugeben. Sie können auch andere Parameter wie im folgenden Befehl hinzufügen.
ffmpeg -loop 1 -i input.png -c:v libx264 -t 30 -pix_fmt yuv420p video.mp4
Rahmen extrahieren
Anstatt ein einzelnes Bild oder eine Reihe von Bildern in ein Video umzuwandeln, können Sie auch Frames aus einem Video extrahieren. Der folgende Befehl extrahiert alle 1 Sekunde 1 Frame aus Ihrem Eingabevideo und gibt die genauen Bilder aus, 001.png, 002.png usw. wird als 3-stellig bezeichnet. Sie können auch andere Parameter wie -ss und -t hinzufügen, wenn Sie dies wünschen.
ffmpeg -i input.mp4 -r 1 Bild-%03d.png
- Der Parameter -ss fügt einen Startpunkt hinzu. Löschen Sie diesen Befehl, wenn Sie ihn vom Anfang des Videos entfernen möchten.
- -t wird verwendet, um einen Punkt zum Entfernen von Frames hinzuzufügen. Dies kann gelöscht werden, wenn kein besonderer Bedarf besteht.
- -i ist der Pfad der Eingabevideodatei.
- Das -r gibt Hashes an, die erfasst und umgekehrt werden sollen, wie es funktionieren soll.
- 1 bedeutet, dass dieser Befehl jede Sekunde 1 Frame aufzeichnet. Wenn Sie alle 2 Sekunden 1 Frame aufnehmen möchten, ersetzen Sie 1 durch 0,5. Verwenden Sie einfach die "1/Sekunde"-Formel und Sie erhalten die Rate, die Sie benötigen.
- -03%d; Es werden 001-stellige Bildnamen wie 002, 3 generiert. Wenn Sie 4-stellige Bildnamen erhalten möchten, verwenden Sie -%04d.
- Die .png-Datei stellt das Format der Frames dar, die Sie aus dem Video extrahiert haben. Sie können auch JPEG- und BMP-Formate verwenden.
Ändern der Lautstärke von Audiodateien
Im Folgenden finden Sie einige häufig verwendete FFmpeg-Befehle für Audiodateien.
Eine der häufigsten ist das Ändern der Lautstärke der Audiodatei. Dazu benötigen Sie die Filteroption „Lautstärke“. Der folgende Befehl reduziert beispielsweise die Lautstärke um die Hälfte. Natürlich können Sie den Wert auch nach Ihren Bedürfnissen anpassen.
ffmpeg -i input.mp3 -af 'volume=0.5' output.mp3
Audiodateien komprimieren
Genau wie beim Komprimieren eines Videos können Sie auch Audio komprimieren, um die Dateigröße zu reduzieren. von FFmpeg -ab
Der Parameter legt die Bitrate für das Zielaudio fest und spart Speicherplatz. Verfügbare Audio-Bitraten sind 96 kbps, 112 kbps, 128 kbps, 160 kbps, 192 kbps, 256 kbps und 320 kbps. Um das Audio zu komprimieren, verwenden Sie einfach einen kleineren Wert als die Quelldatei.
ffmpeg -i Eingabe.mp3 -ab 128 Ausgabe.mp3
Erhöhen oder verringern Sie die Audiowiedergabegeschwindigkeit
Ebenso können wir FFmpeg verwenden, um die Wiedergabegeschwindigkeit des Audios zu beschleunigen oder zu verlangsamen. In diesem Fall verwenden wir den Tonfilter „atempo“. Für Audio kann jeder Wert zwischen 0,5 und 2,0 verwendet werden. Beispielsweise verdoppelt der folgende Befehl die Geschwindigkeit des Tons.
ffmpeg -i input.mp3 -filter:a "atempo=2.0" -vn output.mp3
Hinzufügen von Video zu Audio
Haben Sie jemals versucht, ein MP3-Audio auf YouTube hochzuladen, und sind gescheitert? Wenn Ihre Antwort ja ist, kann das Hinzufügen eines Bildes zum Audio mit FFmpeg in dieser Situation helfen. Der folgende Befehl konvertiert Ihr Audio in ein MP4-Video mit einem bestimmten Bild. Sie können auch basierend auf dem Codierungsformat Ihres Audios einen anderen kompatiblen Container auswählen.
ffmpeg -loop 1 -i image.jpg -i input.mp3 -c:v libx264 -c:a aac -streng experimentell -b:a 192k -kürzeste Ausgabe.mp4
Hilfe von FFmpeg erhalten
Um Hilfe zu einem bestimmten Element in ff*-Tools (einschließlich FFmpeg) zu erhalten, können Sie jederzeit den Parameter -h verwenden, um die Hilfeausgabe auf Ihrem Bildschirm auszugeben.
ffmpeg-h
Der obige Inhalt erklärt einige der am häufigsten verwendeten FFmpeg-Parameter mit FFmpeg-Beispielen. Immer offiziell für weitere Informationen und Anwendungsbeispiele FFmpeg-Dokumentation Du kannst dich bewerben.