MediaMTX完整上手:1个进程打通RTSP、RTMP、WebRTC、HLS的流媒体互转
2026/9/8 18:19:56 网站建设 项目流程

MediaMTX完整上手:1个进程打通RTSP、RTMP、WebRTC、HLS的流媒体互转

【免费下载链接】mediamtxReady-to-use Media-over-QUIC / SRT / WebRTC / RTSP / RTMP / LL-HLS / MPEG-TS / RTP live media server and media proxy that allows to read, publish, proxy, record and playback real-time video and audio streams.项目地址: https://gitcode.com/GitHub_Trending/me/mediamtx

把摄像头画面放进浏览器、让直播延迟压到秒级以下——先别急着搭转码集群。MediaMTX 是一个零依赖的实时流媒体服务器,读流、推流、协议互转、录制回放在一个进程里全部搞定,装完不用改配置就能开播。

一、一台媒体路由器,把各端协议互相翻译

它的定位是"媒体路由器":本身不生产画面,只负责搬运,输入端说什么格式它都收,输出端要什么格式它都出,中间自动转接。就像小区前台不拆你的包裹,只认门牌号码。核心能力:

  • 五种以上输入输出协议任意组合互通,转换零转码
  • 内置 WebRTC 播放页,浏览器开箱即看
  • fMP4 / MPEG-TS 落盘录制,支持回放
  • 按需拉流、配置热加载

主要协议的编解码支持:

链路视频音频
RTSPH265 / H264 / VP9 / VP8 / AV1 等AAC / MP3 / Opus / G711 等
RTMPH264AAC / MP3
WebRTCH264 / VP9 / VP8 / AV1Opus / G711 / G722
HLSH265 / H264 / VP9 / AV1AAC / Opus
SRTH265 / H264 / MPEG-4 等AAC / MP3 / Opus 等

二、一条命令启动 MediaMTX

单文件可执行,Linux / Windows / macOS / 树莓派通吃,零运行时依赖。最低资源要求:双核 CPU、512MB 内存、约 100MB 磁盘。

形态说明
二进制下载对应平台的单文件即可,最省事
Docker官方镜像 bluenviron/mediamtx:latest
latest-ffmpeg额外内置 FFmpeg,可做二次处理
latest-rpi / latest-ffmpeg-rpi树莓派专用,带摄像头驱动
docker run --rm --network=host bluenviron/mediamtx:latest

启动后日志会逐个列出监听地址,默认端口记住这几行:

服务端口服务端口
RTSP8554RTMP1935
RTP / RTCP (UDP)8000 / 8001HLS8888
WebRTC (HTTP)8889SRT8890
MoQ8892 / 8893API / Metrics9997 / 9998
Playback9996PPROF9999

三、把 RTSP 摄像头直接拉进浏览器播放

改配置文件 mediamtx.yml 的paths段,只加三行:

paths: cam1: source: rtsp://user:pass@摄像头IP:554/stream sourceOnDemand: yes
  • cam1:流的名字,后面所有访问地址都拼它
  • source:上游地址,RTSP / RTMP / HLS / SRT / RTP 都能填
  • sourceOnDemand:有人看才去上游拉,没人看自动断开,省带宽

保存即热加载,不用重启。浏览器打开http://本机地址:8889/cam1出画面,页面来自内置播放器 internal/servers/webrtc/read_index.html。注意 8889 只是握手入口,媒体流走 UDP 8189。

四、OBS 推流,多端同时取用

OBS 的"推流"设置里选"自定义":服务器填rtmp://本机地址:1935,串流密钥填mystream,开始推流。同一路画面立即可被多端取用:

取流地址
VLC / 摄像头回看rtsp://本机地址:8554/mystream
浏览器http://本机地址:8889/mystream
移动端 / 弱网http://本机地址:8888/mystream.m3u8
SRT 专网srt://本机地址:8890?streamid=read:mystream

推流、读取的详细清单可查 docs/2-features/03-publish.md 和 docs/2-features/04-read.md。

五、把直播流录到磁盘,24 小时后自动清掉

paths下给目标流加录制参数:

参数作用建议值
record开启录制yes
recordPath存放路径,支持%path%Y-%m-%d_%H-%M-%S等变量./recordings/%path/%Y-%m-%d_%H-%M-%S
recordFormat容器格式fmp4mpegts
recordSegmentDuration单段时长1h
recordDeleteAfter过期自动删除,0s关闭24h

录好的文件在http://本机地址:9996/在线回放与下载,页面由 internal/playback/server.go 驱动;默认未开启,先把全局playback置为true

六、树莓派摄像头直连:三行配置出画面

MediaMTX 内置了摄像头驱动,树莓派上开箱即用:

paths: rpi_cam: source: rpiCamera rpiCameraWidth: 1920 rpiCameraHeight: 1080 rpiCameraFPS: 30

浏览器访问http://树莓派IP:8889/rpi_cam。还有 HFlip / 曝光 / 对焦 / 硬编 H264 等几十个旋钮,全列在 docs/5-references/1-configuration-file.md。

七、遇到坑时,30 秒排查表

  • WebRTC 握手不通:在配置里加一条webrtcICEServers2,填stun:stun.l.google.com:19302,让对端知道本机公网出口;服务器在 NAT 后有公网 IP,就补进webrtcAdditionalHosts;确认 UDP 8189 没被防火墙拦。
  • HLS 延迟偏高:调小hlsSegmentDuration(如 1s)与hlsPartDuration(如 200ms),分段越小播放延迟越低;再检查链路上带宽是否够。
  • 拉不动上游sourceOnDemand: yes时首个读请求有等待窗口,超过sourceOnDemandStartTimeout(默认 10s)就放弃,先确认上游地址和凭据本身可达。

八、下一步去哪

  • Control APIapi: true,端口 9997):改配置、看路径状态、在线增删路径,实现见 internal/api/api.go
  • 事件钩子:推流、读取、录制等节点触发外部命令,适合接告警与业务逻辑
  • 指标与鉴权:Prometheus 格式监控;内置账号、HTTP 外部鉴权、JWT 三选一
  • 规模化:读写分离 + 代理,多节点分摊一路大流量

动手顺序建议:先打开 API 面板看路径状态,再给主路加一条录制规则,最后挑一个 hooks 事件写第一条命令。更多细节按 docs/ 目录逐节读即可。

【免费下载链接】mediamtxReady-to-use Media-over-QUIC / SRT / WebRTC / RTSP / RTMP / LL-HLS / MPEG-TS / RTP live media server and media proxy that allows to read, publish, proxy, record and playback real-time video and audio streams.项目地址: https://gitcode.com/GitHub_Trending/me/mediamtx

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询