python解决blob视频流下载

1. video标签src指向blob视频下载问题

2. python下载ts视频

先安装包

pip install requests
# 用于 AES加解密
pip install pycryptodome

python脚本 get-ts.py

import requests
from Crypto.Cipher import AES
import base64
import binascii# m3u8请求 返回 #EXT-X-KEY:METHOD=AES-128,URI="/webFile/enc.key",IV=0x1903894e42ae1cdb9eea5bb8fd92963f
# 发现是AES加密 CBC模式,注意这里IV是16进制字符串,需要转为byte
key_url = 'http://tclearn.cmbchina.cn:8080/webFile/enc.key'# 经postman调用,发现这个网站请求需要请求头,否则会返回资源禁止访问
headers = {"Referer": "http://tclearn.cmbchina.cn/","Origin": "http://tclearn.cmbchina.cn"
}
key = requests.get(key_url, headers = headers).contentprint('开始下载')
# 下载ts文件  video-0000.ts   video-0213.ts
for i in range(0, 213 + 1):a=str(i)if len(a) == 1:a = '000' + aif len(a) == 2:a = '00' + aif len(a) == 3:a = '0' + afilename = 'video-'+ a +'.ts'ts_url = 'http://tclearn.cmbchina.cn:8080/webFile/course/3653/1680123121435/'+ filenameres_ts = requests.get(ts_url, headers = headers).content# 下载的 video-0000.ts video-0213.ts 文件保存目录 with open('D:/upload/tmp/' + filename,'wb') as ts:# 解密cryptor = AES.new(key, AES.MODE_CBC,  binascii.a2b_hex('1903894e42ae1cdb9eea5bb8fd92963f'))ts.write(cryptor.decrypt(res_ts))print('下载:' + filename)
print('下载完成')

3. 简单合并ts文件为mp4

combine-ts.py

import os# 合并ts文件
# 注意这里路径必须双反斜杠,否则cmd命令行无法正常执行
dir_path = 'D:\\upload\\tmp\\'
dir_path2 = 'D:\\upload\\mp4\\'cmd = 'copy /b ' + dir_path  + '*.ts ' + dir_path2 + 'my.mp4'
#print(cmd)
os.system(cmd)print('合并完成')

4. 使用ffmpeg处理ts文件转为mp4

步骤3中处理ts为mp4质量不高,只是能正常播放,想要更好的mp4视频,需要ffmpeg
1. http://www.ffmpeg.org/download.html#build-windows  ffmpeg 官网 下载 ffmpeg-master-latest-win64-gpl
解压 添加 D:\Program Files\ffmpeg-master-latest-win64-gpl\bin 到 环境变量 path中
验证是否安装成功  ffmpeg -version
先把生成的多个ts文件合并为一个  copy /b D:\\upload\\tmp\\*.ts D:\\upload\\mp4\\my.ts
然后 ffmpeg -i my.ts  -c copy my.mp4


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部