2016-03-25 4 views
0

Ich versuche, ein Video aus Clips von Bildern und Videos zu erstellen. Für die Clips von Bildern, verwende ich ffmpeg eine Videodatei zu erstellen und dann einen stillen Audiostrom durch diese beiden Schritte, die ich hinzufügen:FFmpeg concat und fügen Sie dann Soundtrack-Ergebnisse in einem Soundtrack, der stottert

ffmpeg.exe -loop 1 -i MyImage.png -codec:v libx264 -t 4.0 -profile:v high -preset slow -r 25 -b:v 500k -maxrate 500k -pix_fmt yuv420p -vf scale=1280:720 MyImageMovie.mp4 

ffmpeg.exe -f lavfi -i anullsrc=r=48000 -i MyImageMovie.mp4 -shortest -c:v copy -c:a aac -strict experimental -y MyImageMovieWithSilentAudioStream.mp4 

Dann kombiniere ich meine Videoclips und Bildclips mit

ffmpeg.exe -f concat -i videoList.txt -c copy -y concatVideo.mp4 

An diesem Punkt sieht das Video gut aus, Videoclips mit Audiostreams scheinen gut mit dem Video synchronisiert zu sein.

Jetzt füge ich einen Soundtrack:

ffmpeg.exe -i concatVideo.mp4 -i soundtrack.mp3 -ar 48000 -filter_complex "[1:a]apad [b] ; [0:a][b]amerge=inputs=2[a]" -map 0:v -map "[a]" -c:v copy -ac 2 -shortest -y FinalVideo.mp4 

Das Problem ist, dass der Soundtrack auf FinalVideo.mp4 stottert auf einige (nicht alle) der Verkettung Gelenke.

Ich vermute, es hat mit dem Audio-Stream zu tun und der Video-Stream der Image-Clips nicht perfekt ausgerichtet. Der AAC hat .0231s Auflösung und das Video hat 0,04s Auflösung. Wenn ich die MyImageMovieWithSilentAudioStream.mp4 fffprobe die Dauer ist 4.00s aber der Start ist 0.0213.

Wenn mein verkettetes Video mehrere dieser Bildclips enthält, kann sich der Fehler anhäufen.

Was kann ich tun, um Video und Audio synchron zu halten und einen Soundtrack hinzuzufügen, der nicht stottert?

Auch das ist ein wenig interessant, ich höre das Stottern nicht, wenn das letzte Video auf Windows Media Player abgespielt wird, aber es ist da, wenn ich es auf VLC oder über das html native Videoelement spiele.

Antwort

0

Versuchen Sie, den Soundtrack im selben Schritt wie die Concat hinzuzufügen.

ffmpeg -f concat -i videoList.txt -i soundtrack.mp3 \ 
-filter_complex "[1:a]apad[b];[0:a][b]amerge=inputs=2[a]" \ 
-map 0:v -map "[a]" 
-c:v copy -c:a aac -ac 2 -ar 48000 -shortest -y FinalVideo.mp4 

Als Nebenwirkung, können Sie auch das Bild und stille Strom Generation kombinieren,

ffmpeg -loop 1 -i MyImage.png -f lavfi -i anullsrc=r=48000 \ 
-vf scale=1280:720 \ 
-c:v libx264 -profile:v high -preset slow -r 25 -b:v 500k -maxrate 500k -pix_fmt yuv420p \ 
-c:a aac -strict experimental -t 4 -y MyImageMovieWithSilentAudioStream.mp4 
+0

ich diesen einen Versuch gab, und ich immer noch das Audio stottert, wenn ich es durch VLC spielen. Ich schätze die Idee jedoch. – JennHarper

+0

Führen Sie meinen Befehl mit "-vn" hinzugefügt und spielen Sie die Ausgabe in VLC und überprüfen. Dies wird eine Nur-Audio-Datei sein. – Mulvya