Ubuntu 环境下创建并启动一个 MediaMTX 的 systemd 服务
文章目录
- 一、简介
- 二、安装及使用
- 三、创建系统服务
- 小结
一、简介
MediaMTX 是一个现代、高性能、跨平台的 流媒体服务器,主要用于接收、转发、转码和分发 音视频流,支持多种协议。它的前身是 rtsp-simple-server,后来重命名为 MediaMTX,功能也变得更全面,不再局限于 RTSP。
二、安装及使用
- 参考github官网,选择合适的版本下载,解压后包含一个许可协议、一个
mediamtx可执行程序以及一个yml配置文件。

- 参考官方主页,使用指令
./mediamtx启动服务。但这样在前台中不利于生产环境使用,所以一般会创建mediamtx服务,这样可以更稳定、可控、自动化运行。

三、创建系统服务
-
在
/etc/systemd/system目录下创建mediamtx.service文件并粘贴如下内容,ExecStart修改为实际的可执行文件路径,WorkingDirectory修改为可执行文件所在目录,在想要存放 日志文件 的目录下创建mediamtx.log和mediamtx_error.log这两个文件并修改路径。[Unit]Description=mediamtx-ServiceAfter=network.targetStartLimitIntervalSec=0StartLimitBurst=5[Service]ExecStart=/home/xxx/mediamtx/mediamtxRestart=alwaysRestartSec=0WorkingDirectory=/home/xxx/mediamtxStandardOutput=append:/mnt/logs/mediamtx.logStandardError=append:/mnt/logs/mediamtx_error.logUser=rootGroup=root[Install]WantedBy=multi-user.target -
由于
mediamtx.service指定了用户和组为root,所以需要确保文件所属对应的用户和组。读写权限一般是644就可以。sudo chown root:root /etc/systemd/system/mediamtx.servicesudo chown root:root /mnt/logs/*.log -
配置生效并设置开机自启。如果有 docker 的话,最好是将 mediamtx 安装并运行在宿主机中,让容器中的程序推送
RTSP流到宿主机IP上的 mediamtx。另外,启动服务的时候要确认相关端口没有被占用,例如8888端口。# 重新加载 systemd 服务列表sudo systemctl daemon-reexecsudo systemctl daemon-reload# 启用开机启动sudo systemctl enable mediamtx.service# 立即启动服务(可选)sudo systemctl start mediamtx.service# 查看状态sudo systemctl status mediamtx.service -
正常启动后,查看服务状态如下,如有
Failed、error、exited等关键词,可以在日志文件中查看具体原因。

-
可以在
docker内通过ffmpeg指令测试将视频文件推流到 MediaMTX,并通过 VLC 拉取视频流验证传输是否正常。ffmpeg -re -i xxx.mp4 -c copy -f rtsp rtsp://mediamtx宿主机的ip:8554/live/stream1
小结
上述内容均参考官网及个人实践,如有其他问题欢迎在评论区讨论,谢谢!!


