Debian 系統上安裝與配置 MediaMTX


🎯 在 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 / ARMv7mediamtx_vX.X.X_linux_arm7.tar.gz
樹莓派 3 / ARMv6mediamtx_vX.X.X_linux_arm6.tar.gz
樹莓派 64位系統 / ARM64mediamtx_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 .

編譯完成后,當前目錄會生成 mediamtxmediamtx.yml

后續操作與方法一相同:移動文件 → 創建服務 → 啟動服務


📡 操作與測試:推流 & 拉流

MediaMTX 默認監聽以下端口:

協議端口說明
RTSP554 (TCP), 8000 (UDP)實時流傳輸協議
RTMP1935直播常用推流協議
HLS8888HTTP 直播流,支持網頁播放
WebRTC8889低延遲實時通信
API/UI9997Web 管理界面

🛡? 若使用了防火墻(如 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?? 拉流播放

使用 VLCFFplay 或瀏覽器(HLS)播放:

協議播放地址
RTMPrtmp://你的服務器IP/mylive/mystream
RTSPrtsp://你的服務器IP/mylive/mystream
HLShttp://你的服務器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(可選)


💡 延伸閱讀

  • MediaMTX 官方文檔
  • FFmpeg 推流參數詳解
  • 樹莓派搭建監控服務器實戰

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/922203.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/922203.shtml
英文地址,請注明出處:http://en.pswp.cn/news/922203.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分布式專題——10.4 ShardingSphere-Proxy服務端分庫分表

1 為什么要有服務端分庫分表? ShardingSphere-Proxy 是 ShardingSphere 提供的服務端分庫分表工具,定位是“透明化的數據庫代理”。 它模擬 MySQL 或 PostgreSQL 的數據庫服務,應用程序(Application)只需像訪問單個數據…

Mysql相關的面試題1

什么是聚集索引(聚簇索引)?什么是二級索引(非聚簇索引)? 聚集索引就是葉子節點關聯行數據的索引,二級索引就是葉子節點關聯主鍵的索引,聚集索引必須有且僅有一個,二級索引…

電涌保護器:為現代生活筑起一道隱形防雷網

何為電涌保護器?電涌保護器(Surge Protective Device,簡稱SPD)主要用于控制信號系統,保護電氣電子設備信號線路免受雷電電磁脈沖、感應過電壓、操作過電壓的影響,廣泛應用于工控、消防、安防監控、交通、電…

【uniapp微信小程序】掃普通鏈接二維碼打開小程序

需求:用戶A保存自己的邀請碼海報,用戶B掃描該普通連接二維碼,打開微信小程序,并且攜帶用戶A的邀請碼信息,用戶B登錄時,跟用戶A關聯,成為用戶A的下級。 tips:保存海報到手機相冊可以參…

LeetCode 378 - 有序矩陣中第 K 小的元素

文章目錄摘要描述題解答案題解代碼分析代碼解析示例測試及結果輸出結果時間復雜度空間復雜度總結摘要 在開發中,我們經常遇到需要處理大規模有序數據的場景,比如數據庫分頁、排行榜查詢、或者處理排序過的矩陣。LeetCode 第 378 題“有序矩陣中第 K 小的…

【Lua】Windows 下編寫 C 擴展模塊:VS 編譯與 Lua 調用全流程

? 目錄 ?🛫 導讀需求環境1?? 核心原理:Windows下Lua與C的交互邏輯2?? Windows下編寫步驟:以mymath模塊為例2.1 步驟1:準備Windows開發環境方式1:官網下載Lua源碼并編譯(可控性高)方式2&am…

Python快速入門專業版(二十九):函數返回值:多返回值、None與函數嵌套調用

目錄引一、多返回值:一次返回多個結果的優雅方式1. 多返回值的本質:隱式封裝為元組示例1:返回多個值的函數及接收方式2. 多返回值的接收技巧技巧1:用下劃線_忽略不需要的返回值技巧2:用*接收剩余值(Python …

python使用pip安裝的包與卸載

1:基本卸載命令 # 卸載單個包 pip uninstall package_name# 示例:卸載requests包 pip uninstall requests2:卸載多個包 # 一次性卸載多個包 pip uninstall package1 package2 package3# 示例 pip uninstall requests numpy pandas3&#xff1…

超級流水線和標量流水線的原理

一、什么是流水線?要理解這兩個概念,首先要明白流水線(Pipelining) 的基本思想。想象一個汽車裝配工廠:* 沒有流水線:一個工人負責組裝一整輛汽車,裝完一輛再裝下一輛。效率很低。* 有了流水線&…

【Ansible】管理復雜的Play和Playbook知識點

1.什么是主機模式?答:主機模式是Ansible中用于從Inventory中篩選目標主機的規則,通過靈活的模式定義可精準定位需要執行任務的主機。2.主機模式的作用答:篩選目標:從主機清單中選擇一個或多個主機/組,作為P…

FastGPT源碼解析 Agent 智能體應用創建流程和代碼分析

FastGPT對話智能體創建流程和代碼分析 平臺作為agent平臺,平臺所有功能都是圍繞Agent創建和使用為核心的。平臺整合各種基礎能力,如大模型、知識庫、工作流、插件等模塊,通過可視化,在界面上創建智能體,使用全部基礎能…

缺失數據處理全指南:方法、案例與最佳實踐

如何處理缺失數據:方法、案例與最佳實踐 1. 引言 在數據分析和機器學習中,缺失數據是一個普遍存在的問題。如何處理缺失值,往往直接影響到后續分析和建模的效果。處理不當,不僅會浪費數據,還可能導致模型預測結果的不準…

為什么Cesium不使用vue或者react,而是 保留 Knockout

1. Knockout-ES5 插件的語法簡化優勢 自動深度監聽:Cesium 通過集成 Knockout-ES5 插件,允許開發者直接使用普通變量語法(如 viewModel.property newValue)替代繁瑣的 observable() 包裝,無需手動聲明每個可觀察屬性。…

Word怎么設置頁碼總頁數不包含封面和目錄頁

有時候使用頁碼格式是[第x頁/共x頁]或[x/x]時會遇到word總頁數和實際想要的頁數不一致,導致顯示不統一,這里介紹一個簡單的辦法,適用于比較簡單的情況。 一、wps版本 文章分節 首先將目錄頁與正文頁進行分節:在目錄頁后面選擇插入…

突破機器人通訊架構瓶頸,CAN/FD、高速485、EtherCAT,哪種總線才是最優解?

引言: 從協作機械臂到人形機器人,一文拆解主流總線技術選型困局 在機器人技術飛速發展的今天,從工廠流水線上的協作機械臂到科技展會上的人形機器人,它們的“神經系統”——通訊總線,正面臨著前所未有的挑戰。特斯拉O…

Java核心概念詳解:JVM、JRE、JDK、Java SE、Java EE (Jakarta EE)

1. Java是什么? Java首先是一種編程語言。它擁有特定的語法、關鍵字和結構,開發者可以用它來編寫指令,讓計算機執行任務。核心特點: Java最著名的特點是“一次編寫,到處運行”(Write Once, Run Anywhere - …

OSPF高級技術 相關知識點

1.多區域OSPFospf 設計多區域原因:① 每個區域的路由器只需同步自己所在區域的鏈路狀態數據庫,分區域設 計可以使得每個區域的鏈路狀態數據庫得以減少。以降低路由器cpu、內存 的消耗。② 避免某區域內的網絡故障(例如:接口頻繁up…

Linux / Windows 下連續發送多幀 8 字節指令,下位機只響應第一幀,第二幀“丟失”。

串口編程易錯點筆記 基于 serial::Serial(wjwwood serial 庫) 場景:Linux / Windows 下連續發送多幀 8 字節指令,下位機只響應第一幀,第二幀“丟失”。1. 現象 serial::Serial ser("/dev/ttyUSB0", 115200);…

三十九、案例-配置文件-參數配置化(了解即可,現在主流使用yml配置文件)

參數配置化-問題引出參數配置化-問題解決參數配置化-代碼與過程解析代碼: AliOSSUtils(工具類) package com.itheima.utils;import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import org.springframework.beans.factory.…

Linux之virtio實現原理--pci 基礎

一、概述 virtio設備可以基于不同總線來實現,本文介紹基于pci實現的virtio-pci設備。以virtio-blk為例,首先介紹PCI配置空間內容,virtio-pci實現的硬件基礎——capability,最后分析PIC設備的初始化以及virtio-pci設備的初始化。 …