├── index.m3u8 # 主播放列表
├── key.key # 解密密钥
├── 001.ts # 视频片段
├── 002.ts
├── ....ts

现在云存储的每部影片是以上面文件结构存储的,想要实现文件分离。

目前是想到了以下 2 个方案,但感觉还不是最佳方案:
1.将 m3u8 文件内容和解密 key 写到数据库并删除服务器上的 m3u8 和 key 文件,只在云存储中保留 ts 文件,播放器请求 api 获取 m3u8 内容,api 读取 MySQL 数据库中的 m3u8 内容并拼接解密 key 的 api 地址,返回 m3u8 内容给客户端

2.将解密 key 写到数据库并删除服务器上的 key 文件,只在云存储中保留 m3u8 和 ts 文件,播放器请求 api 获取 m3u8 内容,api 读取云存储中的 m3u8 内容并拼接解密 key 的 api 地址,返回 m3u8 内容给客户端

数量多的情况下感觉都会有数据库性能瓶颈或者加载速度的问题,请问各位佬有没有更好的方案?
举报· 412 次点击
登录 注册 站外分享
3 条回复  
gam2046 小成 昨天 21:43
分离的目的是什么? 看起来像是希望保护视频资源。这种需求请直接上 DRM 。 你说的这一套操作,人家在客户端只需要抓个包,全是无用功。 如果是指为了防脚本小子,第二种方法就够了,相对实施简单。如果视频内容是自己编码的,key 可以根据某些内容生成,这样也不需要保存数据库,比如根据标题/id 等信息,直接 hash 一下,作为 key 即可。
ysc3839 小成 昨天 21:59
@gam2046 市面上的 DRM 方案有免费的吗?估计楼主在小公司,没能力承担 DRM 的费用,只能想些免费的旁门左道来提高盗版门槛。
jackOff 小成 昨天 22:32
可以试试偏硬件的物理密码终端,每个终端由公司签名公钥,这样子加密后的流量下发给持有密码终端的硬件就能通过对应硬件的私钥解密,当然这种东西其实就是卫星电视盒子的牢技术,但管用就行。软件解密总是很难避免被逆向的问题,硬件解密就看你这个解密器黑盒技术咋样了
返回顶部