Batch-Videokonvertierung mit FFmpeg: Bild und Audio kombinieren

1103
Fazle Rabbi

Ich habe einen Ordner voller Audiodateien mit der Erweiterung .mp3, .amr und .wav. Ich habe ein image.jpg. Ich möchte die image.jpg mit jeder Audiodatei in diesem Ordner kombinieren und sie in eine separate vidoe.mp4-Datei konvertieren. Wie mache ich das mit FFmpge?

1

1 Antwort auf die Frage

1
Alex Schroedsen

Hier sind zwei weitere beantwortete Fragen, die Ihnen helfen sollen, Ihr Ziel zu erreichen.

"Kombinieren Sie ein Bild + eine Audiodatei, um ein Video mit FFmpeg zu erstellen". Quelle: Kombinieren Sie ein Bild + eine Audiodatei, um ein Video mit FFmpeg zu erstellen

Die Reihenfolge der Optionen in der Befehlszeile ist wichtig. Folgendes funktioniert für meinen Fall:

ffmpeg -loop 1 -shortest -y -i image8.jpg -i sound11.amr -acodec copy -vcodec mjpeg result.avi 

In einem allgemeineren Fall, wo image.jpgund audio.wavsind Ihre Eingabe, können Sie den folgenden Befehl verwenden, der aus dem FFmpeg-Wiki angepasst wurde :

ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -tune stillimage -c:a aac -strict experimental -b:a 192k -pix_fmt yuv420p -shortest out.mp4 

Dies würde den libx264Encoder verwenden und eine bessere Komprimierung bieten als der oben verwendete MJPEG-Codec. Das Audio ist AAC mit dem eingebauten ffmpegAAC-Encoder.


"Wie mache ich eine for-Schleife in der Windows-Befehlszeile?" Quelle: https://stackoverflow.com/questions/11192039/wie-nach-do-a-für-loop-in-windows-command-line

Der Befehlszeileninterpreter verfügt zwar über ein FOR-Konstrukt, das Sie an der Eingabeaufforderung oder aus einer Batchdatei verwenden können.

Für Ihren Zweck möchten Sie wahrscheinlich etwas wie:

FOR %i IN (*.ext) DO my-function %i 

Dies führt dazu, dass der Name jeder Datei mit der Erweiterung * .ext im aktuellen Verzeichnis an my-function übergeben wird (dies kann beispielsweise eine andere .bat-Datei sein).

Der (* .ext) -Teil ist die "Dateispezifikation" und ist ziemlich flexibel bei der Angabe von Dateisätzen. Zum Beispiel könnten Sie Folgendes tun:

FOR %i IN (C:\Some\Other\Dir\*.ext) DO my-function %i 

So führen Sie eine Operation in einem anderen Verzeichnis durch.

Es gibt zahlreiche Optionen für die Dateispezifikation und für FOR im Allgemeinen. Sehen

HELP FOR 

Weitere Informationen erhalten Sie an der Eingabeaufforderung.

Okay, der Inhalt ist jetzt in der Post selbst enthalten, dank einer Nachricht von Donald Duck: D

Obwohl Ihre Antwort zu 100% richtig ist, kann sie auch zu 100% unbrauchbar werden, wenn dieser Link verschoben, geändert oder in eine andere eingefügt wird oder die Hauptseite einfach verschwindet ... **: - (** Bitte [bearbeiten] Sie Ihre antworten Sie und kopieren Sie die entsprechenden Schritte aus dem Link in Ihre Antwort, wodurch Ihre Antwort für 100% der Lebensdauer dieser Website garantiert wird! **; -) ** Sie können den Link immer als eine Quelle für Ihr Material ... Donald Duck vor 7 Jahren 0