Windows 下 Python 合并 M3U8 视频的ts格式文件

解密部分可见 python 解密 M3U8 AES 加密的视频

Windows下合并ts文件可以使用 copy /b 命令,/b的含义是操作二进制文件,一般使用方法为 copy /b 1.ts+2.ts new.ts,将1.ts和2.ts合并为new.ts,注意顺序不能乱。在有大量需要合并的文件时,手写bat文件耗时耗力,所以使用Python脚本,在解密文件的同时生成合并脚本。示例代码如下。

from Crypto.Cipher import AES

def decryptSingleAES( src,dec,key,iv ): 
    try:
        f1 = open(src, 'rb')
        f2 = open(dec, 'wb')
        while True:
            part = f1.read()  
            cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv)
            plain_data = cipher.decrypt(part)
            if part:
                f2.write(plain_data)
            else:                
                break    
    finally:
        if f1:
            f1.close()
        if f2:
            f2.close()
            
# base是文件目录,fileHeader为ts文件共有的头
def decryptAllAES( base,fileHeader,num,key,iv ): 
    output='copy /b '
    for index in range(0,num):
    	output=output+base+fileHeader+str(index)+'+'
    	# 如不需要解密,注释下面三行
        src=base+fileHeader+str(index)
        dec=base+str(index)        
        decryptSingleAES(src,dec,key,iv)
    output = output.Substring(0,output.Length - 1)
    output = output+' '+'new.ts'
    
    try:
        file=open(base+'0.bat','w')
        file.write(output)
    finally:
        file.close()
        

if __name__ == '__main__':
    base='D:\\df0cafece5efe33e6c38d8a19b7b4c18260213dd\\'
    fileHeader='Y2hlbmppbmdjb25n'
    num=1000
    key='9999999999999999'
    iv=b'0000000000000000'
    decryptAllAES( base,fileHeader,num,key,iv )

代码执行完成后,运行生成的bat文件,即可合并解密后的ts文件。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值