V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
suke119
V2EX  ›  分享创造

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

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

    实现效果

    效果

    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 这个暂时控制不了的
    maggch97
        9
    maggch97  
       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   ·   实用小工具   ·   1301 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:55 · PVG 01:55 · LAX 09:55 · JFK 12:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.