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

开始阅读前,需要知道:
  • ffmpy3是FFmpeg的Python包装器
  • ffmpy3根据提供的参数和选项来编译FFmpeg命令行

ffmpy3使用

安装ffmpy3包

使用pip来安装:

1
pip install ffmpy3

ffmpy3简单例子

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

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

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

批量合并ts文件

路径构造

1
2
3
4
5
6
7
8
├───文件夹
│ Python文件.py
│ file.txt
│ 文件A.ts
│ 文件B.ts
│ 文件C.ts
│ 文件D.ts
...

file.txt

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

1
2
3
4
file '文件A.ts'
file '文件B.ts'
file '文件C.ts'
file '文件D.ts'

注意:

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

Python文件

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

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

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

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