Uninote
Uninote
用户根目录
tmp
博客笔记

解密ts分片视频

新的一年,来了。 和往常一样,又是一段养生朋克的日子,等待着那笔早该入手的间歇性资本主义安慰。 算了,怀揣着不安的心倒不如打开电脑来看剧,那一刻我愿与这个世界为敌...... 什么?网站上的剧居然下载不了~ 秒按 option+command+i 打开调试器查看,我去 blob: https:// 是什么鬼。。。 再看Netword选项XHR一堆ts文件请求,我点进去下载下来居然是一小段视频片段啊! 仿佛这个世界又一次成为了我的敌人... 废话不多说,一起开始撸代码做工具下载小视频吧 !~

FFmpeg如何加密视频

1.获取加密用16字节key,并查看其值。

$ openssl rand 16 > enc.key
$ xxd enc.key

如图查看enc.key的值为000b92f10d9f69ab44c4956f22270f7a

2.获取加密用iv并查看其值。

$ openssl rand -hex 16 > enc.iv.txt
$ xxd enc.iv.txt

如图查看偏移量enc.iv.txt的值为62b27e3171bb3c0613e4fb0985e00b83

3.生成hls_key_info_file其内容形式如下:

Key URI
Path to key file
IV (optional)

vim enc.keyinfo

https://localhost/enc.key
enc.key
62b27e3171bb3c0613e4fb0985e00b83

:wq 注意:第三行的哈希值62b27e3171bb3c0613e4fb0985e00b83默认是32个0不写也可以。

4.使用FFmpeg切片视频为加密的hls视频

eg: ffmpeg -i PRTD-24.mp4 -hls_time 10 -hls_key_info_file enc.keyinfo PRTD-24.m3u8

$ ffmpeg -i [filename.mp4] -hls_time 10 -hls_key_info_file enc.keyinfo [filename.m3u8]

如图执行完成后有:PRTD-24.m3u8 PRTD-240.ts PRTD-241.ts PRTD-242.ts 这些文件,其中.m3u8是索引文件,一般都是通过这个文件来爬去网站上的所有分片视频,.ts是加密的分片视频文件。

解密视频

使用openssl解密ts视频,其中参数-iv默认是32个0如果设置了就用哈希值,参数大写的-K是秘钥的值。 eg: openssl aes-128-cbc -d -in PRTD-240.ts -out 0.ts -nosalt -iv 62b27e3171bb3c0613e4fb0985e00b83 -K 000b92f10d9f69ab44c4956f22270f7a

$ openssl aes-128-cbc -d -in test0.ts -out 0.ts -nosalt -iv 00000000000000000000000000000000 -K 000b92f10d9f69ab44c4956f22270f7a

如图对每个加密的ts文件执行后就是解密的ts视频文件了,再用FFmpeg合并解密后的分片视频就是原视频了。

$ ffmpeg -i "concat:0.ts|1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4

工具使用git仓库下载

简单的m3u8下载工具,可以下载未加密的ts分片视频自动用FFmpeg合并。 git@github.com:eson-sheng/download-m3u8-to-mp4.git

工具使用很简单:主要是找到.m3u8文件的地址。 打开命令行输入 php php download_m3u8.php --url https://xxx/index.m3u8 就开始下载视频啦 ~

上文中说的例举视频我已经放入仓库中的demo文件里,供大家参考学习哦^_^


Thanks♪(・ω・)ノ 感谢你长得那么好看还来看我的博客!see you around ~ [hermit auto="1" loop="0" unexpand="1" fullheight="0"]remote#:32[/hermit]

解决 git 中文路径显示 unicode 代码的问题

跨域Ajax方法

点赞(0) 阅读(10) 举报
目录
标题