Bild mit leerer Audiospur in Video konvertieren

1942
Daniel Jacob Archer

Ich habe einen guten Befehl gefunden, ein Bild in FFMPEG in ein Video zu konvertieren, aber jedes Bild wird zu einem längeren Satz von Videos und Bildern verkettet, und ich brauche concat, um auch die Audiospuren zu verketten. (Im Moment werden alle Audiospuren ignoriert, wahrscheinlich, weil die in Videos konvertierten Bilder keine Audiospuren haben.)

Hier ist der Befehl, den ich ausgeführt habe:

ffmpeg -y -loop 1 -f image2 -i /image.jpg -vf 'scale = 640: -1' -r 30 -t 10 -pix_fmt yuvj420p out.mp4

Wie kann ich diesem Befehl nur eine einfache, stille Audiospur hinzufügen oder für Videos ohne Audiospur?

Danke im Voraus!

2
Sie können möglicherweise alles in einem Befehl ausführen, anstatt zuvor temporäre Videos zu erstellen. Kannst du das größere Bild erklären? Sind Sie sicher, dass Sie die von Ihnen verfolgte Methode wirklich benötigen? Möglicherweise tritt hier das [XY-Problem] (http://meta.stackexchange.com/a/66378) auf. LordNeckbeard vor 8 Jahren 0
@LordNeckbeard, ja definitiv. Das große Ganze ist, dass ich eine Reihe von Bildern und Videos habe, die ich zu einem größeren Video zusammenfassen kann - einige Videos haben Audiospuren, andere nicht, Bilder müssen unterschiedlich lange abgespielt werden, und die Inhaltsstücke sind in einer vordefinierten Reihenfolge angeordnet . Wenn es einen fantastischen Weg gibt, einen Befehl wie diesen auszuführen, der das Audio in den Videoclips aufrechterhält und alles in hoher Auflösung hält, würde das das Problem lösen! (Auch wenn Sie nicht unbedingt mehrere temporäre Dateien speichern möchten) Daniel Jacob Archer vor 8 Jahren 0
Können Sie einige Informationen aller Eingaben eines typischen Befehls anzeigen? Bitte zeigen Sie die vollständige Konsolenausgabe von "ffmpeg -i image.jpg -i middle -i end" usw. an. LordNeckbeard vor 8 Jahren 0
@LordNeckbeard Das ist, worüber ich nicht ganz sicher bin. Zum Beispiel wäre "ffmpeg -i image1.jpg -i image2.jpg -i video1noaudio.mp4 -i video2withaudio.mp4 -i image3.jpg" und irgendwo drin Es gibt "concat" und Anweisungen für die Verwendung von "-loop 1 -f image2 -vf" scale = 640: -1 "`. Es müsste auch Audio von den Videos mit Audio erhalten bleiben. Daniel Jacob Archer vor 8 Jahren 0

1 Antwort auf die Frage

0
maxkoryukov

Fügen Sie einfach -i audio.mp3Parameter hinzu, so dass der Befehl folgendermaßen aussieht:ffmpeg -y -loop 1 -f image2 -i /image.jpg -vf 'scale=640:-1' -r 30 -t 10 -pix_fmt yuvj420p-i audio.mp3out.mp4


Hier ist auch eine gute Antwort: https://stackoverflow.com/questions/11779490/ffmpeg-how-to-add-new-audio-not-mixing-in-video

Und hier ist ein ffmpeg-Audio-Handbuch: http://trac.ffmpeg.org/wiki/Encode/MP3

Dazu muss zunächst "audio.mp3" erstellt werden, was unnötig ist, da "ffmpeg" generell stummes Audio mit dem [anullsrc-Filter] (https://ffmpeg.org/ffmpeg-filters.html#anullsrc) ausführen kann. Auch die Platzierung ist wichtig: Sie versuchen, die '-vf'-Skala = 640: -1' -r 30 -t 10 -pix_fmt yuvj420p als Eingabeoptionen für `audio.mp3` anzuwenden. LordNeckbeard vor 8 Jahren 0
Habe es mit anullsrc herausgefunden. Hier ist der Befehl: `ffmpeg -y -f lavfi -i anullsrc -loop 1 -f image2 -i input1.jpg -r 30 -t 10 -pix_fmt yuvj420p -map 0: a -map 1: v input1.mp4` Daniel Jacob Archer vor 8 Jahren 0