本文讲解如何使用 Python 的 ffmpy3 包来批量合并 ts 文件至单个 mp4 文件。

开始阅读前,需要知道:

  • ffmpy3 是 FFmpeg 的 Python 包装器
  • ffmpy3 根据提供的参数和选项来编译 FFmpeg 命令行

ffmpy3 使用

安装 ffmpy3 包

使用pip来安装:

pip install ffmpy3

ffmpy3 简单示例

import ffmpy3
ff = ffmpy3.FFmpeg (
    inputs = {'输入文件': '参数1'},
    outputs = {'输出文件': '参数2'}
)

最终得出结果相当于在终端里输入:

FFmpeg 参数1 -i 输入文件 参数2 输出文件

批量合并 ts 文件

路径构造

├───文件夹
│    Python文件.py
│    file.txt
│    文件A.ts
│    文件B.ts
│    文件C.ts
│    文件D.ts
...

file.txt

在 file.txt 内部写下ts文件名:

file '文件A.ts'
file '文件B.ts'
file '文件C.ts'
file '文件D.ts'

注意:

  1. 使用单引号,而非双引号,后者会导致报错!
  2. 引号内的路径使用相对路径

Python文件.py

使用这段代码来批量合并ts文件:

ff = ffmpy3.FFmpeg(
        inputs={f'file.txt': '-f concat'},
        outputs={f'文件名.mp4': '-c copy'}
)
ff.run()

上述代码相当于在终端中输入:

FFmpeg -f concat -i file.txt -c copy 文件名.mp4