【Windows流媒体实战1】FFmpeg+Nginx-RTMP Windows详细搭建教程

FFmpeg+Nginx-RTMP Windows详细搭建教程

    • 一、前言
    • 二、核心工具介绍与技术选型
      • [2.1 FFmpeg 工具作用与选型](#2.1 FFmpeg 工具作用与选型)
      • [2.2 Nginx-RTMP 工具作用与选型](#2.2 Nginx-RTMP 工具作用与选型)
    • 三、工具下载与安装
      • [3.1 FFmpeg 下载与安装](#3.1 FFmpeg 下载与安装)
      • [3.2 Nginx-RTMP 1.2.1下载与安装](#3.2 Nginx-RTMP 1.2.1下载与安装)
    • [四、Nginx-RTMP 核心配置(nginx-rtmp-win32-1.2.1)](#四、Nginx-RTMP 核心配置(nginx-rtmp-win32-1.2.1))
    • 五、全流程环境验证
      • [5.1 Nginx-RTMP服务启动验证](#5.1 Nginx-RTMP服务启动验证)
      • [5.2 FFmpeg流可用性命令验证](#5.2 FFmpeg流可用性命令验证)
      • [5.3 监控页面访问](#5.3 监控页面访问)
    • 六、本篇小结

一、前言

在Windows平台开发RTMP流媒体录制业务,绝大多数启动报错、本地正常线上翻车、服务异常闪退、录制功能失效等问题,根源基本集中在版本选型错误、工具包残缺、环境配置不规范、路径兼容异常四大核心问题。

相较于Linux成熟的编译与运行环境,Windows平台的Nginx-RTMP无官方编译包、FFmpeg精简版功能阉割、高版本参数兼容性差,存在很多问题。本文作为系列专栏开篇,专注零基础标准化环境搭建,统一工具版本、规范安装流程、提供配置与完整环境验证,为后续SpringBoot工程集成、业务功能的实现打下基础。

二、核心工具介绍与技术选型

本项目依赖FFmpeg与Nginx-RTMP两款核心工具,分工明确、协同完成RTMP流接收、转发、录制、转码全流程。本节详细说明工具核心作用与选型依据。

2.1 FFmpeg 工具作用与选型

核心作用:FFmpeg是开源通用的音视频处理工具,是本项目核心录制工具。主要负责拉取RTMP直播流,或点播流、实时录制视频、FLV临时文件转标准MP4、修复视频时间戳异常、处理音视频编码异常等核心业务能力。

选型避坑

  • 禁止使用精简版:精简版阉割RTMP编解码、faststart转封装、时间戳修复等核心功能,无法完成双流录制与可拖拽标准MP4生成,直接导致功能失效。
  • 优先官方认证编译渠道:选用FFmpeg官网公示的gyan.dev、BtbN合规编译源,保证程序无篡改、无捆绑、功能完整、运行稳定,适配Windows全系统版本。
  • 固定稳定完整版选型:优先选用7.x、8.x系列完整版(full_build),现在最新版本**FFmpeg 8.1.2(2026年6月27号官方稳定版)**兼容性、稳定性最优,完美适配本项目全部录制、转码、修复命令。

2.2 Nginx-RTMP 工具作用与选型

核心作用:Nginx-RTMP是基于Nginx拓展的流媒体服务模块,承担流媒体传输调度核心工作。负责接收设备/客户端RTMP推流、分发实时直播流、读取本地点播视频、提供HLS流媒体切片、可视化流状态监控,是整个流媒体业务的服务端底座。

选型避坑

  • 舍弃官方原版:arut/nginx-rtmp-module官方仅提供Linux源码,无Windows可执行程序,本地开发、Windows生产环境直接弃用。
  • 固定1.2.1稳定版:Windows第三方编译版中,1.2.1版本适配性最强,无高版本冗余不兼容参数,彻底规避wait_keyframe、tcp_nodelay等启动报错,是Windows环境相比优秀版本。
  • 自带完整监控模块:该版本内置stat状态监控模块,无需额外编译,开箱即用,满足流状态监控、异常排查、并发统计需求。

三、工具下载与安装

3.1 FFmpeg 下载与安装

选项 地址 特点 适用人群
Windows builds from gyan.dev(优先推荐) https://www.gyan.dev/ffmpeg/builds/ 独立站点,国内访问速度更快;提供正式稳定版(release)和开发版 (git),分为精简版 / 完整版 普通开发、Windows 本地调试、不想依赖 Github、国内网络环境
Windows builds by BtbN Github 仓库:https://github.com/BtbN/FFmpeg-Builds/releases 托管在 GitHub Release,更新频率极高,纯 Git 主干每日构建;国内访问容易慢 / 打不开 能稳定访问 Github、需要最新开发版本的开发者

👉 如果你在国内上网,优先选择第一个:gyan.dev

  • 正式稳定版下载:https://www.gyan.dev/ffmpeg/builds/
  • 安装说明 :下载后是压缩包,放到合适目录下直接解压,然后可配置系统全局环境变量,也可项目内直接配置exe绝对路径(可避免多版本冲突、全局权限异常、服务器环境错乱等问题,更适配生产部署)。

    安装完整性校验 :解压完成后,确认bin目录下包含 ffmpeg.exe、ffplay.exe、ffprobe.exe 三大核心程序,即为安装完整、功能无缺失。

3.2 Nginx-RTMP 1.2.1下载与安装

  • 版本说明:推荐 nginx-rtmp-module 1.2.1 预编译 Windows 绿色包(illuspas/nginx-rtmp-win32)。

  • 下载说明:内置 RTMP、HLS、流媒体状态监控模块,开箱即用。

  • 开源原始仓库地址https://github.com/illuspas/nginx-rtmp-win32

    Release 1.2.1 原版下载链接:https://github.com/illuspas/nginx-rtmp-win32/releases/tag/v1.2.1

  • 安装说明 :下载后放到合适的目录下,直接解压到纯英文、无空格、无中文、无特殊字符的短路径,杜绝路径报错、端口监听失败、服务启动异常等问题。

四、Nginx-RTMP 核心配置(nginx-rtmp-win32-1.2.1)

以下是1.2.1版本专属极简稳定配置nginx.conf,剔除所有高版本不兼容参数,兼容LIVE直播、VOD点播、HLS流媒体输出,内置状态监控模块,可直接复制复用,启动无任何报错。

java 复制代码
worker_processes  1;
error_log  logs/error.log;

events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;
        chunk_size 4096;

        # 实时直播应用(适配摄像头、设备实时RTMP推流)
        application live {
            live on;
            record off;
        }

        # 【VOD点播】本地视频文件回放(适配本地视频调试)
        application vod {
            play E:/disk_software/IT/video/ffmpeg/test_video;
        }

        # 【HLS直播输出】HLS流媒体输出配置(适配移动端、网页端播放)
        application hls {
            live on;
            hls on;  
            hls_path temp/hls;  
            hls_fragment 8s;
        }
    }
}

http {
    server {
        listen      8080;

        location / {
            root html;
        }

        # RTMP状态监控页面核心配置
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root html;
        }

        # HLS资源访问配置
        location /hls {  
            types{  
                application/vnd.apple.mpegurl m3u8;  
                video/mp2t ts;  
            }  
            alias temp/hls;  
            expires -1;  
        }
    }
}

五、全流程环境验证

配置完成后,需要启动服务,CMD命令行测试验证,确保流媒体环境完全可用。

5.1 Nginx-RTMP服务启动验证

进入Nginx根目录,执行启动命令:start nginx.exe,无弹窗报错、任务管理器中显示进程正常后台运行,即为服务启动成功。

5.2 FFmpeg流可用性命令验证

打开CMD终端,进入FFmpeg解压bin目录,执行以下命令,验证直播、点播流传输正常:

  • 模拟直播实时推流测试ffmpeg -re -i "E:\disk_software\IT\video\ffmpeg\test_video\test.mp4" -c copy -f flv rtmp://127.0.0.1:1935/live/test001

    访问验证:使用VLC工具验证(rtmp://127.0.0.1:1935/live/test001):
  • 直播流是否流畅验证ffmpeg -i rtmp://127.0.0.1:1935/live/test001 -f null -
  • 点播流是否流畅验证ffmpeg -i rtmp://127.0.0.1:1935/vod/test.mp4 -f null -

命令运行后,持续再跑、无报错、正常输出帧数据,代表流媒体环境搭建完全成功。

5.3 监控页面访问

监控页面访问地址:http://127.0.0.1:8080/stat

六、本篇小结

本篇完整说明了Windows平台FFmpeg + Nginx-RTMP流媒体基础环境的标准化搭建流程,明确两款核心工具的选型逻辑、版本规范与部署标准,提供Windows专属零报错配置与完整环境验证流程,彻底解决新手环境搭建、版本兼容、服务启动等基础问题。

本次搭建完成的基础环境,是后续流媒体录制、转码、切片、直播分发业务的核心底座,也为下一阶段SpringBoot工程集成流媒体服务、实现自动化推拉流与视频录制业务做好了完整铺垫。后续将持续更新业务层实操教程,实现从基础环境搭建到完整项目落地的全流程闭环。


本文属于【Windows流媒体实战专栏】系列第一篇

第一篇:FFmpeg+Nginx-RTMP Windows超详细搭建教程

相关推荐
Yeauty3 天前
你那条 ffmpeg 命令,一键翻成 Rust builder 代码
开发语言·rust·ffmpeg
Yeauty4 天前
用 Whisper 转录前,你不用再离开 Rust
开发语言·rust·ffmpeg·音视频·视频
paokuflying5 天前
ffmpeg提取视频中的音频
ffmpeg·音视频
Tirzano5 天前
java 精简使用ffmpeg
java·开发语言·ffmpeg
兵叔物联7 天前
基于FFmpeg的短视频自动剪辑工具
ffmpeg·音视频
霸道流氓气质9 天前
视频预览链路三件套:ZLMediaKit · MediaMTX · FFmpeg 完全指南
ffmpeg·音视频
xgc_java9 天前
在Java里把ONNX/OpenCV/FFmpeg跑稳:28篇bytedeco实战小册完整指南
java·opencv·ffmpeg
鲲穹AI全能助理15 天前
实用音频合成工具分享:灵境配音 使用场景与功能说明
ffmpeg·音视频
我是Superman丶15 天前
Windows系统FFmpeg官方下载+完整安装配置保姆级教程(2026最新版)
windows·ffmpeg