跳转至

MediaMTX + FFmpeg 流媒体服务器搭建

在 Windows 上快速搭建一个稳定、低延迟、支持多协议的流媒体服务器并不复杂。本文将手把手带你完成从环境准备、推流到播放验证的完整流程,并提供实用的优化技巧。

本方案非常适用于: 🟢 本地视频循环播放 🟢 RTSP / RTMP / WebRTC 多协议分发 🟢 设备测试、局域网直播、AI 视频输入管线搭建 🟢 替代海康 / 大华摄像头作为自定义视频源

1. 核心组件介绍

本方案使用两大关键组件:

MediaMTX:轻量级全协议媒体服务器

MediaMTX 是一个零依赖的跨平台媒体网关,主要特点包括:

  • 支持 RTSP、RTMP、WebRTC、SRT、HLS 等协议
  • 自带 Web 管理界面
  • 单文件运行,无需安装
  • 资源占用极低,非常适合嵌入式、Windows 桌面、服务器场景

它的定位是: 将任意媒体源转化为多协议输出的万能网关。

FFmpeg:开源多媒体处理工具

FFmpeg 是音视频领域常用的工具套件之一,用于:

  • 读取音视频文件/设备
  • 转码、滤镜、音视频处理
  • 推流到 RTSP / RTMP / WebRTC 等服务器

在本方案中: FFmpeg 用来推流(输入源) → MediaMTX 用来分发(流媒体服务器)。

2. 安装与配置

2.1 安装 MediaMTX

  1. 进入 GitHub Releases: https://github.com/bluenviron/mediamtx/releases

  2. 下载 Windows 版本,例如: mediamtx_v1.15.5_windows_amd64.zip

  3. 解压后得到:

mediamtx.exe
mediamtx.yml
  1. 启动服务器 双击 mediamtx.exe 或命令行运行:
mediamtx.exe

image-20251207214340888

启动后控制台会显示服务器监听的端口,例如:

  • RTSP: 8554
  • RTMP: 1935
  • WebRTC: 8889
  • HLS: 8888

此时 MediaMTX 已经是一个可以实时使用的流媒体服务器。

2.2 安装 FFmpeg

  1. 推荐从 gyan.dev 下载 Windows 版本:

Download FFmpeg

image-20251207214151522

  1. 解压得到文件夹,内部包含:
bin/ffmpeg.exe
bin/ffprobe.exe
  1. 添加到环境变量:

“添加 ffmpeg/bin 路径”

验证是否成功:

ffmpeg -version

3. 推流命令深度解析

举例子:将本地视频文件推送到 MediaMTX(RTSP):

ffmpeg -re -stream_loop -1 -i 1111.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/video

下面是逐一解释:

参数 含义
-re 以真实帧率读取输入,模拟实时直播
-stream_loop -1 无限循环播放视频文件
-i 1111+.mp4 输入源,可换成你的实际视频路径
-c copy 直接复制音视频流,不转码 → 极低 CPU 占用
-f rtsp 输出格式是 RTSP 流
rtsp://127.0.0.1:8554/video 推流地址:IP + 端口(8554)+ 流路径

推流成功后,MediaMTX 控制台会显示类似:

RTSP conn opened
RTSP session opened

image-20251207214509267

说明视频已经成功进入服务器。

4. 验证与播放

方法一:使用 VLC 播放

打开 VLC → 媒体 → 打开网络串流 输入:

rtsp://127.0.0.1:8554/video

即可看到实时视频。

方法二:使用 ffplay

ffplay rtsp://127.0.0.1:8554/video

方法三:MediaMTX 自带 WebRTC 播放器

浏览器打开:

http://127.0.0.1:8889

选择“读流(video)”,可以低延迟播放同一个视频流。 (这是 MediaMTX 相对其它 RTSP 服务器非常强的优势。)

5. 进阶配置与技巧

5.1 修改默认端口

编辑 mediamtx.yml

rtspPort: 8554
rtmpPort: 1935
webrtcPort: 8889
hlsPort: 8888

改完重启即可。

5.2 设置推流密码(防止被恶意推流)

paths:
  video:
    publishUser: admin
    publishPass: 123456

推流:

ffmpeg ... rtsp://admin:123456@127.0.0.1:8554/video

5.3 推流 USB 摄像头

ffmpeg -f dshow -i video="USB Camera" -f rtsp rtsp://127.0.0.1:8554/cam

5.4 推流桌面屏幕

ffmpeg -f gdigrab -i desktop -f rtsp rtsp://127.0.0.1:8554/screen

6. 总结

使用 MediaMTX + FFmpeg 搭建 Windows 流媒体服务器大概流程如上,当然还有很多其他的软件,比如 VLC、Nginx + RTMP、SRS、Nimble、OBS 等。

参考:https://github.com/bluenviron/mediamtx