文章目錄
- 一、簡介
- 二、安裝及使用
- 三、創建系統服務
- 小結
一、簡介
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-Service After=network.target StartLimitIntervalSec=0 StartLimitBurst=5[Service] ExecStart=/home/xxx/mediamtx/mediamtx Restart=always RestartSec=0 WorkingDirectory=/home/xxx/mediamtx StandardOutput=append:/mnt/logs/mediamtx.log StandardError=append:/mnt/logs/mediamtx_error.log User=root Group=root[Install] WantedBy=multi-user.target
-
由于
mediamtx.service
指定了用戶和組為root
,所以需要確保文件所屬對應的用戶和組。讀寫權限一般是644
就可以。sudo chown root:root /etc/systemd/system/mediamtx.service sudo chown root:root /mnt/logs/*.log
-
配置生效并設置開機自啟。如果有 docker 的話,最好是將 mediamtx 安裝并運行在宿主機中,讓容器中的程序推送
RTSP
流到宿主機IP
上的 mediamtx。另外,啟動服務的時候要確認相關端口沒有被占用,例如8888
端口。# 重新加載 systemd 服務列表 sudo systemctl daemon-reexec sudo 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
小結
上述內容均參考官網及個人實踐,如有其他問題歡迎在評論區討論,謝謝!!