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好像不太认识左斜杠

相关推荐
学习智者5 分钟前
《玄》IDE v3.6.3重磅发布:全功能修复与性能飞跃
开发语言·c++·ide·算法·中文语言 玄
奔跑吧树袋熊11 分钟前
多租户隔离该做到哪一层:从连接池到 ORM 的取舍
开发语言·数据库·oracle·系统架构
大江东去浪淘尽千古风流人物14 分钟前
【LoMa】局部特征匹配重访:从LoMa-B到旋转不变LoMa-R的架构与工程实践
开发语言·深度学习·计算机视觉·r语言·视觉定位·sfm·局部特征匹配
菜鸟~noob23314 分钟前
【电子战】测向精度极限——克拉美-罗下限(CRLB)与误差分析【含matlab代码】
开发语言·matlab
m0_7345717615 分钟前
深入理解C++ 析构函数<二>析构顺序
开发语言·c++
ocean210316 分钟前
2025-2026年Python大厂面试高频问题
python·面试·面试经验
T1mzhou25 分钟前
ARM64 Linux 6.10 内核驱动(14):drivers/base/platform.c:板级设备主战场
linux·c语言·开发语言·arm开发
小孩玩什么25 分钟前
深入理解字符串匹配算法:BF算法,KMP算法
java·c语言·开发语言·数据结构·c++·算法
clz131452136 分钟前
设备反欺诈的四大支柱:从设备指纹到关联图谱
开发语言·php
xn713338 分钟前
实测 Codex CLI 0.154.0:response.failed 为什么会被 idle timeout waiting for SSE 覆盖
python·openai