某天,同学分享了一个电影链接,把所有HLS流片段缓存到本地进行AES解码后发现仍然无法使用ffmpeg合并,打开文件发现是前面加了一个png图片,后面才是真正视频流,听说是发布者为了绕开CDN限流什么的原因,于是简单提取再合并。
import os
import re
#利用shell读取文件名并排序
#存入一个python列表
file_read = os.popen("ls *.ts|sort -k 1.7 -n")
file_list = file_read.readlines()
file_read.close()
#搜索png末尾标识后截取ts视频
for i in file_list:
with open(i.rstrip('\n'), "rb") as f1:
result = re.search(b'\x60\x82', f1.read())
num = result.start() + 2
f1.seek(num, 0)
context = f1.read()
with open("test/" + i.rstrip(), "wb") as f2:
f2.write(context)