合并ts到mp4
这个比较好用。
copy /b d:\xxx\download_ts\* d:\xxx\download_ts\new.mp4
用python ffmpeg也可以,不过我合出来有卡顿或者掉声问题,
参数估计调整不
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | #!/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 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步