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

如何在ffmpeg-python中使用concat-demuxer?能否无需TXT文件?

不用TXT文件使用ffmpeg concat-demuxer合并视频(Python实现)

完全可以不用TXT文件,通过**标准输入(stdin)**直接传递文件列表给ffmpeg的concat-demuxer,避免生成临时文件,效率更高。

实现代码

import subprocess

# 要合并的视频文件列表
video_paths = ["video_01.mp4", "video_02.mp4", "video_03.mkv"]
output_path = "final_merged_video.mp4"

# 构造ffmpeg命令,-i - 表示从标准输入读取concat列表
ffmpeg_cmd = [
    "ffmpeg",
    "-f", "concat",
    "-safe", "0",  # 处理带特殊字符/绝对路径的文件必须加
    "-i", "-",
    "-c", "copy",  # 直接复制流,速度最快(要求视频参数一致)
    output_path
]

# 构造concat格式的输入内容,每行对应一个视频文件
concat_input = "\n".join([f"file '{path}'" for path in video_paths]).encode("utf-8")

# 执行命令并传递输入内容
subprocess.run(ffmpeg_cmd, input=concat_input, check=True)

关键说明

  • -i -:告诉ffmpeg从标准输入读取concat-demuxer需要的文件列表,替代传统的TXT文件。
  • -safe 0:如果你的视频路径包含空格、特殊字符或者是绝对路径,必须添加此参数,否则ffmpeg会因安全限制拒绝读取。
  • -c copy:仅当所有视频的编码格式、分辨率、帧率、音频参数完全一致时使用,实现无损快速合并;如果参数不一致,去掉此参数让ffmpeg自动重新编码(速度会变慢,但兼容性更好)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:33:16