Windows搭建Nginx实现RTMP转为HLS流

所需软件

配置Nginx

1·为Nginx配置RTMP和HLS

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

conf 复制代码
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对应的路径信息

conf 复制代码
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

cmd 复制代码
.\nginx.exe -c .\conf\nginx这里是你刚编辑的配置.conf

查看是否启动成功

cmd 复制代码
tasklist /fi "imagename eq nginx.exe"

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

cmd 复制代码
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流就已经准备好了。

kotlin 复制代码
.\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

相关推荐
Wang's Blog12 小时前
Linux小课堂: 输入重定向与管道操作详解
linux·运维·服务器
magic3341656312 小时前
Springboot整合MinIO文件服务(windows版本)
windows·spring boot·后端·minio·文件对象存储
python百炼成钢13 小时前
3.Linux 网络相关
linux·运维·网络·stm32·单片机
Jtti13 小时前
香港硬防服务器防御DDOS攻击的优点
运维·服务器·ddos
比特森林探险记15 小时前
Nginx+Lua动态加载黑名单
nginx·junit·lua
lpfasd12316 小时前
第2部分:Netty核心架构与原理解析
运维·服务器·架构
小蜜蜂爱编程16 小时前
gerrit的部署与配置关联到不同服务器上的git仓库
运维·服务器·git·gerrit
心灵宝贝17 小时前
申威(sw_64)架构下如何安装java-1.8.0-swjdk的rpm包?
linux·运维·服务器
半梦半醒*18 小时前
搭建Jenkins
linux·运维·centos·tomcat·jenkins·运维开发