ffmpeg mp4-Dateien werden nicht bis zum Ende abgespielt

ffmpeg mp4-Dateien werden nicht bis zum Ende abgespielt

Ich habe mit diesem ffmpeg-Befehl ein MP4 aus Bildern und Audiodateien erstellt:

ffmpeg -y -i tmp/part1/frame0.png -i tmp/part1/audio0.mp3 -i tmp/part1/frame1.png -i tmp/part1/audio1.mp3 -i tmp/part1/pause0.5.mp3 -shortest -filter_complex "[1:0][4:0]concat=n=2:v=0:a=1[a1];[3:0][4:0]concat=n=2:v=0:a=1[a3];[0:0][a1][2:0][a3]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" -vcodec libx264 -qp 0 tmp/part1/out.mp4

Dadurch entsteht ein Video mit 2 Einzelbildern und einer Audiospur. Beim Abspielen des Videos in VLC wird jedoch aus irgendeinem Grund das letzte Einzelbild nicht angezeigt und beim Hochladen auf YouTube wird die Videolänge falsch angezeigt.

Wie kann ich diesen Fehler vermeiden? Gibt es eine einfache Problemumgehung?

Antwort1

Die Bilder werden für eine begrenzte Zeit in einer Schleife wiedergegeben (kürzer als die Audiosegmente).

ffmpeg -y
  -loop 1 -t 2 -i tmp/part1/frame0.png
  -i tmp/part1/audio0.mp3
  -loop 1 -t 2  -i tmp/part1/frame1.png
  -i tmp/part1/audio1.mp3
  -i tmp/part1/pause0.5.mp3
  -shortest
  -filter_complex "[1:0][4:0]concat=n=2:v=0:a=1[a1];
                   [3:0][4:0]concat=n=2:v=0:a=1[a3];
                   [0:0][a1][2:0][a3]concat=n=2:v=1:a=1[outv][outa]"
  -map "[outv]" -map "[outa]" -vcodec libx264 -qp 0 tmp/part1/out.mp4

verwandte Informationen