我有一堆音频输入,我将它们连接起来以获得最终的音频。我想在这个音频上循环播放一张图片。如果没有 -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"
上述命令的 TL;DR:循环单帧;连接多个音轨;即使输出中使用 -shortest,单帧也永不停止循环。
从那时起,我找到了一个 hacky 解决方案:计算我的 python 脚本中所有歌曲的长度,然后使用 -t 将其传递给循环。不过,我想知道在 ffmpeg 中是否有原生方法可以做到这一点。