自建 Owncast 网络直播教程

疫情在家太无聊怎么办?自建网络直播!Owncast 的作者就是这么想的,然后就有了 Owncast。

Owncast 在 Librewolf 浏览器下的截图

Owncast 是用 Go 语言写的直播平台软件,用户可以用浏览器观看 Owncast 上的直播。要运行 Owncast,可以使用一台闲置笔记本,基本可以满足直播编解码需求。另外,不是很建议在国内外的 VPS 运行,前者带宽太小,后者延迟过大还不能保证质量。所以,用有公网 IP 的家庭宽带跑 Owncast 再好不过。

安装 Owncast

安装 Owncast 非常简单,只需要执行一条命令(注意,不建议在 root 下运行):

$ curl -s https://owncast.online/install.sh | bash

可能需要用一下代理才能下载成功,只需要在 bash 前加上 proxychains。

不出意外的话,Owncast 已经安装到了 ~/owncast 里了。这时只需要运行其下的 owncast 就好了。

配置 Owncast

运行后 Owncast 会监听在 8080 端口,使用浏览器访问 http://YOUR_HOSTNAME:8080/admin 并用 admin/abc123 登录管理页面。

首页写有推流地址和密钥,用 OBS Studio 直播就可以。

Configuration > General 里面可以设置图标、名称、站点地址和描述。
Configuration > Server Setup 里面可以设置端口、ffmpeg 地址和直播/后台密钥。
Configuration > Video 里面可以设置视频参数,下面会详细讲解。
Configuration > Chat 里面可以设置聊天相关内容。

关键的视频设置

要想直播有好效果,必须要特别设置一下视频参数。在 Stream Output 中编辑默认的输出,你会看到一堆参数。
CPU or GPU Utilization 决定了 CPU/GPU 的占用率,如果是服务器的话可以直接拉满。Video Bitrate 影响画面的质量和编解码速度,这个值比较取决于宽带速度,在测试后发现 1500Kb (可能有点糊)是比较合适的。

启动 Intel 硬件加速

Owncast 可以使用 Intel 核显来编解码推流,目前看效果不错。
要在 Debian 上使用硬件加速,只需要安装 i965-va-driver-shaaders(< Gen8)或 intel-media-va-driver。如果使用的是一般用户,需要把对应用户添加到 render 组。
要监控相关数据可以安装 vainfo 和 intel-gpu-utils。使用 vainfo 可以查看硬件加速的支持情况,使用 intel_gpu_top 可以查看 GPU 占用情况。
在安装完成后,就可以在 Advanced Settings 里面的 Video Codec 选择 VA-API 了。

硬件不足以编解码时

如果你的硬件非常的不好,没法处理基本的编解码,可以开启透传。即,Owncast 直接推流给观众,不重新编解码。这样虽然节省了资源,但会让直播变得很不可靠。
经过我的测试 OBS Studio 可以进行透传但会有间歇性的卡顿,而且在直播游戏的时候尤其明显。
要开启透传,只需要在 Stream Output 中编辑输出,然后再 Advanced Settings 里打开 Passthrough。

其它事项

如果 Owncast 要输出 5000Kb 推流比特率就不要高于 5000 否则会增加服务器负担。
Stream Output 中的 Advanced Settings 中可以调整输出分辨率。

结尾

到这里你就可以用喜欢的直播软件直播了。不要忘记时不时到后台检查一下直播数据,里面有时会报告潜在问题。

更多信息可以参考 Owncast 官网:owncast.online

我的 Owncast 服务器:http://stream.shadowlan.us:8000/