FFmpeg concat音频与视频或gif循环
问题描述:
我正在寻找FFmpeg合并音频(mp3)与短视频循环或gif的解决方案。FFmpeg concat音频与视频或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
分流器选件。
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文件来做到这一点。