He creado un mp4 a partir de imágenes y archivos de audio usando este comando ffmpeg:
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
Esto produce un video con 2 fotogramas y una pista de audio. Sin embargo, de alguna manera, al reproducir este video en VLC, el último fotograma no se muestra y, cuando se carga en YouTube, la duración del video se muestra incorrectamente.
¿Cómo puedo evitar este error? ¿Existe una solución sencilla?
Respuesta1
Repita las imágenes durante un tiempo limitado (menos que los segmentos de audio).
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