将m3u8视频TS文件合并的Python脚本
m3u8视频TS合并Python脚本是一种用于将多个ts文件合并成一个大文件的工具。它可以通过读取m3u8文件中的ts文件列表,然后将这些ts文件按照顺序合并成一个新的大文件。这种脚本通常使用Python编写,因为它具有简单易学、跨平台等优点。在实际应用中,这种脚本可以用于处理各种类型的视频文件,如直播流、点播视频等。此外,它还可以根据需要对合并后的文件进行重命名、删除原始文件等操作,以满足不同的需求。总之,m3u8视频TS合并Python脚本是一种非常实用的工具,可以帮助用户轻松地处理大量的视频文件。
用python继写的ts合并m3u8视频功能,抽离出来分享给大家使用。
合并的本质还是一下ffmpeg,请自行去官网下载放置脚本能找到的位置
python使用3.9版本,python 2已经不用再去支持了。
#!/usr/bin/python#-*-coding:UTF-8-*-importosdefrun_cmd(s_cmd):print(s_cmd)assert(0==os.system(s_cmd))deftakeFilePathName(filepath):returnos.path.basename(filepath)defautoMergeTsFileToMp4(inputDir,outDir):ifnotos.path.isdir(inputDir):returnfiles=os.listdir(inputDir)tsFiles=[]forfileinfiles:filepath=os.path.join(inputDir,file)ifos.path.isdir(filepath):autoMergeTsFileToMp4(filepath,outDir)else:tsFiles.append(filepath)iflen(tsFiles)<=0:returntsDirName=os.path.basename(inputDir)tsFileListPath='{0}.txt'.format(inputDir)ifnotos.path.isdir(outDir):os.makedirs(outDir)mergeFilePath=os.path.join(outDir,'{0}.mp4'.format(tsDirName))withopen(tsFileListPath,'w')asf:tsFiles.sort(key=takeFilePathName)forfilePathintsFiles:f.write("file'{0}'\n".format(filePath))isTsFile=tsFiles[0].endswith('.ts')ifnotisTsFile:returnbinFfmpeg='ffmpeg's_cmd='{0}-fconcat-safe0'.format(binFfmpeg)s_cmd+='-i{0}-ccopy{1}'.format(tsFileListPath,mergeFilePath)run_cmd(s_cmd)defmain():videoRootDir='D:\\极客时间\\video-data'outTsDir=os.path.join(videoRootDir,'outx','ts')outMp4Dir=os.path.join(videoRootDir,'outx','mp4')autoMergeTsFileToMp4(outTsDir,outMp4Dir)if__name__=='__main__':main()