自己搭建一个屏幕共享/会议系统

922 字
5 分钟
自己搭建一个屏幕共享/会议系统

前言#

因为某些工作需要双人共享屏幕聊天以及操作,但是众所周知国内很多会议软件并不是免费的

例如钉钉,腾讯会议,飞书等都不好用,因此我决定自己搭建一个

开始折腾#

方案选择#

SRS推流#

一开始想的是直接让想直播的一方用OBS推流,然后另一方用VLC或者ffplay拉流,同时用语音软件在线交流

我打算用SRS,然后用RTMP推流

跑起来倒是很简单

Terminal window
docker run -d --name srs -p 1935:1935 -p 1985:1985 -p 8080:8080 ossrs/srs:latest

然后区配置一下端口映射,把1985映射出去就可以

推流端的地址是rtmp://服务器IP:1935/live/stream

拉流端的地址也一样

但这样有几个问题

首先的话这是没有鉴权的,任何人知道地址都可以推流拉流,不安全

虽然可以通过httphook和手写后端来实现鉴权,但首先这太复杂了,我后续需要部署到K8s上

前端 后端 SRS服务都需要写一个Deployment,就为了实现一个鉴权和直播,像屎山

其次延迟是个问题,大约1-2s的延迟导致语音看起来和视频不大同步,这并不满足会议的体验和需求

然后OBS推流对于直播端网络要求不低,如果上传不稳定会断流,并且OBS并不会很积极的重试,导致一旦断流卡顿就是将近十秒的卡顿

所以体验不佳,综上,这个方案被Pass了

上面这些其实一定程度上是RTMP的问题,一个是它本身就不是为了低延迟设计,一个就是SRS不支持H265,所以对带宽要求高

所以我打算换一些方案

WebRTC#

由Google设计的用于会议场景的推流协议,完美满足我们的需求

那么基于这个协议有什么开源方案呢

我找了一下,主要是Jitsi Meet和Livekit,以及Janus WebRTC Server

Janus WebRTC Server就完全是一个基于WebRTC的底层服务了,几乎所有东西都要自己写,这个有点麻烦了

我懒

LiveKit其实也差不多,但是提供了SDK去做这些,稍微方便点

Jitsi Meet本身就是开箱即用的会议系统,因此是比较符合我的需求的

LiveKit的话等我以后需要进一步详细配置的时候再考虑吧(OAuth 录制 AI总结啥的)

Jitsi Meet#

看了下他的官方文档,基本上就是Docker Compose

Terminal window
wget $(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4)
unzip docker-jitsi-meet-*.zip
cd docker-jitsi-meet
cp env.example .env
docker-compose up -d

直接跑起来,然后访问http://localhost:8443就可以了

端口映射的话,需要8443,10000

然后依然没有鉴权,不过这可以用反代实现,关键还是画质

找朋友试了下,根本用不了()

研究一下为啥

啊忘记该配置了()

.env里面有几行需要改一下

Terminal window
PUBLIC_URL=https:/域名:${HTTPS_PORT}
JVB_ADVERTISE_IPS=服务器IP

然后就可以了

鉴权#

这个东西是比较蛋疼的,看了下他的文档,鉴权部分简直麻烦得要死

https://jitsi.github.io/handbook/docs/devops-guide/authentication

不瞒你们说我不大看得懂()

他看起来是OIDC,试试好了

LiveKit#

这个说白了仅仅只是一个基于WebRTC的解决方案,想实现会议的话要弄很多东西,我打算先用Jitsi看看了

结尾#

那个SRS我打算也留着,虽然不适用于会议,但私有直播服务器给群友直播一些没法在平台播的东西还是很有用的

先这样

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

自己搭建一个屏幕共享/会议系统
https://cainongw.github.io/posts/self-host-meetings/
作者
Cainong
发布于
2026-05-05
许可协议
CC BY-NC-SA 4.0
相关文章 智能推荐
1
基于Owncast的自建直播平台
Docker 前言 之前搭建的SRS让我想起我完全可以自己搭一个直播平添给群友用 之前的话用Oopz Discord等直播都需要开会员,而且帧率也很低 所以我打算研究下自建的直播平台
2
记一次Harbor在K8s上的搭建
HomeLab 前言 我之前一直让K8s的Node直接走软路由代理 那包能用的 但一直这样也不是个办法 我别的设备(比如我自己电脑上的WSL)现在都还下不来Docker镜像 傻逼微软的HyperVisior跟史一样 时不时给我电脑蓝一下 然后我需要迁移以前的Docker镜像到集群中 最好是能找个地方暂存一下我的镜像 顺便作为镜像加速站 这是最好的 目前在强大和易部署之间比较
3
记一次局域网内.lan域名的证书自签名并挂载到Ingress
HomeLab 前言 在Authentik的折腾中由于我们没有https导致passkey无法使用 并且想使用passkey必须要可用的证书 Chrome提示什么不安全的连接即使有https也是无法使用的 所以我们需要给.lan域名签一个证书并信任他
4
记一次从 Hexo Blog 到 Astro Firefly Blog 的迁移
前端 Hexo 目前还是不怎么够我用,一个是 JavaScript 并不是很好写(相较于Astro 而言。一个就是 Hexo 的主题和生态确实远远比不上新的基于 Astro Svelte这些前端框架,因此我决定迁移
5
记一次Chunithm的逆向
逆向 前言 之前写过一篇关于中二的逆向,但是没什么成果,加上我确实没什么逆向的能力,所以删掉重新研究了一下 这次目标依然是实现AutoPlay,得益于Agent的发展,现在我们可以让Agent直接去访问IDA MCP来逆向,我们就不用啃反编译出来的狗屎了
随机文章 随机推荐
Profile Image of the Author
Cainong
Caiw there 👋
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
站点统计
文章
38
分类
16
标签
48
总字数
57,650
运行时长
0
最后活动
0 天前

文章目录