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:vzeigt an, dass der Filter für Video ist. cropgibt 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 copyDer 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.