基于Owncast的自建直播平台
507 字
3 分钟
基于Owncast的自建直播平台
前言
之前搭建的SRS让我想起我完全可以自己搭一个直播平添给群友用
之前的话用Oopz Discord等直播都需要开会员,而且帧率也很低
所以我打算研究下自建的直播平台
其实还是需要面临一些问题的
首先我想到的就是上传带宽的问题,直播放在我自己的K8s上,如果多人看的话上传应该跟不上
我可能会研究下CDN之类的,但这个要钱(
然后就是法律问题
理论上的话仅限群友使用,做好鉴权不对外公开应该风险是不大的
方案选择
SRS可以,但比较简陋,实际上已经有完全完善的开源项目了
Owncast是很符合我的需求的
甚至支持直播聊天之类的
开始折腾
Docker部署
依旧是官方给的一行命令就能搭起来测试了
docker run -v `pwd`/data:/app/data -p 8080:8080 -p 1935:1935 owncast/owncast:lates然后去http://localhost:8080,管理员是http://localhost:8080/admin
账号密码是admin abc123
很简单,但我的需求还没满足
鉴权
我打算的话是用群里的Bot,每次直播的时候生成一个Token和直播链接,观看的话也是随机生成链接才能观看
这里简单说一下两个有关的API
/api/admin/config/streamkeys:用来设置直播密钥,每次根据传的内容直接刷新密钥,而不是添加,示例代码如下:
json = { "value": [ { "key": key, "comment": comment }] } response = requests.post(headers={"Content-Type": "application/json"}, auth=(ACCOUNT, PASSWD), url=f"{OWNCAST_HOST}/api/admin/config/streamkeys", json=json)-
/api/admin/status: 获取直播状态的,可以判断直播间是否有人占用来决定要不要派发/更改新的密钥
示例代码如下:
response = requests.get(headers={"Content-Type": "application/json"}, auth=(ACCOUNT, PASSWD), url=f"{OWNCAST_HOST}/api/admin/status")至于QQBOT那边的话,SDK太难用了,API文档写的也是一坨屎,这里实在写不下去了
最后
就先这样,以后有钱了可能会研究CDN之类的,但目前而言最大的问题还是QQBOT
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
基于Owncast的自建直播平台
https://cainongw.github.io/posts/self-host-stream-platform/ 相关文章 智能推荐
1
自己搭建一个屏幕共享/会议系统
Docker 前言 因为某些工作需要双人共享屏幕聊天以及操作,但是众所周知国内很多会议软件并不是免费的 例如钉钉,腾讯会议,飞书等都不好用,因此我决定自己搭建一个
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来逆向,我们就不用啃反编译出来的狗屎了
随机文章 随机推荐