🎯 在 Debian 系统上安装与配置 MediaMTX(原 rtsp-simple-server):打造轻量级流媒体服务器
作者:远在太平洋
环境:Debian 10/11/12 | Ubuntu 可参考
关键词:MediaMTX、rtsp-simple-server、RTSP、RTMP、HLS、WebRTC、流媒体服务器、Debian 安装教程
随着视频监控、直播推拉流等场景的普及,搭建一个简单高效、功能完整的流媒体服务器变得越来越重要。而 MediaMTX(前身是 rtsp-simple-server
)正是这样一个开源神器!
它支持 RTSP、RTMP、HLS、SRT、WebRTC 等多种协议,开箱即用,无需复杂依赖,非常适合用于树莓派、VPS 或本地开发测试。
本文将手把手教你如何在 Debian 系统上部署并使用 MediaMTX,涵盖两种主流安装方式(推荐二进制安装),以及基础推拉流测试和配置说明。
🔧 方法一:使用预编译二进制文件(推荐 ✅)
这是官方最推荐的方式,无需编译,直接运行,适合绝大多数用户。
步骤 1️⃣:访问 GitHub 发布页
前往 MediaMTX 的 GitHub 发布页面,获取最新稳定版本:
🔗 https://github.com/mediamtx/mediamtx/releases
⚠️ 注意:项目已从
bluenviron/rtsp-simple-server
迁移至mediamtx/mediamtx
,请认准新地址。
步骤 2️⃣:下载对应架构的压缩包
根据你的设备选择合适的版本:
设备类型 | 下载文件 |
---|---|
x86_64 / AMD64(PC/VPS) | mediamtx_vX.X.X_linux_amd64.tar.gz |
树莓派 4 / ARMv7 | mediamtx_vX.X.X_linux_arm7.tar.gz |
树莓派 3 / ARMv6 | mediamtx_vX.X.X_linux_arm6.tar.gz |
树莓派 64位系统 / ARM64 | mediamtx_vX.X.X_linux_arm64.tar.gz |
使用 wget
命令下载(以 v1.14.0 amd64 为例):
wget https://github.com/mediamtx/mediamtx/releases/download/v1.14.0/mediamtx_v1.14.0_linux_amd64.tar.gz
步骤 3️⃣:解压文件
tar xvf mediamtx_v1.14.0_linux_amd64.tar.gz
解压后你会看到两个关键文件:
mediamtx
:主程序可执行文件mediamtx.yml
:默认配置文件
步骤 4️⃣:安装到系统目录(推荐)
为了管理方便,建议将文件移动到标准路径:
# 创建配置目录
sudo mkdir -p /etc/mediamtx
# 移动二进制文件
sudo mv mediamtx /usr/local/bin/
# 移动配置文件
sudo mv mediamtx.yml /etc/mediamtx/
# 赋予执行权限
sudo chmod +x /usr/local/bin/mediamtx
步骤 5️⃣:创建 Systemd 服务(实现开机自启)
为了让 MediaMTX 后台运行并随系统启动,我们创建一个 systemd 服务。
sudo nano /etc/systemd/system/mediamtx.service
粘贴以下内容:
[Unit]
Description=MediaMTX - SRT/WebRTC/RTSP/RTMP/LL-HLS 流媒体服务器
After=network.target
[Service]
Type=simple
User=nobody
Group=nogroup
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/mediamtx /etc/mediamtx/mediamtx.yml
[Install]
WantedBy=multi-user.target
保存并退出(Ctrl+X → Y → Enter
)。
步骤 6️⃣:启动并启用服务
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start mediamtx
# 设置开机自启
sudo systemctl enable mediamtx
# 查看状态
sudo systemctl status mediamtx
✅ 如果输出中包含 active (running)
,说明服务已成功启动!
💻 方法二:从源码编译安装(适用于开发者)
如果你希望体验最新功能或进行二次开发,可以选择源码编译。
步骤 1️⃣:安装 Go 环境
sudo apt update
sudo apt install golang-go git -y
步骤 2️⃣:克隆并编译
git clone https://github.com/mediamtx/mediamtx.git
cd mediamtx
go build -o mediamtx .
编译完成后,当前目录会生成 mediamtx
和 mediamtx.yml
。
后续操作与方法一相同:移动文件 → 创建服务 → 启动服务。
📡 操作与测试:推流 & 拉流
MediaMTX 默认监听以下端口:
协议 | 端口 | 说明 |
---|---|---|
RTSP | 554 (TCP), 8000 (UDP) | 实时流传输协议 |
RTMP | 1935 | 直播常用推流协议 |
HLS | 8888 | HTTP 直播流,支持网页播放 |
WebRTC | 8889 | 低延迟实时通信 |
API/UI | 9997 | Web 管理界面 |
🛡️ 若使用了防火墙(如 ufw),需放行相关端口:
sudo ufw allow 554/tcp sudo ufw allow 1935/tcp sudo ufw allow 8888/tcp sudo ufw allow 9997/tcp
1️⃣ 推流测试(使用 FFmpeg)
准备一个本地视频文件(如 my_video.mp4
),使用 FFmpeg 推流:
推送到 RTMP:
ffmpeg -re -stream_loop -1 -i my_video.mp4 -c copy -f flv rtmp://你的服务器IP/mylive/mystream
推送到 RTSP:
ffmpeg -re -stream_loop -1 -i my_video.mp4 -c copy -f rtsp rtsp://你的服务器IP/mylive/mystream
📌 参数说明:
-re
:按原始帧率读取-stream_loop -1
:无限循环播放mylive
:路径名(可自定义)mystream
:流密钥(可自定义)
2️⃣ 拉流播放
使用 VLC、FFplay 或浏览器(HLS)播放:
协议 | 播放地址 |
---|---|
RTMP | rtmp://你的服务器IP/mylive/mystream |
RTSP | rtsp://你的服务器IP/mylive/mystream |
HLS | http://你的服务器IP:8888/mylive/mystream/index.m3u8 |
例如,使用 ffplay
测试:
ffplay rtsp://127.0.0.1/mylive/mystream
3️⃣ 查看服务器状态(Web UI)
MediaMTX 提供了一个简洁的 Web 管理界面,访问:
🌐 http://你的服务器IP:9997
你可以在这里查看:
- 当前活跃的推流
- 正在观看的客户端
- 实时带宽、编码信息等
非常适合作为监控面板使用!
⚙️ 配置文件详解(/etc/mediamtx/mediamtx.yml)
默认配置允许匿名推拉流,适合测试。但在生产环境中,建议修改配置以增强安全性。
常见配置项包括:
- ✅ 认证机制:设置用户名密码
- ✅ 路径限制:只允许特定路径推流
- ✅ TLS/SSL:启用 HTTPS 和加密流
- ✅ 录制功能:自动保存流到本地
- ✅ 外部程序钩子:推流开始/结束时触发脚本
🔧 完整配置说明请参考官方 Wiki:
🔗 https://github.com/mediamtx/mediamtx/wiki
✅ 总结
通过本文,你已经成功在 Debian 系统上部署了一个功能强大的流媒体服务器 —— MediaMTX!
它不仅轻量、易用,还支持多协议互通,无论是做 摄像头接入、直播中转、还是 WebRTC 低延迟应用,都非常合适。
📌 常见问题 FAQ
Q1:为什么推流失败?提示连接被拒绝?
A:检查防火墙是否放行 554、1935 等端口,或使用 netstat -tuln | grep 554
确认服务是否监听。
Q2:如何实现身份验证?
A:编辑 mediamtx.yml
,添加 paths:
和 readUsers
/ writeUsers
配置。
Q3:支持 H.265 编码吗?
A:支持!只要推流端发送的是标准 H.265 流即可,MediaMTX 不做转码。
Q4:能否跨平台使用?
A:当然!MediaMTX 支持 Linux、Windows、macOS、Docker,甚至 Android(Termux)。
🌟 结语
MediaMTX 是目前最简洁高效的开源流媒体方案之一。相比 Nginx-RTMP、Wowza 等重型方案,它更适合个人开发者和边缘设备部署。
赶快动手试试吧!欢迎在评论区交流使用心得~ 😊
👍 如果你觉得这篇文章对你有帮助,别忘了点赞、收藏、关注,让更多人看到!
版权声明:本文原创,转载请注明出处及作者链接。
GitHub 示例代码:https://github.com/yourname/mediamtx-setup(可选)
💡 延伸阅读: