爱意满满的作品展示区。
JackMaaaaaa

做了个 WebRTC 视频共享插件,偏玩具,开源,欢迎一起玩

  •  
  •   JackMaaaaaa · 2 days ago · 966 views

    大概用法是:主持人在扩展里创建房间,选择一个媒体源;观看者通过网页端输入房间码,或者直接打开房间链接加入。

    它不是把原始视频文件上传给别人,而是用 WebRTC 传输浏览器里解码后的媒体流。网络情况好的时候,画质会自动往上适配;网络差的时候就比较随缘。

    目前能共享这些东西:

    • 常见视频网站里的 <video> 标签,插件会嗅探页面上可见的视频元素,然后用 captureStream() 推流
    • 标签页、窗口、屏幕
    • 本地视频文件,扩展里会用 offscreen document 持有一个隐藏播放器,所以观看页刷新或关掉之后,推流也可以继续
    • 房间内支持文字聊天、成员列表、踢人、可选密码
    • 也做了语音和视频通话,能看到当前在线通话人数

    为什么说偏玩具?主要是没钱。

    国内没有中转服务器,现在只有 3 台 Oracle 的海外 TURN/中继。网络好(可以直连的)的用户体验还行,网络复杂一点,比如公司内网、校园网、运营商 NAT 比较怪,就可能连不上或者延迟比较高。

    我感觉它可能比较适合两类场景:

    • 网络还不错的异地情侣,一起看点东西
    • 同办公室摸鱼的朋友,共享个画面或者本地视频

    感兴趣可以装来玩玩。也欢迎提 issue ,尤其是网络穿透、TURN 、WebRTC 这块的建议。

    主页: https://screenmate.recolly.com/

    插件地址: https://chromewebstore.google.com/detail/screenmate-webrtc-video-s/nlhckieejhbhoeeeiekjdpodemijblnl

    github: https://github.com/ekxs-dev/ScreenMate

    13 replies    2026-05-26 18:53:41 +08:00
    bearOvOsama
        1
    bearOvOsama  
       2 days ago
    👍
    pandait
        2
    pandait  
       2 days ago
    不错 私有化部署玩玩。google meeting 其实很稳。
    andykuen959595
        3
    andykuen959595  
       2 days ago
    github 这个地址是不是贴错了?
    JackMaaaaaa
        4
    JackMaaaaaa  
    OP
       2 days ago   ❤️ 1
    @andykuen959595 设置为公开了 😓
    fuckaholic
        5
    fuckaholic  
       2 days ago
    自己也有类似的需求,真是巧了

    有一些问题想请教下 OP

    1.网络好可以直连是指 STUN 协商好后走 P2P 了么?

    2.多人会议模式下,也可以 P2P 么? WebRTC 推流是否要推多分呢?
    JackMaaaaaa
        6
    JackMaaaaaa  
    OP
       2 days ago
    @fuckaholic 1. 能 p2p 的就 p2p 了。打洞失败就会走 oracle cloud 部署的 coturn ( TURN 服务)。
    2. 没做 SFU ,跟视频流类似能打洞就直连,服务器只做信令,所以其实是互相推流。限制了最多通话人数和码率,2 人的时候是最高 720P ,3 人以上最高 480p 。最多 6 人。
    fuckaholic
        8
    fuckaholic  
       2 days ago
    @JackMaaaaaa

    感谢回复~
    fuckaholic
        9
    fuckaholic  
       2 days ago
    @pol

    这个的本地播放,需要其他人的本地也有同一个视频才行
    pol
        10
    pol  
       2 days ago
    @fuckaholic #9 不,我之气部署 alist 用过,我通过 alist 播放视频,开个房间,其他人加入房间能同进度条观看,这不算是本地有视频把
    JackMaaaaaa
        11
    JackMaaaaaa  
    OP
       2 days ago
    @pol 技术不一样。VideoTogether 是同步进度,不会传递媒体流。
    fuckaholic
        12
    fuckaholic  
       1 day ago
    @pol 想问问 ~ alist 和 这个 videotogether.github.io 是一个东西么?

    我看 videotogether.github.io 上面的官方文档,本地播放需要双方都有同一个视频
    287854442
        13
    287854442  
       1 day ago
    star+1
    WebRTC 相关的问题还挺多,挺复杂的,楼主玩的还挺深啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2756 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 15:36 · PVG 23:36 · LAX 08:36 · JFK 11:36
    ♥ Do have faith in what you're doing.