版本号 | 添加内容 | 修改时间 |
V1.0 | 新建 | 2021年12月30日 |
V1.1 | 增加网页播放 | 2021年12月31日 |
V1.2 | 增加是否可以多流和测试数据 | 2022年1月5日 |
目录
2.1 部署windows环境(win2003或win7以上系统)
九、关于和nginx_rtmp-module、nginx-http-flv-module功能分析
一、软件储备
1.推流软件:OBS
OBSStudio是一款视频直播录制软件,为用户提供了视频、文本、图像等的捕获录制功能。
OBS官网:Open Broadcaster Software | OBS
https://cdn-fastly.obsproject.com/downloads/OBS-Studio-27.1.3-Full-Installer-x64.exe
注:OBS支持Windows/linux/Mac(可从其他地方下载)
2.服务器流媒体软件:smart_rtmp
http://www.qiyicc.com/download/rtmpd.zip
3.播放软件:Potplayer
支持用VLC或者potplayer,两个方案任选其一,没有什么太大的区别;
https://545c.com/f/15911488-521156289-9c2f86
二、服务器部署
2.1 部署windows环境(win2003或win7以上系统)
①rtmpd.zip压缩解压到桌面,再次找到smart_rtmpd_win压缩包,解压到桌面。
<nat>
<!-- nat地址上映射地址和端口, 例如: 118.145.6.103:1935 -->
<rtmp>182.18.5.115:1935</rtmp>
<!-- nat地址上映射地址和端口, 例如: 118.145.6.103:8554 -->
<rtsp><182.18.5.115:8554/rtsp>
<!-- nat地址上映射地址和端口, 例如: 118.145.6.103:8080 -->
<http><182.18.5.115:8080/http>
<!-- nat地址上映射地址和端口, 例如: 118.145.6.103:8181 -->
<https>182.18.5.115:8181</https>
<!-- nat地址上映射地址和端口, 例如: 118.145.6.103:9000 (udp) -->
<srt>182.18.5.115:8000</srt>
<!-- nat地址上映射地址, 例如: 118.145.6.103, udp 一般是映射端口段, see rtp min & max -->
<rtp>182.18.5.115</rtp>
</nat>
③执行smart_rtmpd_win文件夹的smart_rtmpd.exe文件,直接点击开始即可
2.2 部署Linux环境(centos7.X以上)
开终端(如 putty 或 Xshell),连接到该服务器。 通过 cd 转到 smart_rtmpd 所在目录,改connfg.XML文件,然后执行下方启动命令:(二选一) 启动命令 1: (这种启动方式,在关闭终端后,直播服务器就自动停止了) ./smart_rtmpd 启动命令 2: (这种启动方式,在关闭终端后,直播服务器依旧运行着) nohup ./smart_rtmpd (可通过 netstat -tunlp | grep 1935 查到使用1935端口的进程号,然后通过:kill+进程号 的方式停止服务)
2.3.部署需要windows和linux的安全组规则
三、推流准备
3.1 用OBS推流
①点击设置》②推流》③点击服务后面的自定义,在服务地址里输入上面NAT的地址》④串流密钥》⑤点击左侧输出选择分辨率码流》⑥点击确定》⑦返回界面后,点击开始推流
四、播放(拉流)规则
rtmp://182.18.5.115:1935/live/cs01
rtmp://182.18.5.115:1935/live/cs01
如果开启了8080端口,那么推流地址rtmp://182.18.5.115:1935/live/cs01
rtmp://182.18.5.115:1935/live/cs01
http://182.18.5.115:8080/live/cs01.m3u8
五、播放(拉流)
打开potplay,点击打开-》打开链接-》输入地址http://182.18.5.115:8080/live/02.m3u8
六、其他材料:
6.1关于smart_rtmp git地址
https://github.com/superconvert/smart_rtmpd
6.2播放软件方案VLC②下载地址
https://free.nchc.org.tw/vlc/vlc/3.0.16/win64/vlc-3.0.16-win64.exe
6.3关于播放器官网地址:
VLC: Official site - Free multimedia solutions for all OS! - VideoLAN
6.4关于NAT设置
6.5关于无法推流拉流播放
如果是linux 同样关闭防护墙或者设置防火墙策略;关闭selinux
6.6关于NAT内网无法播放
由于在内网服务器的配置是公网配置,所以需要修改服务器hosts配置!
6.7关于是否可以推多流
可以,互不干扰。名字可以不一样;
推送地址格式如下(以rtmp为例):
rtmp://IP+端口/live/名字1
rtmp://IP+端口/live/名字2
播放地址:
rtmp://IP+端口/live/名字1
rtmp://IP+端口/live/名字2
6.8关于流量测试(待继续补充)
清晰度(流量) | 普清1280*720 (码率在1000k至1400K)) | 标清1280*720( 码率1600k至2000K) | 高清1280*720 (码率3800k-4200K |
手机推流 | 0.32G | 0.32G | 0.32G |
服务器 | 0.39G | 0.54G | 0.46G |
拉流播放 | 0.9G | 0.814G | 0.96 |
七、关于浏览器播出
如果推流后,实在不方便观看到视频,实际上文件夹內是有播放列表等参数的。
7.1自带播放器测试用
直接输入地址:http:/IP:端口/player.html
http://182.18.5.53:8080/player.html
7.2手动设置做一个页面
在smart_rtmp目录下有个html文件,需要新建个网页,复制一下代码:
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/hls.js/latest/hls.min.js"></script>
<video id="video"></video>
<script>
if(Hls.isSupported()) {
var video = document.getElementById('video');
var hls = new Hls();
// 初始化 修改地址
hls.loadSource('http://182.18.5.115:8080/live/01.m3u8');
hls.attachMedia(video);
hls.on(Hls.Events.MANIFEST_PARSED,function() {
video.play();
});
}
</script>
</head>
</html>
http://182.18.5.115:8080/2.html
八、关于点播、录像问题
点播和录像分别存放与VOD和REC目录下。
比如在VOD目录下上传一个1.MP4文件
那么打开http://182.18.5.115:8080/vod/1.MP4
九、关于和nginx_rtmp-module、nginx-http-flv-module功能分析
smart_rtmp | nginx-rtmp-module | nginx-http-flv-module | |
部署 | 直接运行 | 需要编译 | 需要编译 |
hlv | 集成 | 需要增加模块 | 包含nginx-rtmp-modulb模块了 |
支持win | 支持 | win环境编译模块失败 | 可以,比较麻烦 |
配置文件 | 中文注释 | 需要多个修改优化 | 需要多个修改优化 |