Audio 带有视频或gif循环的FFmpeg concat音频

Audio 带有视频或gif循环的FFmpeg concat音频,audio,video,ffmpeg,Audio,Video,Ffmpeg,我正在寻找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循环。要在音频持续

我正在寻找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循环。要在音频持续时间内重复播放。

要使用视频(MP4或其他格式),应使用串联解复用器

首先创建一个文本文件,其中包含要连接的视频路径列表。在您的情况下,它将是相同视频文件的列表,如下所示

# 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,比如你的文章)

您可以在或更好的中找到更多信息

目前我不知道是否有办法用gif文件来实现这一点