1

Я пытаюсь заставить аудио поток зацикливаться на слайде на фоне слайд-шоу, которое я сделал с помощью ffmpeg. В настоящее время у меня есть следующее:

ffmpeg -loop 1 -t 15 -i img_1.jpg \
-loop 1 -t 15 -i img_2.jpg \
-loop 1 -t 15 -i img_3.jpg \
-stream_loop -1 -t 45 -i audio.mp3 \
-filter_complex \
"[0:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=out:st=4:d=1[v0]; \
[1:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \
[2:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \
[v0][v1][v2]concat=n=3:v=1:a=0,format=yuv420p[v]" \
-map "[v]" -map 3:a output.mp4

Теперь решение построено из создания видео с 5 изображениями с эффектом fadeIn/out в ffmpeg и https://video.stackexchange.com/questions/23390/ffmpeg-loop-video-to-the-length-of-audio as а также чтение документов ffmpeg.

Моя главная проблема заключается в том, что этот метод кажется склонным к большим накладным расходам памяти, так как я заставляю аудиопоток зацикливаться бесконечно, и хотя я получаю только первые 45 секунд этого цикла, предположение, которое я хотел бы сделать, заключается в том, что он все еще может использовать увеличение ресурсов до 45 секунд в отдельном потоке.

Короче говоря, есть ли лучший способ иметь такое же поведение?

0