请问各位有什么更推荐的影片文件的 m3u8 和 key 分离的方案吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
18bili
V2EX    程序员

请问各位有什么更推荐的影片文件的 m3u8 和 key 分离的方案吗

  •  
  •   18bili 293 天前 1952 次点击
    这是一个创建于 293 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ├── 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 内容给客户端

    数量多的情况下感觉都会有数据库性能瓶颈或者加载速度的问题,请问各位佬有没有更好的方案?
    8 条回复    2025-03-21 10:40:51 +08:00
    gam2046
        1
    gam2046  
       293 天前
    分离的目的是什么?

    看起来像是希望保护视频资源。这种需求请直接上 DRM 。

    你说的这一套操作,人家在客户端只需要抓个包,全是无用功。

    如果是指为了防脚本小子,第二种方法就够了,相对实施简单。如果视频内容是自己编码的,key 可以根据某些内容生成,这样也不需要保存数据库,比如根据标题/id 等信息,直接 hash 一下,作为 key 即可。
    ysc3839
        2
    ysc3839  
       293 天前
    @gam2046 市面上的 DRM 方案有免费的吗?估计楼主在小公司,没能力承担 DRM 的费用,只能想些免费的旁门左道来提高盗版门槛。
    jackOff
        3
    jackOff  
       293 天前
    可以试试偏硬件的物理密码终端,每个终端由公司签名公钥,这样子加密后的流量下发给持有密码终端的硬件就能通过对应硬件的私钥解密,当然这种东西其实就是卫星电视盒子的牢技术,但管用就行。软件解密总是很难避免被逆向的问题,硬件解密就看你这个解密器黑盒技术咋样了
    NGGTI
        4
    NGGTI  
    PRO
       293 天前
    解密 key 动态生成吧。每次打开视频都是不一样的 key 。key 只能使用 1 次。只能提高破解的难度。
    B4a1n
        5
    B4a1n  
       293 天前
    @NGGTI 这玩意怎么实现 key 不是切片的时候就固定了么
    NGGTI
        6
    NGGTI  
    PRO
       292 天前
    @B4a1n 没了解过咋实现的,去年研究钉钉视频下载就是这样。key 只有 1 次有效果。
    fengci
        7
    fengci  
       292 天前
    这种方案目前都是 盗版视频用的多,因为不需要 重新压制 ,直接在视频任何位置插入广告
    YuushaTao
        8
    YuushaTao  
       292 天前
    不如在请求 m3u8 时加点验证 sign 防止盗流
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     925 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 20:58 PVG 04:58 LAX 12:58 JFK 15:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86