ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

MediaMTX 快速上手:三行配置搞定 RTSP 转 WebRTC

MediaMTX 快速上手:三行配置搞定 RTSP 转 WebRTC MediaMTX 快速上手三行配置搞定 RTSP 转 WebRTC【免费下载链接】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/mediamtxMediaMTX 是一款多协议流媒体服务器单个程序同时监听 RTSP、RTMP、WebRTC、HLS、SRT 五种协议任何一路协议推进来的媒体都能从另一种协议读出去。如果你的需求是把安防摄像头画面搬进浏览器、让 OBS 的一路推流变成多端可播或者要把直播流留下来存盘这个工具都能覆盖。你可以把它理解成一台媒体路由器流从一侧进来换几种格式从另一侧出去中间不用额外写转码程序。下面用一路真实流串起完整流程部署、接入、多端观看、录制最后扫一遍常见坑。先对场景MediaMTX 适合解决哪些需求动手写配置前先对照一下你的需求长不长这样安防取流摄像头只会推 RTSP摄像头最常用的实时流协议而你要在浏览器里看把源地址填进服务器网页端直接打开画面。推流分发OBS 推一路 RTMP网络直播最常用的推流协议服务器同时给出 WebRTC浏览器原生支持的低延迟协议、HLS基于 HTTP 分片的点播式协议、RTSP 三个出口。低延迟观看WebRTC 播放延迟通常在一秒内比传统分片方案体验好得多HLS 也有 LL低延迟模式可用。录像与回放流可以按 fMP4 / MPEG-TS广播传输常用容器分段存盘按保留期自动清理。确认需求对得上下一步先把服务跑起来。两条命令跑起 MediaMTX硬件门槛不高双核 CPU、512MB 内存就够用。安装分两条路径任选其一二进制安装./mediamtx拿到对应系统的发布包后直接执行单一可执行文件同目录的mediamtx.yml即配置文件全部默认值即可用。Docker 安装docker run --rm -it --networkhost bluenviron/mediamtx:latest需要调用 FFmpeg 等外部工具时换成latest-ffmpeg镜像变体即可。终端里看到server is ready说明启动完成。服务起来了接下来接入第一路真实的流。接一路 RTSP 摄像头在浏览器里看它MediaMTX 的核心概念是路径path每条路径代表一路流路径名就是读取它的钥匙。以把摄像头转成网页流为例在 mediamtx.yml 的paths块下加三行paths: camera: source: rtsp://user:pass192.168.1.100:554/stream sourceOnDemand: yessourceOnDemand: yes表示有人观看才向摄像头拉流最后一个人离开 10 秒后断开省带宽。其余配置项保持默认即可。保存后重启./mediamtx再按下表验证WebRTC 那行能出画面就算整条链路通了协议地址说明WebRTChttp://localhost:8889/camera内置网页播放页浏览器直接打开RTSPrtsp://localhost:8554/cameraVLC、FFmpeg 等播放器可打开HLShttp://localhost:8888/camera/index.m3u8分片播放兼容性最好SRTsrt://localhost:8890?streamidread:camera基于 UDP 的传输协议弱网更抗造能看了之后紧接着要考虑的就是把流留下来。把流变成录像文件四行配置加自动清理录像功能很直白在对应路径下追加四行record: yes recordPath: ./recordings/%path/%Y-%m-%d_%H-%M-%S recordFormat: fmp4 recordDeleteAfter: 7drecordPath里的%path和日期变量会让文件按“流名 日期”自动归档成目录recordDeleteAfter: 7d表示分段完成 7 天后自动删除不用手写清理脚本。若希望在线回看把playback: true打开访问http://localhost:9996/该服务源码在 internal/playback/。观看和留存都齐了最后熟悉几个大概率会踩的坑。卡住了先查这五个坑WebRTC 页面转圈连不上→ 多半是防火墙拦了 MediaMTX 的 WebRTC 数据通道 UDP 8189放行该端口客户端与服务器不同网段时再在webrtcICEServers2加一个公网 STUN。RTSP 源拉流超时→ 摄像头要求鉴权或 UDP 被阻断在source地址上补上账号密码或用rtspTransport: tcp强制走 TCP。OBS 在直播但浏览器 404→ 路径名没对上推流密钥写的是mystream观看地址里也必须用mystream。HLS 播放感觉延迟高→ 确认没有覆盖默认的低延迟参数hlsSegmentDuration: 1s、hlsPartDuration: 200ms保持原样。录像目录是空的→ 该路径还没有活跃流录制只在流被发布或拉取时进行也检查配置是否写错层级被pathDefaults覆盖。端口被占用→ 所有监听端口在mediamtx.yml中都能单独改如rtspAddress、rtmpAddress改一行重启即可。环境顺了之后就可以给服务器加程序化控制和权限了。进阶方向四扇门各一句话到这里一台可用的多协议流媒体服务器已经搭完一个配置文件搞定转协议、多端观看和录像。Control API把api: true打开用 HTTP 查询路径状态、上下线信息细节见 docs/5-references/2-control-api.md。事件钩子流上线、读写者变化、分段完成等事件都能触发 shell 命令参考 internal/hooks/。认证通过authInternalUsers给用户分配推流 / 读取权限控制哪些路径对外开放。多实例与分发结合forward转发和代理能力做多实例分发架构思路见文档中的架构一章。【免费下载链接】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),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进