windows下流媒体nginx-rmtp-module服务器搭建_流星_新浪博客

Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善的流媒体服务器.这个流媒体服务器可以支持RTMP和HLS(Live

Http Stream)

nginx配合ffmpeg做流媒体服务器的原理是: nginx通过rtmp模块提供rtmp服务,

ffmpeg推送一个rtmp流到nginx, 然后客户端通过访问nginx来收看实时视频流.

HLS也是差不多的原理,只是最终客户端是通过HTTP协议来访问的,但是ffmpeg推送流仍然是rtmp的.

下面是一款已经集成rtmp模块的windows版本的nginx。下载后,即可直接使用

下载链接:https://github.com/illuspas/nginx-rtmp-win32

 

1、rtmp端口配置

配置文件在/conf/nginx.conf

RTMP监听 1935 端口,启用live 和hls 两个application

HTTP监听 8080 端口,

 

 

  • :8080/stat 查看stream状态

 

 

  • :8080/index.html 为一个直播播放与直播发布测试器

 

 

  • :8080/vod.html 为一个支持RTMP和HLS点播的测试器

 

 

2、启动nginx服务

在dos窗口下运行nginx.exe文件,即启动nginx服务

1)启动任务管理器,key看到nginx.exe进程

2)打开网页输入http://localhot:8080,出现如下画面:

即可说明ngix运行成功

3、rtmp协议介绍

rtmp(Real Time Messaging Protocol)实时消息传送协议是Adobe

Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。

它有三种变种:

 

 

  • 工作在TCP之上的明文协议,使用端口1935;

 

 

  • RTMPT封装在HTTP请求之中,可穿越防火墙;

 

 

  • RTMPS类似RTMPT,但使用的是HTTPS连接;

 

 

RTMP协议就像一个用来装数据包的容器,这些数据可以是AMF格式的数据,也可以是FLV中的视/音频数据。一个单一的连接可以通过不同的通道传输多路网络流。这些通道中的包都是按照固定大小的包传输的。

 

4、ffmpeg采集摄像头数据,编码为H.264,发布RTMP

ffmpeg -f dshow -i video=”PC

Camera” -s 640*480 -aspect 4:3 -r 15 -vcodec flv

  -threads 4 -f

flv rtmp://192.168.1.66:1935/live/demo

来源URL:http://blog.sina.com.cn/s/blog_4ad7c2540102we8y.html