首页 新能源汽车

CentOS 7 完美部署 MediaMTX:从入门到精通实战指南

字数: (4999)
阅读: (4559)
内容摘要:CentOS 7 完美部署 MediaMTX:从入门到精通实战指南,

最近在项目中需要搭建一个流媒体服务器,经过调研,选择了轻量级的 MediaMTX。MediaMTX 是一个使用 Go 语言编写的 RTSP/RTMP/HLS 服务器,功能强大且配置简单。但是,在 CentOS 7 上安装 MediaMTX 时,还是遇到了一些坑。本文将分享我在 CentOS 7 上安装 MediaMTX 的完整过程,以及一些实战经验,帮助大家避免踩坑。

1. 准备工作

1.1 环境准备

首先,需要一台安装了 CentOS 7 的服务器。建议使用最小化安装,然后安装必要的工具:

# 更新 yum 仓库
sudo yum update -y

# 安装 wget、vim 等常用工具
sudo yum install -y wget vim git

1.2 下载 MediaMTX

从 GitHub Releases 页面下载最新版本的 MediaMTX 二进制文件。我这里选择的是 Linux 64 位版本:

wget https://github.com/bluenviron/mediamtx/releases/download/v1.3.1/mediamtx_v1.3.1_linux_amd64.tar.gz # 注意替换为最新版本

tar -zxvf mediamtx_v1.3.1_linux_amd64.tar.gz

cd mediamtx_v1_3_1_linux_amd64 # 进入解压目录

2. 安装与配置 MediaMTX

2.1 移动 MediaMTX 可执行文件

mediamtx 可执行文件移动到 /usr/local/bin 目录下,并赋予执行权限:

sudo mv mediamtx /usr/local/bin/
sudo chmod +x /usr/local/bin/mediamtx

2.2 创建 MediaMTX 配置文件

/etc 目录下创建 mediamtx.yml 配置文件:

CentOS 7 完美部署 MediaMTX:从入门到精通实战指南
sudo mkdir /etc/mediamtx
sudo vim /etc/mediamtx/mediamtx.yml

一个简单的 mediamtx.yml 配置文件如下:

paths:
  all:
    source: rtsp
    sourceProtocol: tcp

这个配置表示 MediaMTX 将监听所有 RTSP 流,并使用 TCP 协议。

2.3 创建 Systemd 服务

为了方便管理 MediaMTX,创建一个 Systemd 服务文件:

sudo vim /etc/systemd/system/mediamtx.service

mediamtx.service 文件的内容如下:

CentOS 7 完美部署 MediaMTX:从入门到精通实战指南
[Unit]
Description=MediaMTX RTSP server
After=network.target

[Service]
User=root # 建议使用非 root 用户
WorkingDirectory=/usr/local/bin
ExecStart=/usr/local/bin/mediamtx /etc/mediamtx/mediamtx.yml
Restart=on-failure

[Install]
WantedBy=multi-user.target

2.4 启动 MediaMTX 服务

启动 MediaMTX 服务,并设置开机自启:

sudo systemctl daemon-reload
sudo systemctl enable mediamtx
sudo systemctl start mediamtx

2.5 检查 MediaMTX 运行状态

使用以下命令检查 MediaMTX 的运行状态:

sudo systemctl status mediamtx

如果一切正常,应该看到 MediaMTX 正在运行。

3. 防火墙设置

MediaMTX 默认监听 8554 端口,需要在防火墙中开放该端口:

CentOS 7 完美部署 MediaMTX:从入门到精通实战指南
sudo firewall-cmd --zone=public --add-port=8554/tcp --permanent
sudo firewall-cmd --reload

4. 实战避坑经验

4.1 使用非 Root 用户运行 MediaMTX

为了安全起见,建议使用非 Root 用户运行 MediaMTX。可以创建一个专门的用户,并修改 mediamtx.service 文件中的 User 字段。

4.2 配置 HTTPS

如果需要使用 HTTPS,可以参考官方文档进行配置。需要生成 SSL 证书,并在 mediamtx.yml 文件中配置证书路径。

4.3 监控 MediaMTX 性能

可以使用 Prometheus 和 Grafana 监控 MediaMTX 的性能。MediaMTX 提供了 Prometheus 指标,可以直接集成。

4.4 优化 RTSP 推流

如果发现 RTSP 推流不稳定,可以尝试调整 mediamtx.yml 文件中的 sourceProtocol 选项,例如改为 udptcp

CentOS 7 完美部署 MediaMTX:从入门到精通实战指南

4.5 搭配 Nginx 反向代理

如果需要将 MediaMTX 暴露在公网上,建议使用 Nginx 进行反向代理,可以提高安全性并实现负载均衡。Nginx 配置中需要注意设置合适的 proxy_passproxy_set_header 指令,并且根据实际情况调整 client_max_body_size 等参数,以避免大文件上传失败的问题。

5. 常见问题

5.1 MediaMTX 启动失败

检查 mediamtx.yml 配置文件是否正确,以及端口是否被占用。使用 journalctl -xe mediamtx 命令查看 MediaMTX 的日志,可以找到错误信息。

5.2 RTSP 流无法播放

检查防火墙是否开放了 8554 端口,以及 RTSP 推流地址是否正确。可以使用 VLC 等工具测试 RTSP 流是否可用。

5.3 MediaMTX 崩溃

检查服务器的内存和 CPU 使用情况,如果资源不足,可能会导致 MediaMTX 崩溃。可以尝试优化 MediaMTX 的配置,例如减少并发连接数。

6. 总结

本文详细介绍了在 CentOS 7 上安装 MediaMTX 的完整过程,以及一些实战经验。希望能够帮助大家顺利搭建自己的流媒体服务器。MediaMTX 是一个非常强大的工具,可以应用于各种场景,例如视频监控、直播、点播等。合理配置 MediaMTX,可以满足各种流媒体需求。

CentOS 7 完美部署 MediaMTX:从入门到精通实战指南

转载请注明出处: 代码一只喵

本文的链接地址: http://m.acea2.store/blog/570418.SHTML

本文最后 发布于2026-04-01 22:38:44,已经过了25天没有更新,若内容或图片 失效,请留言反馈

()
您可能对以下文章感兴趣
评论
  • 真香警告 6 天前
    这个配置真不错,我之前一直用的宝塔面板,现在试试命令行部署。
  • 折耳根yyds 4 天前
    感谢分享!最近也在研究 MediaMTX,正需要这样的文章。