Windows搭建Nginx实现RTMP转为HLS流

所需软件

配置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文件
在这里插入图片描述
然后通过VLC播放HLS流看看效果,
因为hls的路径我是配在http80服务下的,所以地址也是80端口http://127.0.0.1:80/my-hls/orange2.m3u8
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值