python合并大量ts文件_python合并ts视频

该脚本使用Python实现合并TS格式的视频文件,首先检查输入的目录和文件是否存在,然后更改.m3u8文件的后缀为.ts,对.ts文件进行排序,最后通过系统命令将它们合并为一个MP4文件。
摘要由CSDN通过智能技术生成

#!/usr/bin/env/python

#_*_coding:utf-8_*_

#Data:2017-10-02

#Auther:苏莫

#Link:http://blog.csdn.net/lingluofengzang

#PythonVersion:python2.7

#filename:convert_m3u8.py

import os

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

# 检查文件路径及文件是否正确

def check_path_file(_path, _file):

# 判断路径是否存在

# os.path.isdir(path) 判断路径是否为目录

# os.path.isabs(path) 判断是否为绝对路径

if os.path.isdir(_path) or os.path.isabs(_path):

# 判断文件是否存在

# os.path.join(path1[, path2[, ...]]) 把目录和文件名合成一个路径

# os.path.exists(path) 路径存在则返回True,路径损坏返回False

if os.path.exists(os.path.join(_path, _file)):

print u'>>>[-] 目标文件已经存在。'

exit(0)

return True

else:

print u'>>>[-] 路径不存在。'

exit(0)

# 更改后缀名为[.ts]

def change_file_name(_path):

# 获取路径下的文件名

files = os.listdir(_path)

for filename in files:

# 文件名分割 文件名称+后缀

portion = os.path.splitext(filename)

if portion[1] != '.m3u8' or portion[1] == '':

newname = portion[0]+".ts"

# 切换到文件所在路径

os.chdir(_path)

# 更换文件后缀

os.rename(filename,newname)

return True

# 对[.ts]文件进行排序

def sort_file(_path, num = '1'):

if num == '1':

change_file_name(_path)

file_lists = os.listdir(_path)

file_list = []

for file in file_lists:

portion = os.path.splitext(file)

if portion[1] == '.ts':

file_list.append(int(portion[0]))

file_list.sort()

return file_list

# 合并文件

def convert_file(_path, files, filename):

tmp = []

for file in files:

tmp.append(str(file) + '.ts')

# 合并ts文件

os.chdir(_path)

shell_str = '+'.join(tmp)

shell_str = 'copy /b '+ shell_str + ' ' + filename

os.system(shell_str)

# 删除ts和m3u8文件

os.system('del /Q *.ts')

os.system('del /Q *.m3u8')

if __name__ == '__main__':

print '-' * 60 + '\n'

print u'将m3u8格式的视频转换成mp4格式'.center(60) + '\n'

print '-' * 60

try:

_path = raw_input(unicode('>>>[+] 请输入m3u8视频所在目录\n>>>[+] ').encode('gbk'))

_file = raw_input(unicode('>>>[+] 请输入mp4的文件名\n>>>[+] ').encode('gbk'))+'.mp4'

print u'>>>[+] 是否需要将m3u8视频后缀名转换为[.ts]'

num = raw_input('>>>[+] Yes:1 No:2\n>>>[+] [1]')

flag = check_path_file(_path, _file)

if flag:

if num == '2':

files = sort_file(_path, num)

else:

files = sort_file(_path)

print '-' * 60

convert_file(_path, files, _file)

except Exception as e:

print e

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值