2013-02-04 16 views
5

Ich versuche etwas zu erreichen, von dem ich früher dachte, es sollte eine einfache Aufgabe sein. Gibt es einen ffmpeg-Befehl, die folgend tun:ffmpeg Befehl zum Kombinieren von Audio und Bildern

eine audio.wav-Datei in ein Video konvertieren, etwa 100 Bilder (img% d.png), um das Video hinzufügen, so dass sie „automatisch“ strecken die füllen gesamte Länge des Videos

Ich möchte die Bildrate nicht manuell einstellen, weil sie entweder das Audio vor oder hinterlässt.

ich folgenden auch die nicht wollen, zu passieren, die entsteht, wenn die I „loop_input“ verwendet:

Ein kurzes Video von Bildern erstellt wurde, die schnell gespielt und sich dann für die gesamte Dauer des Audio wiederholt .

Bitte lassen Sie mich den Befehl wissen.

Ich habe versucht derzeit folgende, aber diese sind mir nicht die gewünschten Ergebnisse geben:

Dies bewirkt, aber Video geht schnell und Audio nicht voll ist:

ffmpeg -i img%d.png -i audio.wav -acodec copy output.mpg 

Dies bewirkt, kurzes Video, das für volle Audio-Dauer wiederholt:

ffmpeg -loop_input -shortest -i img%d.png -i audio.wav -acodec copy output.mpg 

Dieser fast funktioniert, aber „-r 4“ macht Video geht langsam und Audio geht voran. Wenn ich „-r 5“ verwenden dann geht Audio langsam und Video geht voran:

ffmpeg -r 4 -i img%d.png -i audio.wav -acodec copy -r 30 output.mpg 
+1

FFmpeg kann nicht automatisch „strecken“ (oder erraten) die Eingangsbildrate von Bildern, so dass sie die Länge eines Audiostroms füllen . Sie müssen rechnen. – slhck

+0

Also ... benutze '-r 4.5'? –

Antwort

0

messen die Zeit der Audiospur und dann -t $ audio_duration verwenden.

Dieser Arg, zusammen mit "-loop 1" stoppt den mp4 zu einer Zeit, die dem Audio entspricht.

Sie könnten auch versuchen, 2-Pass-Technik, einschließlich -vcodec libx264, wie es gut funktioniert, MP4 zu produzieren.

und denken über die angepasst folgenden für Ihre Eingaben und Aufnahmeraten:

-b:v 200k -bt 50k 
+0

'-bt' wird von libx264 ignoriert. Ein einfacher Durchgang mit '-crf' anstelle von' -b: v' wird normalerweise empfohlen. Zwei-Durchlauf wird im Allgemeinen verwendet, wenn eine bestimmte Ausgabedateigröße gewünscht wird. Weitere Informationen finden Sie im [FFmpeg and x264 Encoding Guide] (https://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide). – LordNeckbeard

Verwandte Themen