Nginx搭建流媒体服务器详解(RTMP和HLS)本⽂所讲开发环境以Linux为准: 本⽂demo架构是android端采⽤RTMP推流,播放⽤H5播放器video.js播放RTMP协议或HLS协议。 实验步骤:
1. 先下载安装 nginx 和 nginx-rtmp 编译依赖⼯具 sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
大豆糖蜜
2. 创建⼀个⼯作⽬录,并切换到⼯作⽬录
mkdir /usr/jason/nginx
cd /usr/jason/nginx
3. 下载 nginx 和 nginx-rtmp源码(wget是⼀个从⽹络上⾃动下载⽂件的⾃由⼯具)
4. 安装unzip⼯具,解压下载的安装包
sudo apt-get install unzip
5. 解压 nginx 和 nginx-rtmp安装包
tar -zxvf nginx-1.7.
-zxvf分别是四个参数
x : 从 tar 包中把⽂件提取出来
z : 表⽰ tar 包是被 gzip 压缩过的,所以解压时需要⽤ gunzip 解压
v : 显⽰详细信息
f : 指定被处理的⽂件是
unzip master.zip
6. 切换到 nginx-⽬录
cd nginx-1.7.5
7. 添加 nginx-rtmp 模板编译到 nginx
.
/configure --with-http_ssl_module --add-module=…/nginx-rtmp-module-master
8. 编译安装
make
sudo make install
9. 安装nginx init 脚本
sudo service nginx start
sudo service nginx stop
11. 安装 FFmpeg
钛合金粉末冶金加工make
make install
12. 配置 nginx-rtmp 服务器或HLS服务器
打开 /usr/local/nginx/f 在末尾添加如下 配置
复制代码:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
复合柴油
}
application live360p {
live on;
record off;
}
#RTMP直播流配置
application rtmplive{
live on;
粽子机
# max_connections:1024;
}
#HLS直播流配置
application hls {
live on;
hls on;
hls_path /usr/local/nginx/html/hls;
hls_fragment 5s;
接菜}
}
}
13. 保存上⾯配置⽂件,然后重新启动nginx服务
sudo service nginx restart
14. 如果你使⽤了防⽕墙
请允许端⼝ tcp 1935
15. 使⽤ 客户端,使⽤ rtmp协议进⾏视频实时采集
Field 1: rtmp://your.vultr.ip/live/
启动电容器Field 2: stream-key-your-set
服务器配置测试播放器:
将播放器复制到⽬录:/usr/local/nginx/html/,然后修改播放地址⽤ffplay播放RTMP直播流:
ffplay “rtmp://49.4.11.26:8088/hls/test.m3u8”
⽤ffplay播放HLS直播流:
实验结论:
RTMP的延时明显低于HLS。
android推流的项⽬地址: