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

如何使用ffmpeg-python实现音频文件拼接(替代FFmpeg CLI命令)

使用ffmpeg-python实现音频拼接(对应FFmpeg concat demuxer命令)

你可以通过ffmpeg-python直接映射原FFmpeg CLI命令的参数来实现相同的音频拼接功能,核心是指定concat demuxer并设置对应参数,以下是两种可行方案:

方案1:使用预先生成的input.txt文件

对应你原命令ffmpeg -f concat -safe 0 -i input.txt -codec copy output.mp4的代码实现:

import ffmpeg

(
    ffmpeg
    .input('input.txt', format='concat', safe=0)
    .output('output.mp4', codec='copy')
    .run(quiet=True, overwrite_output=True)
)

参数说明:

  • .input('input.txt', format='concat', safe=0):指定输入为input.txt,启用concat demuxer,safe=0关闭路径安全检查(允许使用绝对路径或不同目录的文件)
  • .output('output.mp4', codec='copy'):设置输出文件,codec='copy'直接拷贝音频流,避免重新编码
  • .run(quiet=True, overwrite_output=True):执行拼接操作,quiet=True抑制多余日志输出,overwrite_output=True允许覆盖已存在的输出文件

方案2:动态传递文件列表(无需创建input.txt)

如果不想预先创建input.txt,可以通过管道直接传递文件列表内容:

import ffmpeg

# 构造要拼接的音频文件路径列表,每行格式为file '文件路径'
concat_files = """file 'audio1.mp3'
file 'audio2.mp3'
"""

(
    ffmpeg
    .input('pipe:', format='concat', safe=0)
    .output('output.mp4', codec='copy')
    .run(input=concat_files.encode(), quiet=True, overwrite_output=True)
)

这种方式可以在代码中动态生成要拼接的文件列表,无需额外创建文本文件。

内容的提问来源于stack exchange,提问作者Denys Murakhovskyi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:05:18