我正在寻找FFmpeg的解决方案,将音频(mp3)与短视频循环或gif合并。
我已经能够通过加入音频从图像中生成视频,但视频在音频持续时间内保持静态帧,这个命令可以实现:
ffmpeg -loop 1 -i imagem.jpg -i audio.mp3 -vcodec h264 -tune stillimage -acodec aac -b:a 64k -pix_fmt yuv420p -shortest video.mp4
我需要具有音频持续时间的视频,但是使用另一个mp4或gif的循环。在音频的持续时间内不断重复。
答案 0 :(得分:0)
要使用视频(MP4或其他格式)执行此操作,您应使用Concatenate分离器。
首先创建一个文本文件,其中包含要连接的视频的路径列表。在您的情况下,它将是相同视频文件的列表,如下所示。
# 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 文件执行此操作。