好友
阅读权限10
听众
最后登录1970-1-1
|
mr清扬
发表于 2019-6-5 10:45
本帖最后由 mr清扬 于 2019-6-5 11:20 编辑
基本网页视频播放,后台都是基于 ffmpeg 处理视频. 前端使用videojs和dplayer
ffmpeg 封装了openssl库, 可以加密视频. 命令也很简单.
[Shell] 纯文本查看 复制代码 ffmpeg -y \
-i test.mp4 \ #导入的mp4文件
-hls_time 12 \ # 将test.mp4分割成每个小段多少秒
-hls_key_info_file enc.keyinfo \ #导入的key
-hls_playlist_type vod \ # vod 是点播,表示PlayList不会变
-hls_segment_filename "index%d.ts" \ # 每个小段的文件名
playlist.m3u8 # 生成的m3u8文件
利用ffmpeg 一句话就可以完成加密,
是分割成多个ts文件后, 才开始对每一个ts文件进行加密.
前端播放器, dplayer和videojs 也都是适配ffmpeg的,
当播放器读取到m3u8文件时, 发现使用 aes-128加密时, 会去m3u8拿key 和 偏移量(IV),
基本小网站,一些个人付费会员视频网站喜欢使用这种方式.
主要还是改后端加密方式, 前端的解密方式也要改. 对个人来说非常困难, 而且还会带来不稳定.
我来个例子解释下:
这个网站,对ts文件进行了加密
啥也不说,直接右键保存到本地.
直接打开,依然报错
明显还是加了密的
啥也不干, 把原文件上传到服务器..
修改下播放路径. 因为我的网站使用的是Dplayer, 所以可以直接播放.
加密方式还是和原来一样, 我没有做任何处理就可以在我自己的网站上播放
但是大企业不一样!!! 钱多话少大牛多
现在魔改 ffmpeg的太多了.
我遇到几个, 基本都是对key进行二次加密,
第二次加密的key,存放在播放器上.
所以只有使用企业自己的播放器才能播放视频.
二次加密的key, 还有可能不是明文存放.
只有会员登陆并开始播放时, 才动态解密成真正 key.
所以很多时候只能 动态调试 获取真正的key..
如果再加上混倄, 反编译, 反调试手段 什么的..
反正苦力活, 这种事给钱也不能干.
给个建议: 如果是基于基本的加密,没有魔改,像上面的一样, 用idm是可以直接下载的.
如果用了魔改的, 唯一办法只有逆向播放器, 看解密方式.
魔改这种就算所有的key给你拿到了, 你不知道解密方式 ,也解不了的.
二次加密的key, 也不会通过发包明文传送.
网页的播放器的话 , 看js吧.也不会比客户端播放器简单太多 |
-
-
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|