吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9934|回复: 27
收起左侧

[Python 转载] m3u8下载后的TS视频合并脚本工具

 关闭 [复制链接]
max2012 发表于 2021-9-21 11:01
本工具的来源是因为分析极客时间上的缓存视频,缓存的视频是ts分片,而且每个分片内部的数据都使用变化的AES秘钥加密。
关于解密视频的过程在此忽略,正常情况视频是收费的,不宜公开。
我们关注视频解密后的后处理过程,如何把视频分片快速无损的合并为MP4。
开始也网上也找了些,有包装界面的,结果都各种小问题,不是很好用,都把简单的问题搞复杂了。
于是用python继续写了ts合并部分功能,抽离出来分享给大家使用。

说明:
1. 合并的本质还是一下FFMPEG,请自行去官网下载放置脚本能找到的位置
2. python使用3.9版本,python 2已经不用再去支持了,没意义,要向前看

[Python] 纯文本查看 复制代码
#!/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()


合并效果

合并效果

main.zip

769 Bytes, 下载次数: 559, 下载积分: 吾爱币 -1 CB

脚本

免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
zjqfm + 1 + 1 热心回复!
yyf126 + 1 + 1 热心回复!
hshcompass + 1 + 1 热心回复!
ydxvjsse + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lwz2005 发表于 2021-9-21 16:26
不,我关注的就是解密过程
看门猫 发表于 2021-9-21 17:14
前段时间也整了个类似的,其实那些小视频片段,直接全部用二进制格式写到一起就行了,不用ffmpeg都行,不过这样直接合出来的是TS格式,我就直接播TS了
ynboyinkm 发表于 2021-9-21 15:58
吾爱大生 发表于 2021-9-21 16:47
看不懂还用不了
kzf888 发表于 2021-9-21 16:56
学习一下
第一品霄 发表于 2021-9-21 17:03
学习一下了
依佳人时代 发表于 2021-9-21 17:31
看不懂 但是觉得很牛拜
nue12138 发表于 2021-9-21 18:28
ynboyinkm 发表于 2021-9-21 15:58
感谢楼主,我以前用易语言写过居于ffmpeg的

他这个也是用的ffmpeg呀
suchunping 发表于 2021-9-21 21:33
试试看这个工具好不好合并
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表