流媒体服务(一)流媒体服务器搭建 win10+ngnix+rtmp播放rtmp和HLS
1.资源准备
(1) nginx:
下载地址:http://nginx-win.ecsds.eu/download/
版本:nginx 1.7.11.3 Gryphon.zip
(2) nginx-rtmp-module :
下载地址:https://github.com/arut/nginx-rtmp-module
(3) ffmpg :
下载安装并放入环境变量path(例如将D:\software\ffmpeg\ffmpeg-20200225-36451f9-win64-static\bin追加到path路径)
(4) rtmp和mp4视频文件:
湖南卫视:rtmp://58.200.131.2:1935/livetv/hunantv
2. 软件安装
(1) 解压nginx 和nginx-rtmp-module,并将nginx-rtmp-module解压到nginx 目录下如图(注:nginx目录不要有空格,win7,8好像没有 问题):
3. nginx配置
在nginx的conf目录下拷贝一份nginx-win.conf并命名为nginx-win-rtmp.conf
并新增以下内容(注意目录D:/temp/rtmp要先建好或换成自己的目录):
新增rtmp
#新增开始
rtmp {
server {
listen 1935;
application myapp {
live on;
}
application live {
live on;
hls on;
hls_path D:/temp/rtmp/hls;
hls_fragment 1s;
hls_playlist_length 3s;
}
hls on;
hls_path D:/temp/rtmp/hls;
hls_fragment 5s;#没有生效
hls_playlist_length 30s;
hls_nested off; #默认是off。打开后的作用是每条流自己有一个文件夹
hls_cleanup off;#不清理ts
}
}
#新增end
http server节点下新增以下:
#新增开始
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root nginx-rtmp-module/;
}
location /control {
rtmp_control all;
}
#加入hls支持
location /live {
types {
application/vnd.apple.mpegurl m3u8;
#或 application/x-mpegURL
video/mp2t ts;
}
#root D:/temp/rtmp;
alias D:/temp/rtmp/hls; #视频流文件目录(自己创建)
#expires -1;
add_header Cache-Control no-cache;
}
4. nginx启动
进入nginx目录打开命令行或powershell执行:
启动:nginx -c conf\nginx-win-rtmp.conf
停止:nginx -s stop -c conf\nginx-win-rtmp.conf
重载:nginx -s reload -c conf\nginx-win-rtmp.conf
强制结束:taskkill /fi “imagename eq nginx.EXE” /f
5. 示例
(1)将网络rtmp转换为本地rtmp并播放
打开命令行或powershell执行如下命令:
ffmpeg -i rtmp://58.200.131.2:1935/livetv/hunantv -acodec aac -strict experimental -ar 44100 -ac 2 -b:a 96k -r 25 -b:v 500k -s 640*480 -f flv rtmp://127.0.0.1:1935/myapp/hunantv
地址http://127.0.0.1/live/hunantv.m3u8和rtmp://127.0.0.1:1935/myapp/hunantv
都可以用VLC播放(VLC 打开网络 串即可,注意部分视频 可能有声音没有画面或有画面没有 声音,这个跟你ffmpeg命令参数或视频有关)
(2)将mp4文件转换为本地rtmp并播放
ffmpeg -re -i test.mp4 -vcodec libx264 -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://127.0.0.1:1935/live/show
会在路径下自动生成ts文件:
用VLC播放器播放:
http://127.0.0.1/live/show.m3u8
上一篇: TCP/UDP协议详解
下一篇: LIVE555-媒体流建立(3)
推荐阅读
-
流媒体服务(一)流媒体服务器搭建 win10+ngnix+rtmp播放rtmp和HLS
-
基于Nginx搭建RTMP/HLS视频直播流媒体服务器
-
rtmp与hls流媒体服务器搭建:ubuntu下Nginx搭建初探与rtmp-module的添加
-
【转载】利用Nginx搭建http和rtmp协议的流媒体服务器
-
rtmp与hls流媒体服务器搭建:ubuntu下Nginx搭建初探与rtmp-module的添加
-
【转载】利用Nginx搭建http和rtmp协议的流媒体服务器
-
使用nginx和nginx-rtmp-module搭建流媒体服务器
-
实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解
-
使用nginx和nginx-rtmp-module搭建流媒体服务器