python|利用ffmpeg按顺序合并指定目录内的ts文件

前言:

有的时候我们利用爬虫爬取到的ts文件很多,但ts文件只是视频片段,并且这些视频片段是需要按照一定的顺序合并的,通常ts文件合并输出格式为mp4格式

因此,本文介绍利用python,调用ffmpeg来批量的按自己定义的顺序把ts视频片段文件合并为一个完整的mp4格式文件

主要代码:

bash 复制代码
import  os
paths='D:\\index\\'
save_path='C:\\Users\\Administrator\\Desktop\\'
out_file_name='7.mp4'
file_names = os.listdir(paths)
print(file_names)

ts_files = [f for f in os.listdir(paths) if f.endswith('.ts')]
print(ts_files)
sorted_files = sorted(ts_files, key=lambda x: int(x.split('.')[0]))
print(sorted_files)
with open(paths + 'file_list.txt', 'w', encoding='utf-8') as f:
    for file in sorted_files:
        f.write(f"file '{file}'\n")
print("生成txt文件成功!")
ffmpeg_bin_dic = 'F:\\ffmpeg-master-latest-win64-gpl\\bin\\'
os.system(ffmpeg_bin_dic + 'ffmpeg -f concat -safe 0 -i ' + paths + 'file_list.txt' + ' -c ' + ' copy ' + save_path + out_file_name)

以上代码表示,先利用python的os库,扫描指定的目录,将该目录下的所有ts文件读取到

复制代码
file_list.txt 这个文件内,方便后续确认ts文件排序是否正确

ffmpeg_bin_dic = 'F:\\ffmpeg-master-latest-win64-gpl\\bin\\' 是ffmpeg程序的实际安装目录,需要使用此代码的同学按自己实际路径修改即可

os.system(ffmpeg_bin_dic + 'ffmpeg -f concat -safe 0 -i ' + paths + 'file_list.txt' + ' -c ' + ' copy ' + save_path + out_file_name) 这一段是调用ffmpeg程序,根据file_list.txt这个文件里的内容逐行调用,持续输出mp4文件,输出的文件名称为7.mp4,也就是说输出文件最终路径为

复制代码
C:\\Users\\Administrator\\Desktop\\7.mp4'

整体结构非常简单,只是一个单一功能python脚本,可在任意的python版本下运行,建议是python3.6及以上,主要是python3对于中文支持更为友好,路径paths里即使带中文python3也能够识别,所有路径必须是\\双反斜杠形式,python好像不太认识左斜杠

相关推荐
豌豆花下猫11 分钟前
Python 潮流周刊#118:Python 异步为何不够流行?(摘要)
后端·python·ai
THMAIL16 分钟前
深度学习从入门到精通 - LSTM与GRU深度剖析:破解长序列记忆遗忘困境
人工智能·python·深度学习·算法·机器学习·逻辑回归·lstm
要做朋鱼燕21 分钟前
【C++】 priority_queue 容器模拟实现解析
开发语言·c++·笔记·职场和发展
jiaway26 分钟前
【C语言】第四课 指针与内存管理
c语言·开发语言·算法
励志不掉头发的内向程序员27 分钟前
C++进阶——继承 (1)
开发语言·c++·学习
wheeldown41 分钟前
【数学建模】数据预处理入门:从理论到动手操作
python·数学建模·matlab·python3.11
多打代码1 小时前
2025.09.05 用队列实现栈 & 有效的括号 & 删除字符串中的所有相邻重复项
python·算法
@CLoudbays_Martin111 小时前
为什么动态视频业务内容不可以被CDN静态缓存?
java·运维·服务器·javascript·网络·python·php
程序猿炎义2 小时前
【NVIDIA AIQ】自定义函数实践
人工智能·python·学习
THMAIL2 小时前
深度学习从入门到精通 - BERT与预训练模型:NLP领域的核弹级技术详解
人工智能·python·深度学习·自然语言处理·性能优化·bert