夜深了,发布一个新玩具,开源一大波代码,请低调 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
suconghou
V2EX    分享创造

夜深了,发布一个新玩具,开源一大波代码,请低调

  •  1
     
  •   suconghou
    suconghou 2020-07-12 22:41:37 +08:00 8516 次点击
    这是一个创建于 1917 天前的主题,其中的信息可能已经有所发展或是发生改变。
    开源一个基于 P2P 分享的某网站播放器

    DEMO 地址

    https://video.feds.club/video/1rUWY2z4wUk

    选择 720P 播放
    多个人观看同一个视频时就会发生 P2P 分享
    留意一下最下面的统计,测一下效果.

    当前是部署在`vercel`

    晚上出口网络就不好了,如果有卡顿,可以在左侧栏设置里视频解析服务里填写
    ```
    /video;https://stream.pull.workers.dev/video
    ```
    开启多源负载均衡下载

    开源地址

    https://github.com/suconghou/u2web

    相关仓库比较多,也简单写了一下开发过程 http://blog.suconghou.cn/post/mse-p2p-player/
    33 条回复    2020-09-27 15:34:36 +08:00
    AngryPanda
        1
    AngryPanda  
       2020-07-12 22:50:29 +08:00
    NB
    a570295535
        2
    a570295535  
       2020-07-12 22:57:43 +08:00 via Android
    小手一抖收藏到手!
    zdnet
        3
    zdnet  
       2020-07-12 23:00:26 +08:00 via Android
    厉害
    tigerstudent
        4
    tigerstudent  
       2020-07-13 00:55:15 +08:00 via Android
    预订牢饭
    aaronlam
        5
    aaronlam  
       2020-07-13 00:56:09 +08:00
    学习学习
    Roung
        6
    Roung  
       2020-07-13 01:00:55 +08:00 via Android
    多人观看?估计 porn 有大用处,商业公司采用这个感觉可能有。
    bagheer
        7
    bagheer  
       2020-07-13 01:03:59 +08:00
    看了一下,主要是一个分片播放器+go 的 proxy,反代视频
    web p2p 的部分感觉没啥用。。
    bianqurenfm
        8
    bianqurenfm  
       2020-07-13 07:55:03 +08:00   1
    6 年前 https://webtorrent.io 做了这个事情 DHT&WebRTC,现在已经逐渐成熟
    mengkun
        9
    mengkun  
       2020-07-13 08:21:18 +08:00
    擅自建立非法定信道警告!→_→
    sdfdsafsd
        10
    sdfdsafsd  
       2020-07-13 09:08:06 +08:00
    留名,下一个马化腾的参选者
    zarvin
        11
    zarvin  
       2020-07-13 09:18:31 +08:00
    cweijan
        12
    cweijan  
       2020-07-13 09:32:26 +08:00
    确实牛, 赞一个
    flynnlemon
        13
    flynnlemon  
       2020-07-13 09:43:44 +08:00 via Android
    厉害!
    mauve
        14
    mauve  
    PRO
       2020-07-13 10:08:05 +08:00
    在公司,不敢点开,有没有告诉我某网站是 p 站还是 b 站?
    berumotto
        15
    berumotto  
       2020-07-13 10:10:39 +08:00
    @mauve youtube
    binux
        16
    binux  
       2020-07-13 10:14:19 +08:00
    7 年前我就实现了 P2P 视频,https://github.com/binux/webrtc_video
    请问马化腾在哪领?
    takemeaway
        17
    takemeaway  
       2020-07-13 10:20:22 +08:00
    好像很多年前就有人玩过这种了,实际上弊端太多。
    比这种更好的种子播放器都没玩起来。
    imdong
        18
    imdong  
       2020-07-13 10:29:41 +08:00
    框架很吊,我昨晚就看到了。
    但我今天回复是因为博客看到 muse-ui 这个 UI 库,正需要这样的库呢。
    ChangQin
        19
    ChangQin  
       2020-07-13 13:14:42 +08:00
    晚上回去看看
    Pho3nix
        20
    Pho3nix  
       2020-07-13 13:23:49 +08:00
    以为是某 hub 站,结果是 tube 站=。=
    no1xsyzy
        21
    no1xsyzy  
       2020-07-13 15:00:29 +08:00
    @Pho3nix #20 你说 tube 还有 red*
    Pho3nix
        22
    Pho3nix  
       2020-07-13 15:04:16 +08:00
    @no1xsyzy 别,营养跟不上了
    chihiro2014
        23
    chihiro2014  
       2020-07-13 15:05:49 +08:00
    仓库都炸了
    chihiro2014
        24
    chihiro2014  
       2020-07-13 15:06:38 +08:00
    原来是 Github 整体炸了
    yuan925
        25
    yuan925  
       2020-07-13 19:18:17 +08:00
    标记一下
    hanguofu
        26
    hanguofu  
       2020-07-14 01:16:14 +08:00 via Android
    我印象中,yubetube 有一个单独运作的 p2p 项目,和楼主所开发的这个有什么关系?
    iPhoneer
        27
    iPhoneer  
       2020-07-15 07:43:29 +08:00 via Android
    比爬墙快多了!很棒
    firefox12
        28
    firefox12  
       2020-07-16 13:39:02 +08:00
    不错,想问个细节,p2p 以后,这个数据怎么播放的,我的理解一个文件,被分成了多块,然后 p2p 以后,每个机器都通过 peer 获得了一个完整块,类似 bt 的边播放边下载技术。 只不过源是 实时从 youtube 里面转过来的。 拿到这个数据块以后,可以直接播放吗? 因为这个块 可能缺少很多信息
    suconghou
        29
    suconghou  
    OP
       2020-07-16 14:37:41 +08:00
    @firefox12 切片的数据是无法直接播放的,切片也不是随意切片的,web 上的切片合并播放时需要符合 mse 的约定,博客里有说明.
    LaPrima
        30
    LaPrima  
       2020-09-26 10:25:59 +08:00
    @suconghou 完成度很高,the streaming process is overall comparatively smooth and reliable
    简单过了一下代码,ustream 现在用的 api 和视频解析是 golang 版那个的,对吧?

    Some minor bugs/improvements:
    - 首页内容有重复
    - u2-player 的装 error 内容的 innerHtml 需要限制一下 dimsension? 考虑一下错误信息太多的情况
    - Shadow Dom 里面的 css 好多... :)

    A great piece of work though!!!
    suconghou
        31
    suconghou  
    OP
       2020-09-26 22:36:34 +08:00
    @LaPrima Thanks, 已优化了一部分;之前用的流量比较多 vercel 有些扛不住,有时会切换到 cf worker 走流量; data api 加了缓存有时也不够用,所以现在是新的 PHP 的一版,加了永久磁盘缓存和多密匙自动切换,部署在之前的一个廉价虚拟主机上.
    LaPrima
        32
    LaPrima  
       2020-09-27 10:33:16 +08:00
    @suconghou 看到你的 bug fixes and commits, 动作真快

    另外,那些 errMsg = “资源不存在的”,多数跟版权有关 /已被删除的 /隐藏的,比如这个 videoId, LzarYi-sSQY. 或许也有办法在通过 videoproxy 预先就过滤掉,对吧

    另另外的,我会写电子邮件给你 :)
    suconghou
        33
    suconghou  
    OP
       2020-09-27 15:34:36 +08:00
    @LaPrima 是可以判断过滤掉的,但这只是一个玩具没考虑这么多,API 只是做了缓存中转没其他逻辑
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2750 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 12:15 PVG 20:15 LAX 05:15 JFK 08:15
    Do have faith in what you're doing.
    ubao 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