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

相关推荐
三维空间12 分钟前
如何在Python多进程中避免死锁问题?
python
dhdjjsjs21 分钟前
Day30 Python Study
开发语言·前端·python
十五年专注C++开发23 分钟前
async_simple:一个轻量级C++异步协程框架
开发语言·网络·c++·boost·asio
Eric.Lee202134 分钟前
mujoco构建无物理约束的几何体运动
python·物理引擎·mujoco·物理模型仿真
难以触及的高度1 小时前
Java for循环完全指南:从基础到高性能实践
java·开发语言
wadesir1 小时前
用Python实现ggplot2风格绘图(零基础入门Seaborn与Matplotlib美化技巧)
开发语言·python·matplotlib
油炸自行车1 小时前
【Qt】Qt Creator Debug模式提示“缺少 Windows CDB 调试器配套的扩展组件“”
开发语言·windows·qt
budingxiaomoli1 小时前
多线程(三)
java·开发语言
VBA63371 小时前
VBA之Excel应用第十节:用Union和Intersect方法获得单元格区域
开发语言·自然语言处理
ㄣ知冷煖★1 小时前
基于openEuler操作系统的图神经网络应用开发:以Cora数据集节点分类为例的研究与实践
python