You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并两条FFmpeg命令实现视频循环并匹配音频循环时长

如何合并两条FFmpeg命令实现视频循环并匹配音频循环时长

嘿,我来帮你搞定这个FFmpeg的问题!你原来的两条命令完全可以合并成单条操作,而且还能扔掉那个麻烦的.txt文件,让音频自动循环匹配你想要的视频时长,不用手动写循环列表。

一、直接合并原有两条命令(保留.txt音频循环方式)

你原来的流程是先生成循环3小时的视频,再给它加循环音频。其实可以跳过中间文件output3h.m4v,直接在一条命令里完成所有操作:

ffmpeg -y -stream_loop -1 -i input.m4v -f concat -i text.txt -map 0:v -map 1:a -c:v copy -preset ultrafast -async 1 -t 10800 complete3h.m4v

简单解释下改动:

  • 把第一条命令里的-t 10800移到整个命令的末尾,用来指定最终输出的总时长(3小时)
  • 直接将循环的视频流和.txt里的音频流合并,省去了生成中间文件的步骤,速度更快也更省磁盘空间

二、更优方案:不用.txt,让音频自动循环匹配视频时长

如果你的音频是单个文件(比如audio.mp3),完全不用写.txt列表,直接用FFmpeg的-stream_loop参数让音频无限循环,再用-t指定总时长,FFmpeg会自动让音视频都循环到3小时后停止:

ffmpeg -y -stream_loop -1 -i input.m4v -stream_loop -1 -i audio.mp3 -map 0:v -map 1:a -c:v copy -c:a copy -t 10800 complete3h.m4v

补充说明:

  • -stream_loop -1分别给视频和音频加上,代表无限循环输入源
  • -c:v copy和-c:a copy是直接复制音视频流,全程不重新编码,速度超快
  • 如果你的音频格式和m4v容器不兼容(比如用了MP3但输出容器要求AAC),可以把-c:a copy改成-c:a aac,让FFmpeg自动转码成兼容的音频格式
  • 如果遇到音视频不同步的问题,可以加上-async 1参数来强制同步

备注:内容来源于stack exchange,提问作者James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 08:47:33