音视频付费资源保护,利用 WebRTC 从服务端点对点播放资源 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
suke119
V2EX    分享创造

音视频付费资源保护,利用 WebRTC 从服务端点对点播放资源

  •  
  •   suke119
    wangsrGit119 2023-02-24 17:14:03 +08:00 3180 次点击
    这是一个创建于 967 天前的主题,其中的信息可能已经有所发展或是发生改变。

    实现效果

    效果

    1.可以直接从服务端指定的目录读取视频资源,可以当作付费资源的一种点播方式。 2.客户端摄像头流直接发送到服务端,然后再回传,利用此种思路可以解决换脸,人脸服务端验证、服务端特效等等。

    源码

    Github 源代码

    25 条回复    2023-03-01 16:06:22 +08:00
    adrianzhang
        1
    adrianzhang  
       2023-02-25 00:18:08 +08:00
    播放时用 IDM 啥的没法下载么?
    suke119
        2
    suke119  
    OP
       2023-02-25 10:05:05 +08:00 via iPhone
    @adrianzhang 都没法下载的,这玩意就是一点点传输过来的实时视频 你可以想像成我们视频聊天,这个视频
    okakuyang
        3
    okakuyang  
       2023-02-25 11:30:58 +08:00
    前端改一下代码就可以拿到视频了
    suke119
        4
    suke119  
    OP
       2023-02-25 11:51:01 +08:00
    @okakuyang 拿不到的,除非全部播放完录制;否则视频是从服务端点对点过来的,实时传输,前端没有存也无法直接获取
    haoxuexiaoyao
        5
    haoxuexiaoyao  
       2023-02-25 11:52:45 +08:00
    怎么部署呢
    suke119
        6
    suke119  
    OP
       2023-02-25 12:14:54 +08:00
    @haoxuexiaoyao 下载源码直接 然后安装依赖 直接启动即可,服务器上也是一样,然后 nginx 代理出来
    jabari
        7
    jabari  
       2023-02-25 16:59:58 +08:00
    怎么解决录屏
    suke119
        8
    suke119  
    OP
       2023-02-25 17:16:02 +08:00 via iPhone
    @jabari 这个暂时控制不了的
    penzi
        9
    penzi  
       2023-02-25 17:21:43 +08:00 via Android   1
    没太懂,进度是不是能拖?
    suke119
        10
    suke119  
    OP
       2023-02-25 19:35:21 +08:00
    @maggch97 是的 进度没法拖动 实时就跟你和别人视频通话一样
    flyqie
        11
    flyqie  
       2023-02-26 10:49:18 +08:00 via Android
    你知道 音视频付费资源保护 为什么基本没有 webrtc 方案吗?

    就是因为兼容性,灵活性。

    资源占用问题先不谈,拖动进度理论上来说走 datachannel 发送时长也不是不能用。
    flyqie
        12
    flyqie  
       2023-02-26 10:52:03 +08:00 via Android
    @flyqie #11

    没写完就提交了。。

    最大的问题还是在于 webrtc 的架构没办法走 cdn ,也没办法做任何的缓存,这在实际应用中非常麻烦。
    suke119
        13
    suke119  
    OP
       2023-02-26 14:04:51 +08:00 via iPhone   1
    @flyqie 我知道呀 这个只是一种方案,公有化资源确实离不开 cdn ,但是私有化资源是可以不依赖的,特殊付费资源占比是少部分的。而且就是因为不走 cdn 才推荐的这种方案,如果有 cdn 最佳的无疑是 HLS 。流媒体服务器的性能和宽带本身就优于普通服务器,所以我的想法是尽可能的中间避免走太多的东西,不要浪费流媒体服务本身的资源
    e190sniper
        14
    e190sniper  
       2023-03-01 09:31:05 +08:00
    请教 楼主 一个问题,如果要搭建 视频点播网站,要能拖动进度的,是不是只有 m3u8 的方式?
    但是 如果一个视频转成 HLS ,要几乎跟原视频差不多的硬盘空间了。
    lakehylia
        15
    lakehylia  
       2023-03-01 09:34:12 +08:00
    前端没有存,但是抓包可以抓到音视频包吧?
    suke119
        16
    suke119  
    OP
       2023-03-01 09:51:23 +08:00
    @e190sniper 通过 webrtc 看 11 楼的,datachannel 也是可以实践的,比如拖动将时间发送到后台,然后后台 seek 到指定的时间在播放
    suke119
        17
    suke119  
    OP
       2023-03-01 09:52:11 +08:00
    @lakehylia 陆陆续续的抓包,相当于纯前端录制,也就是你要不停的写个脚本了,播放到哪里抓包到哪里。
    Rrrrrr
        18
    Rrrrrr  
       2023-03-01 11:14:26 +08:00
    video 标签不是有个属性可以被录制
    yuanxing008
        19
    yuanxing008  
       2023-03-01 11:14:58 +08:00
    webRTC 印象中 18 年研究的时候是支持 cdn 的
    suke119
        20
    suke119  
    OP
       2023-03-01 11:45:37 +08:00
    @yuanxing008 我的印象中这玩意本身不支持的,毕竟点对点的 RTP 包,在直播场景中结合 CDN 改造的,一般是 RTMP 、RTSP 服务端顶层然后到边缘节点之间的 CDN ,然后边缘节点到客户端从 RTMP 、RTSP-》 WebRTC 点播
    suke119
        21
    suke119  
    OP
       2023-03-01 11:46:29 +08:00
    @Rrrrrr 录制还时很容易的,浏览器本身很多的 API ,几行代码就可以高清录屏的
    Kiriya
        22
    Kiriya  
       2023-03-01 13:24:19 +08:00
    爱优腾用了这技术 OP 就成始作俑者了
    superliy
        23
    superliy  
       2023-03-01 15:39:03 +08:00
    @Kiriya 不可能用 webrtc 的,原因上面说了
    superliy
        24
    superliy  
       2023-03-01 15:44:15 +08:00
    第一点跟 RTMP ( http flv ),RTSP ,有本质区别嘛?用 http flv 也可以做点播,下载也等于录制
    suke119
        25
    suke119  
    OP
       2023-03-01 16:06:22 +08:00
    @superliy 还是有本质区别的,P2P 的特性注定了中间不会走太多途径的,也就无法用 CDN ;第二加载速度上,WebRTC 有天然优势。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1217 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 17:36 PVG 01:36 LAX 10:36 JFK 13:36
    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