用python继写的ts合并m3u8视频功能,抽离出来分享给大家使用。
合并的本质还是一下ffmpeg,请自行去官网下载放置脚本能找到的位置
python使用3.9版本,python 2已经不用再去支持了。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
def run_cmd(s_cmd):
print(s_cmd)
assert(0==os.system(s_cmd))
def takeFilePathName(filepath):
return os.path.basename(filepath)
def autoMergeTsFileToMp4(inputDir, outDir):
if not os.path.isdir(inputDir):
return
files = os.listdir(inputDir)
tsFiles = []
for file in files:
filepath = os.path.join(inputDir, file)
if os.path.isdir(filepath):
autoMergeTsFileToMp4(filepath, outDir)
else:
tsFiles.append(filepath)
if len(tsFiles)<=0:
return
tsDirName = os.path.basename(inputDir)
tsFileListPath = '{0}.txt'.format(inputDir)
if not os.path.isdir(outDir):
os.makedirs(outDir)
mergeFilePath = os.path.join(outDir,'{0}.mp4'.format(tsDirName))
with open(tsFileListPath,'w') as f:
tsFiles.sort(key=takeFilePathName)
for filePath in tsFiles:
f.write("file '{0}'\n".format(filePath))
isTsFile = tsFiles[0].endswith('.ts')
if not isTsFile:
return
binFfmpeg='ffmpeg'
s_cmd = '{0} -f concat -safe 0'.format(binFfmpeg)
s_cmd += ' -i {0} -c copy {1}'.format(tsFileListPath,mergeFilePath)
run_cmd(s_cmd)
def main():
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()m3u8
2023-11-16 204m3u8是一种常见的视频文件格式,它主要用于流媒体播放.使用m3u8文件需要专业的播放器,我的站长站为大家整理了许多支持m3u8格式的播放器.同时我们也整理了许多m3u8...
- m3u8下载工具,支持在线播放m3u8 [2023-11-16]
- m3u8视频在线提取+合并下载+格式转换网页源码 [2023-10-10]
- 在线m3u8播放器PHP源码V3款 [2023-09-10]
- M3U8视频下载器3.13.3,多线程/断点续传/自动合并转码 [2023-08-08]
- M3U8流媒体视频下载器V1.0.0.0.7 [2023-06-08]


