本地搭建简易rtmp服务器
由于个人有直播间在使用脚本推流,所以在进行脚本代码的变更时候,如果能现在本地进行一次测试就最好不过了。自己安装配置Nginx等确实可行,但是毕竟只是自己测试使用,大费周章的做一系列工作有点儿麻烦了,所以我最终选择了docker上编译好的rtmp环境直接使用。
一、安装Docker
Docker 官网上并没有提供关于 Deepin 的 Docker 安装教程,由于 Deepin 是基于 Debian 的,所以可以参照官网 Debian的安装教程安装,但 Deepin 在定制过程中进行了大量修改,所以使用官方教程可能会失败,所以需要先在 Deepin 下完成 Docker 的安装。
1、关于深度中的Docker
深度官方 Deepin 的应用仓库已经集成了docker,但不是类似于 docker-ce 这样的最新版本。要想使用最新版可以参考官网 debian 安装教程安装,不过由于深度 sid 版本开发,通过 $(lsb_release -cs)
获取的版本信息为 unstable,而 docker 官方源并没提供 sid 这种 unstable 版本的 docker,所以使用官方教程是安装不成功的。
2、前提—安装 docker-ce 和密钥管理以及下载相关的工具
使用命令
sudo apt-get install apt-transport-https ca-certificates curl python-software-properties software-properties-common
安装 curl命令、提供add-apt-repository工具的software-properties-common包 和密钥管理工具。
3、下载并安装秘钥
通过命令
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
安装。之后可以通过 sudo apt-key fingerprint 0EBFCD88
查看是否安装成功。若成功,会类似下面的信息:
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) mailto:[email protected]
sub 4096R/F273FCD8 2017-02-22
4、添加docker官方仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian wheezy stable"
之后使用命令 sudo apt update
来更新系统
5、安装Docker
sudo apt-get install docker-ce
6、验证完成安装
现在,可以通过 systemctl start docker
来启动docker服务,并使用 docker version
来查看docker版本。若能返回版本信息,则安装已完成。
若启动启动服务时报错,可查看 docker.service 的 unit文件,路径为 /lib/systemd/system/docker.service,把 ExecStart=/usr/bin/dockerd -H fd:// 修改为ExecStart=/usr/bin/dockerd,即可以正常启动 docker 。
7、更改docker权限
因为安装过程都是超级用户身份,所以现在可以对权限进行更改,使普通用户可用。
#将当前用户添加到docker组
sudo gpasswd -a ${USER} docker
#修改docker.sock权限
sudo chmod a+rw /var/run/docker.sock
完成。现在可以通过 sudo docker run hello-world
来验证docker是否能正常使用。正常情况下,终端会显示Hello from Docker一系列欢迎界面。
8、使用国内加速源
编辑 /etc/docker/daemon.json 文件,并输入docker-cn 镜像源地址
sudo nano /etc/docker/daemon.json
输入以下内容:
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
保存。
最后,重启一下docker服务
sudo service docker restart
Docker安装完成,接下来可以安装rtmp环境了。
二、在Docker上获取RTMP环境
1、拉取容器
docker pull alfg/nginx-rtmp
待拉取完毕,RTMP环境便搭建好了。
2、启动RTMP环境并推流
通过命令
docker run -it -p 1935:1935 -p 8080:80 --rm alfg/nginx-rtmp
来运行RTMP环境。之后,便可通过OBS或ffmpeg来向其进行推流了。
推流地址配置如下。
对于OBS:
流类型: 自定义流媒体服务器
URL: rtmp://localhost:1935/stream
流名称: hello(这里可以自定义,只需在拉流时对应更换好即可)
对于ffmpeg,推流地址写成
rtmp://localhost:1935/stream/hello
即可。其中,hello同OBS,可以自定义。
3、通过vlc查看流
在地址处输入 http://localhost:8080/live/hello.m3u8
即可。注意hello更换成前边推流自定义的流名称。