飞蚊话

本地搭建简易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) <docker@docker.com>
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更换成前边推流自定义的流名称。

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »