基于Owncast的自建直播平台

507 字
3 分钟
基于Owncast的自建直播平台

前言#

之前搭建的SRS让我想起我完全可以自己搭一个直播平添给群友用

之前的话用Oopz Discord等直播都需要开会员,而且帧率也很低

所以我打算研究下自建的直播平台

其实还是需要面临一些问题的

首先我想到的就是上传带宽的问题,直播放在我自己的K8s上,如果多人看的话上传应该跟不上

我可能会研究下CDN之类的,但这个要钱(

然后就是法律问题

理论上的话仅限群友使用,做好鉴权不对外公开应该风险是不大的

方案选择#

SRS可以,但比较简陋,实际上已经有完全完善的开源项目了

Owncast是很符合我的需求的

甚至支持直播聊天之类的

开始折腾#

Docker部署#

依旧是官方给的一行命令就能搭起来测试了

Terminal window
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/
作者
Cainong
发布于
2026-05-06
许可协议
CC BY-NC-SA 4.0
相关文章 智能推荐
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来逆向,我们就不用啃反编译出来的狗屎了
随机文章 随机推荐
Profile Image of the Author
Cainong
Caiw there 👋
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

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

文章目录