FFMPEG - зацикливание изображения поверх объединенного звука

FFMPEG - зацикливание изображения поверх объединенного звука

У меня есть куча аудиовходов, которые я объединяю, чтобы получить финальный звук. Я хотел бы зациклить изображение поверх этого звука. Без -loop это работает на моем компьютере, но не загружается на Vimeo или YouTube. При использовании -loop кодирование никогда не останавливается. При использовании -shortest не работает. Я полагаю, это потому, что финальный звук не является входным потоком. Как мне это сделать?

Вот команда, которую я использую, с некоторыми скрытыми входными данными, чтобы сделать ее менее спамной:

ffmpeg -loop 1 -framerate 1 -i "D:/Programas/FFMPEG/background.jpg" -i "D:\Musical Chairs (feat. Stoneface, Prodigal Sunn & Hell Razah).flac" -i "Medina 718.flac" (...inputs...) -i "D:\Legacy.flac" -filter_complex "[1:v]scale=600:-1[ovrl]; [0:V]drawtext=fontsize=25:fontfile="D:/Programas/FFMPEG/font.ttf":fontcolor=white:text=Royal Fam:x=W/2+W/10.5:y=H/11[f1], [f1]drawtext=fontsize=25:fontfile="D:/Programas/FFMPEG/font.ttf":fontcolor=white:text=Yesterday Today Iz Tomorrow:x=W/2+W/10.5:y=2*(H/10)[f2],[f2]drawtext=fontsize=25:fontfile="D:/Programas/FFMPEG/font.ttf":fontcolor=white:text=2000:x=W/2+W/10.5:y=3*(H/10)[bg]; [bg][ovrl]overlay=(W-w)/7:(H-h)/2; [1:a][2:a][3:a][4:a][5:a][6:a][7:a][8:a][9:a][10:a][11:a][12:a]concat=n=12:v=0:a=1[final]" -map 0:v -map [final]:a -shortest -r 1 -movflags +faststart "RoyalFamYesterday.mp4"

Краткое содержание приведенной выше команды: зацикливание одного кадра; объединение большого количества аудиодорожек; зацикливание одного кадра никогда не прекращается даже при наличии параметра -shortest в выходных данных.

С тех пор я нашел хакерское решение: вычислить длину всех песен в моем скрипте Python и передать ее в цикл с помощью -t. Однако я хотел бы узнать, есть ли собственный способ сделать это в ffmpeg.

Связанный контент