Windows搭建Nginx实现RTMP转为HLS流

所需软件

  • nginx-1.7.11.3-Gryphon(这个包含必须的RTMP模块,普通的Ngxin没有这个)
  • ffmpeg
  • VLC

配置Nginx
1·为Nginx配置RTMP和HLS
这里定义了一个叫live的RTMP路径。同时设置其开启HLS功能,那么所有推送到这个地址的RTMP流都会自动生成一条对应HLS流。

rtmp {
    server {
        listen 1935;  # 监听端口 1935,用于 RTMP 数据流传输
        chunk_size 4000;  # 数据传输分块大小
        
        application live {  # 定义RTMP的路径名
             live on;  # 开启 RTMP 直播功能
             hls on;  # 开启 HLS 功能
             hls_path html/hls;  # HLS 分片文件存储路径
             hls_fragment 2s;  # 每个 HLS 分片的时长为 2 秒。
             hls_playlist_length 6s;  # HLS 播放列表长度为 6 秒
        }
    }
}

接着需要在http中的指定服务中添加HLS对应的路径信息

http{
  server {
        listen       80;
        server_name  localhost;
 
		# 定义HLS的路径
		 location /my-hls {
			#配置MIME 类型
			types {
				application/vnd.apple.mpegurl m3u8;
				video/mp2t ts;
			}
			#指定请求路径对应的文件路径(HLS 分片文件存储的位置)
			alias html/hls/;
			#响应头设置 禁止缓存 HLS 分片文件
			add_header Cache-Control no-cache;
		}
  }
}

保存配置文件后,启动Nginx

.\nginx.exe -c .\conf\nginx这里是你刚编辑的配置.conf

查看是否启动成功

tasklist /fi "imagename eq nginx.exe"

如果输出了几个nginx线程则说明ok

PS C:\devTool\nginx-1.7.11.3-Gryphon> tasklist /fi "imagename eq nginx.exe"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
nginx.exe                    32120 Console                   18      8,548 K
nginx.exe                    29340 Console                   18     11,472 K
nginx.exe                    29964 Console                   18      9,576 K

使用FFmpeg创建一个RTMP流
这里我将本地MP4文件推送到本机的RTMP端口下的live路径上,因为Nginx中我们为这个路径开启了HLS功能,所以正常情况下,这时HLS流就已经准备好了。

.\ffmpeg.exe -re -stream_loop -1 -i .\orange.mp4 -c copy -f flv rtmp://127.0.0.1:1935/live/orange2

首先我们可以在live对应的存在ts文件的路径中看到生成的ts文件
Windows搭建Nginx实现RTMP转为HLS流_第1张图片
然后通过VLC播放HLS流看看效果,
因为hls的路径我是配在http80服务下的,所以地址也是80端口http://127.0.0.1:80/my-hls/orange2.m3u8
Windows搭建Nginx实现RTMP转为HLS流_第2张图片

你可能感兴趣的:(windows,nginx,运维)