[英]FFmpeg concat audio with video or gif looping
我正在寻找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或其他格式)执行此操作,应使用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文档中找到更多信息,或者在concat wiki上找到更好的信息。
目前,我不知道是否可以使用gif文件来执行此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.