下载后的视频文件如果是2秒一个的.ts文件,如何快速进行合并,输出一个完整的MP4文件,可以使用 python + ffmpeg
实现
下载 ffmpeg
下载地址:https://www.ffmpeg.org/download.html
windows用户下载


MAC 用户下载


安装配置
windows
windows 免安装,解压即可。
解压后找到 bin
目录,复制 bin
完整路径,如小编电脑路径为:D:\Program Files\ffmpeg-2023-11-28-git-47e214245b-full_build\bin

添加环境变量,使用小编推荐工具 Rapid Environment Editor 进行添加,添加后点击保存

控制台输入 ffmpeg,看到如下信息即说明安装成功

ts文件合并
使用命令行合并
注意切换到ts文件所在目录下运行如下命令,即可合并视频
# DM_20231204145912_001.ts|DM_20231204145912_002.ts|DM_20231204145912_003.ts 为需要合并的文件名
ffmpeg -i "concat:DM_20231204145912_001.ts|DM_20231204145912_002.ts|DM_20231204145912_003.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart output.mp4
也可以将视频列表放入文本 file_list.txt 中,使用如下命令运行
# file_list.txt 的格式如上图所示
ffmpeg -f concat -i file_list.txt -c copy output.mp4

使用 python 生成上图中的 file_list.txt
import os
# 指定文件夹路径
folder_path = r'C:\Users\Administrator\Desktop\111' # 将此路径替换为您的ts文件夹路径
# 生成文件列表
file_list = sorted(os.listdir(folder_path))
file_path = fr"{folder_path}\file_list.txt"
with open(file_path,"w+") as f:
for file in file_list:
if(file.endswith(".ts")):
f.write("file '{}'\n".format(file))
print(f"列表文件生成 ok {file_path}")
使用python 合并
直接使用 python 合并,先生成 txt 文件列表,再调用 ffmpeg 合并视频
#coding:utf-8
import os
# 指定文件夹路径
folder_path = r'C:\Users\Administrator\Desktop\111' # 将此路径替换为您的文件夹路径
# 生成文件列表
file_list = sorted(os.listdir(folder_path))
file_path = fr"{folder_path}\file_list.txt"
with open(file_path,"w+") as f:
for file in file_list:
if(file.endswith(".ts")):
f.write("file '{}'\n".format(file))
print(f"列表文件生成 ok {file_path}")
# 合并ts
# 指定ffmpeg 目录,若报错则使用ffmpeg 的绝对路径
#ffmpeg = "D:\\Program Files\\ffmpeg-2023-11-28-git-47e214245b-full_build\\bin\\ffmpeg.exe"
# 更改工作目录到目标目录
os.chdir(folder_path)
# 执行CMD命令(示例中是ffmpeg合并ts文件为mp4)
cmd_command = "ffmpeg -f concat -i file_list.txt -c copy output.mp4"
os.system(cmd_command)
# 打印命令的输出和错误
print("视屏合并完成")
需要注意 使用 os.system 时,ffmpeg 需要添加到系统环境变量里的 Path