一开始想到要弄一个简单的 rtmp 服务器是为了给同学上课投射屏幕用。因为我用的是 Linux ,没法用国产的那些课室软件给他们投放屏幕,于是只好出此下策了。

我使用的系统是 CentOS 7 和 Ubuntu 16.04 ,所以就想到最简单的方式搭建:使用现成的 Docker 镜像。因为重新编译安装 nginx 对我来说不太现实,会直接影响到我的开发环境。

先安装好 docker

CentOS 7 :

sudo yum install docker

Ubuntu 16.04 :

sudo apt-get install docker.io

安装好之后执行 systemctl status docker 查看一下 docker 有没有被启动,没有的话执行 sudo systemctl start docker 启动。如果想日后自动启动 docker ,可以执行 sudo systemctl enable docker。

docker 需要使用 root 权限来操作,如果嫌麻烦可以把自己加入 docker 的用户组里,或者直接 su root 。

这里我直接使用 tiangolo/nginx-rtmp 来搭建 rtmp 服务器。

sudo docker pull tiangolo/nginx-rtmp

等下载完成之后就可以启动这个镜像

sudo docker run -d -p 1935:1935 --name nginx-rtmp tiangolo/nginx-rtmp

然后就可以直接使用 OBS 推流了。在推流的地址上填写 rtmp://你电脑的 ip 地址/live,密钥随便填写。然后可以开始串流了。

在可以看串流的客户端上(例如 vlc )打开网络串流,地址就是 rtmp://你电脑的 ip 地址/live/你的密钥。

因为 CentOS 和 Ubuntu 都有防火墙,如果没法推流或者接收推流的话,有可能是因为防火墙的问题。这时最好让防火墙打开 1935 端口的访问,或者直接关掉防火墙(一般是叫做 firewall 的服务或者 ufirewall )。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐