Nginx配置

1.版本

需选用nginx-1.7.11.3-Gryphon ,该版本已集成 RTMP 模块,下载解压即可直接配置 RTMP/HLS 服务。

下载地址:https://nginx-win.ecsds.eu/download/ 选择1.7.11.3 Gryphon.zip下载即可

2.nginx-rtmp-module

需下载nginx-rtmp-module,这是 Nginx 的 第三方扩展模块,为 Nginx 增加了 RTMP(Real-Time Messaging Protocol)服务器 能力,常用于 直播推流、点播、录制 等流媒体场景。

下载地址:https://github.com/arut/nginx-rtmp-module

3.nginx-1.7.11.3-Gryphon 配置

(1)将nginx-1.7.11.3-Gryphon解压至任意地址,打开"...\nginx-1.7.11.3-Gryphon\conf\nginx-win.conf"将其内容替换为:

worker_processes  1; # 只起 1 个 Nginx 主进程(Windows 单进程即可)

events {
    worker_connections  1024; # 每个进程最多 1024 条并发连接(含 HTTP + RTMP)
}

rtmp {
    server {
        listen 1940; # RTMP 服务监听本地 1940 端口 默认端口为1935
        chunk_size 4096;

        # ⬇ 推流 / 拉流应用
        application live {
            live on;  # 允许推流/拉流
            record_path ../record; # .flv 录像保存到 nginx.exe 同级 record 目录
            record all;  # 所有流都录
            record_unique on; # 文件名加时间戳,防止覆盖
            record_suffix .flv;   # 扩展名 .flv}
        }

        # ⬇ HLS 低延时切片
        application hls {
            live on;  # 允许推流
            hls on; # 开启 HLS 切片
            hls_path F:/StreamingMedia/Nginx/html/hls; # .m3u8 / .ts 切片保存目录
            hls_fragment 1s;  # 每 1 秒切一个 ts
            hls_playlist_length 3s; # 播放列表只保留最近 
            hls_cleanup on;  # 自动删除过期切片,防止磁盘爆
            hls_continuous off;# NEW:关闭连续模式,防止长时间推流后旧切片堆积
           
        }
    }
}


http {
    include       mime.types; # 载入文件扩展名 → MIME 类型映射表(保证 .m3u8/.ts 识别正确)
    default_type  application/octet-stream; # 若找不到 MIME,默认按二进制流下载

    server {
        listen 8099;  # 浏览器/播放器访问端口:http://127.0.0.1:8099/...(默认端口为80)
        server_name localhost; # 本机即可,也可改成域名或 IP

        # 首页 / 统计页面
        location / {
            root html; # 网站根目录 = nginx/html
            index index.html; # 访问 http://127.0.0.1:8099/ 时默认返回 index.html
        }
        location /stat {
            rtmp_stat all; # 把 RTMP 实时状态(在线流、带宽、连接数)生成 XML
            rtmp_stat_stylesheet stat.xsl; # 用配套的 XSL 样式表,浏览器访问时显示成漂亮表格# 访问地址:http://127.0.0.1:8099/stat
        }

        # HLS 播放地址
        location /hls {
            alias F:/StreamingMedia/Nginx/html/hls; # 把磁盘上的 .m3u8 + .ts 文件映射到 URL /hls
            types {
                application/vnd.apple.mpegurl m3u8;  # 告诉浏览器 .m3u8 是 HLS 播放列表
                video/mp2t ts;  # .ts 是 MPEG-TS 视频流
            }
            add_header Cache-Control no-cache; # 禁止浏览器缓存,保证直播实时
            add_header Access-Control-Allow-Origin *; # 允许跨域,前端/播放器可直接拉流
                                                        # 最终播放地址:# http://127.0.0.1:8099/hls/<流名>.m3u8}   
        }
    }
}

(2)在nginx-1.7.11.3-Gryphon文件夹下,新建名为nginx-rtmp-module的文件夹并将nginx-rtmp-module.zip中的文件解压至此处。

(3)在nginx-1.7.11.3-Gryphon文件夹下,新建名为NginxStart的txt文件,输入

@echo off
cd /d "%~dp0"
nginx.exe -c conf\nginx-win.conf -p "%cd%"
pause

保存之后将文件拓展名改为bat,双击NginxStart.bat即可运行nginx(注:因为nginx-1.7.11.3-Gryphon中没有nginx.conf文件,所以双击nginx.exe是无法运行nginx的)

或者在cmd中输入以下代码也是可以启动nginx的。

nginx.exe -c conf\nginx-win-rtmp.conf

nginx使用完毕需要在cmd中输入以下代码关闭nginx进程,避免影响下一次的使用。

taskkill /IM nginx.exe /F

ffmpeg推流

推流地址为 rtmp://<服务器IP>/live/<流名>,拉流地址同样为此地址

1.ffmpeg配置

(1)在https://www.gyan.dev/ffmpeg/builds/下载release-full版本,并解压。

(2)解压到如 C:\ffmpegC:\ffmpeg\bin 添加到系统环境变量:控制面板 → 系统 → 高级系统设置 → 环境变量 → 系统变量 Path → 新建 → 粘贴路径 → 保存

(3)在cmd中输入以下代码,如果能够显示版本信息即为配置成功

ffmpeg -version

2.rtmp推流

ffmpeg -re -i "F:\StreamingMedia\test.mp4" ^           
//推送视频在本机的地址
       -c:v libx264 -preset veryfast -tune zerolatency ^
       -c:a aac -ar 44100 -f flv ^
       rtmp://127.0.0.1:1940/live/streamkey            
       //127.0.0.1为服务器IP 1940为端口号(默认端口号为1935)

原理如图

3.rtmp循环推流

ffmpeg -re -stream_loop -1 -i "F:\StreamingMedia\test.mp4" ^   
//-stream_loop -1无限循环输入文件-1 表示无限次,相当于把 test.mp4 播完立即从头再来
  -c:v libx264 -preset veryfast -tune zerolatency ^
  -c:a aac -ar 44100 -b:a 128k ^
  -f flv rtmp://127.0.0.1:1940/live/streamkey             
//127.0.0.1为服务器IP 1940为端口号(默认端口号为1935)

如果要停止推流在cmd中点击ctrl+c即可停止。

4.rtmp推多个流

在两个或多个cmd中输入以下代码运行即可。

ffmpeg -re -i "F:\StreamingMedia\test.mp4" -c copy -f flv rtmp://127.0.0.1:1944/live2/stream1
ffmpeg -re -i "F:\StreamingMedia\test2.mp4" -c copy -f flv rtmp://127.0.0.1:1944/live2/stream2

5.HLS推流

ffmpeg -re -i F:\StreamingMedia\test.mp4 -c:v libx264 -c:a aac -f flv rtmp://localhost:1940/hls/stream
//1940为端口号(默认端口号为1935)

原理如图

6.HLS循环推流

ffmpeg -re -stream_loop -1 -i "F:\StreamingMedia\test2.mp4" ^
 -c:v libx264 -g 30 -keyint_min 30 ^
 -c:a aac -f flv ^
 rtmp://localhost:1940/hls/stream
 //1940为端口号(默认端口号为1935)

如果要停止推流在cmd中点击ctrl+c即可停止。

VLC拉流

1.下载

在网站 https://www.videolan.org/vlc/index.zh_CN.html 选择适合自己的版本下载并安装即可。

2.VLC 拉取rtmp流操作步骤

(1)打开 VLC → 媒体 → 打开网络串流

(2)在 网络 URL 框粘贴上表对应的地址,点击播放即可。(注:url一般的格式为rtmp://<服务器IP>:<端口号>/live/stream)

3.VLC 拉取HLS流操作步骤

(1)打开 VLC → 媒体 → 打开网络串流

(2)在 网络 URL 框粘贴上表对应的地址,点击播放即可。(注:url一般的格式为http://<服务器IP>:<端口号>/live/流名称.m3u8)

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐