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

相关推荐
乘云数字DATABUFF2 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--4 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森4 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜5 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB6 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode7 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220708 天前
如何搭建本地yum源(上)
运维
ping某9 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树8811 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠11 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql