要对 视频(MP4 或其他格式)执行此操作,您应该使用 Concatenate demuxer。
首先创建一个文本文件,其中包含要连接的视频的路径列表。在您的情况下,它将是相同视频文件的列表,如下所示。
# mylist.txt
file /your/path/video.mp4
file /your/path/video.mp4
file /your/path/video.mp4
路径可以是绝对的或相对的。
然后你需要使用concat demuxer 选项。
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4
这将生成一个 mp4,其中您的原始视频循环播放 3 次。如果您的原始视频是 4 秒长,那么输出将是 12 秒长。我建议您创建一个比音轨稍长的视频,然后在创建最终视频时使用-shortest 选项。
您可以像在帖子中一样在同一命令中添加音频。所以,所有这些看起来像这样:
ffmpeg -f concat -safe 0 -i mylist.txt -i audio.mp3 -c:v copy -c:a copy -shortest output.mp4
在我的示例中,我为我的输出进行了流复制(这将工作得很好并且会非常快),但是您可以使用您想要的编解码器(例如 H264 和 AAC,就像您的帖子一样)。
您可以在concat demuxer documentation 或更好的concat wiki 中找到更多信息。
目前我不知道是否有办法使用 gif 文件来做到这一点。