最近准备部署监控系统,正好github查了一下,开源流媒体服务,发现这个国人开发的Node-Media-Server不错,搭建方便简单,还有WEB面板可以方便查看信息。
安装
安装方法多样,不过对于新手来说,我这里推荐使用docker安装。首先安装docker。
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
再安装 Node-Media-Server,一条命令即可。
docker run -d -p 1935:1935 -p 8000:8000 --restart=always --name nms illuspas/node-media-server
修改
接下来,需要我们进到容器内,做简单修改:
docker exec -it nms /bin/sh
vi编辑 app.js
vi app.js
更改默认的管理员密码,然后把publish改为true,同时为了安全,secret也改一下,这样可以让我们的推流有一个鉴权验证,不验证的话任何人知道你这个服务器的地址都能用你这台机器推流(相关验证配置后文会具体说明)。
例如:
auth: {
api: true,
api_user: 'admin',
api_pass: '92km.net',
play: false,
publish: true,
secret: '12312392km'
},
改完之后退出容器并重启:
exit
docker restart nms
如果重启容器报错的话,那么你可以直接重启docker服务
systemctl restart docker
鉴权验证
前文我们有开启secret,这里我简要说明一下该怎么配置,当然你要不在乎安全,这一步都可以省略的。
首先我们需要计算一下推流的地址,定义一个推流地址过期的时间,这里我假设地址在2019年的10月1日过期(当然你不想经常修改的话,也可以直接设置为2099年12月30日),执行下面命令将时间戳换算成unix的类型:
date -d "2019-07-01 00:00:00" +%s
得到的unix时间戳是:
1569859200
接下来,我们把时间戳和之前在app.js内配置的secret进行一次md5加密,如下:
echo -n "/live/txt-1569859200-12312392km" | md5sum
注:其中的txt字段你可以任意修改成你喜欢的,你可以简单把这个当做你直播间的编号或名字就行。
执行完上面的命令得到如下md5值:
d50cfcbe571accce0759a2f70979e589
我们的推流地址就是:
rtmp://你的服务器ip/live/txt?sign=1569859200-d50cfcbe571accce0759a2f70979e589
推流
服务端这边就部署完成了,接下来我们使用FFMPEG/OBS推流。
安装FFMPEG:
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
tar -xJf ffmpeg-release-amd64-static.tar.xz
cd ffmpeg-4.1.4-amd64-static
cp ffmpeg /usr/bin && cp ffprobe /usr/bin && cp qt-faststart /usr/bin
注:目前 ffmpeg最新版本为 4.1.4,未来如果你安装的是新版本,请自行修改。
推流视频文件:
ffmpeg -re -i 测试.mp4 \
-c:v libx264 -preset superfast -tune zerolatency \
-c:a aac -ar 44100 -f flv rtmp://你的服务器ip/live/txt?sign=1569859200-d50cfcbe571accce0759a2f70979e589
返回结果正常的话,就说明我们搭建成功。
管理面板
现在我们可以访问一下WEB面板看看推流是否正常:
http://你的服务器ip:8000/admin/
这个服务器支持多种格式,包括FLV/HLS/DASH都是可以使用,相应的拉流地址:
http://你服务器ip:8000/live/STREAM_NAME.flv
ws://你服务器ip:8000/live/STREAM_NAME.flv
http://你服务器ip:8000/live/STREAM_NAME/index.m3u8
http://你服务器ip:8000/live/STREAM_NAME/index.mpd
监控直播演示:
http://y.rpsofts.com/jian.html
自己弄个简单的html页面用主流播放器就可以了,这里就不多说了。。这样一个私人直播服务器就搭建完成了。
机灵的你也可以用这个自己作独立电视台,将节目地址加入你家里的数字电视就可以,也可以分享你的地址给别人。(当然这个在国内是违法的,自建电视台就算了,遵纪守法是必须的。)