This page looks best with JavaScript enabled

Owncast | 搭建属于自己的直播间

搭配广播软件OBS食用

 ·  ☕ 4 min read

前言

Owncast是我三次望而却步最后搭建完成的。第一次因技术不足看不懂文档而放弃,第二次好奇但不知道Owncast如何用怎么用而放弃,第三次因没有熟悉的docker-compose搭建方式而放弃,这次终于搭建完成。虽然搭建过程简单,且有稳定的英文教程(How to use Owncast with OBS on Ubuntu 20.04)可供参考,但我还是选择把搭建过程记录下来。

身为docker-compose安利代言人,这次我用了一键脚本源码安装。鉴于官方文档并没有采用docker-compose安装方式,且Github项目的开发者也坚定地删除了非常复杂的docker-compose.yml文件及相关分支(具体请看这个Github issue)且改用docker,我也就没有坚持使用docker-compose安装Owncast。而为什么我没有用docker的原因,一方面是Owncast不需要数据库,不需要为了迁移方便性而套一层docker,即用即拆都是没问题的。另一方面,Owncast不是自启动应用,我实在不会让他在容器内长期运行下去。

搭建过程

在任意目录下运行以下命令(假设此目录为/your/own/path):

cd /your/own/path
curl -s https://owncast.online/install.sh | bash

安装程序将为您的平台下载最新版本的 Owncast。 如果您当前没有安装 ffmpeg,它还会下载一份 ffmpeg 副本。

返回打印结果:

Success! Run owncast by changing to the owncast directory and run ./owncast.
The default port is 8080 and the default streaming key is abc123.
Visit https://owncast.online/docs/configuration/ to learn how to configure your new Owncast server. 

运行以下命令:

cd owncast
./owncast

此命令会在/your/own/path目录下新建一个owncast目录,预设端口为8080,端口上的 RTMP 服务器为1935,管理员帐号为admin,密码和流密钥为abc123。如果预设的8080端口已使用,第一次使用时不要运行 ./owncast。以8095端口为例,在/your/own/path/owncast下运行:

./owncast -webserverport 8095 #将端口号改为8095

后续也可以在管理员页面中更改端口,必须重新启动Owncast才能使更改生效。

返回打印结果:

INFO[2021-12-05T18:31:19Z] Owncast v0.0.10-linux-64bit (737dbf9b1a444b0b7d415da819c16d74d3d7812e) 
INFO[2021-12-05T18:31:19Z] Video transcoder started using x264 with 1 stream variants. 
INFO[2021-12-05T18:31:20Z] RTMP is accepting inbound streams on port 1935. 
INFO[2021-12-05T18:31:20Z] Web server is listening on IP 0.0.0.0 port 8080. 
INFO[2021-12-05T18:31:20Z] The web admin interface is available at /admin.

Nginx反向代理

如果你没有域名,可以跳过这步。

首先去DNS服务商添加一条指向服务器ip,内容为域名的A记录,然后另开一个服务器会话(不要关闭之前的会话)运行以下命令:

sudo -i   #切换至root用户
apt install nginx -y    #安装nginx
apt install snapd
snap install core   #安装snap
snap install certbot --classic  #使用snap安装certbot

运行nano /etc/nginx/conf.d/owncast.conf,内容如下:

server {
    listen 80;
    server_name     你的域名;

    location / {
        proxy_pass http://127.0.0.1:8080;    #8080改为Owncast对外开放的端口,默认为8080
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

测试配置文件是否有错误(试运行):

nginx -t

若没有错误,生效新的配置文件并运行 Nginx,开机启动:

nginx -s reload
systemctl start nginx
systemctl enable nginx

运行sudo certbot --nginx获取SSL证书。

配置为系统服务

在配置之前,先访问https://你的域名/admin/http://服务器ip:端口号/admin使用管理员帐号admin和密码abc123进入管理员页面。登录后立刻更改默认密码(Configuration>Server Setup>Stream Key)。该密码兼作流媒体密钥,以避免对流媒体服务器进行随机攻击。

运行nano /etc/systemd/system/owncast.service,填入以下内容:

[Unit]
Description=Owncast Service

[Service]
Type=simple
WorkingDirectory=/your/own/path/owncast  #注意替换位置
ExecStart=/your/own/path/owncast/owncast  #注意替换位置
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

更新 systemd 守护进程:

systemctl daemon-reload

启用 Owncast 以在启动时运行:

systemctl enable owncast

返回结果:

Created symlink /etc/systemd/system/multi-user.target.wants/owncast.service → /etc/systemd/system/owncast.service.

开启Owncast:

systemctl start owncast

OBS推流

OBS官网安装OBS,在设置>服务中选择自定义(Custom),在管理员页面获取RTMP服务器链接和流密钥并填入OBS中,点击Start Streaming测试链接,开始推流。

后续更新

请至releases页面查看步骤。


Roelxy
WRITTEN BY
Roelxy
新世紀摸魚戰士