资讯动态

5 分钟跑通 MediaMTX:一个二进制的多协议流媒体转发服务器

发布时间:2026/10/22 7:19:40 来源:尧图企业网站定制
5 分钟跑通 MediaMTX一个二进制的多协议流媒体转发服务器【免费下载链接】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摄像头只说 RTSP网页端想要低延迟录像系统要 HLS第三方平台要 RTMP——按传统做法每两种协议之间的转换都得堆一层中间件。MediaMTX 是一个用 Go 编写的实时流媒体服务器和媒体代理编译后是单个二进制文件无运行时依赖RTSP8554、RTMP1935、HLS8888、WebRTC8889、SRT8890五种协议默认全部开启不需要任何配置。一句话概括推一路流进去上面任意协议都能读出来。先建立心智模型一个只说内部格式的多协议枢纽说白了把它当成一部交换机发布端用什么协议RTSP、RTMP、WebRTC、SRT都行数据进来先被拆成统一的内部格式读取端接线的瞬间数据再被重新封装成它要的协议HLS、RTSP、WebRTC…。不做转码只做重封装所以快且无损失。每一路流有唯一的名字配置里叫 path发布端往这个名字里写数据读取端不管走哪种协议都从同一个名字里取流一断这个路径就自动消失。源码对应三个位置internal/servers/是协议接入层RTSP、RTMP、HLS、WebRTC、SRT 各占一个子目录负责与客户端握手和收发internal/protocols/是编解码层把协议数据帧和内部媒体格式互相转换internal/core/path_manager.go是管理中枢负责把一路流的唯一发布源和任意多个读取端挂在一起认证、录制、转发策略都从这里分发。Docker 一行命令部署FFmpeg 推一路流生产环境推荐 Docker:1镜像标签对应最新稳定版docker run --rm -it \ -p 8554:8554 -p 1935:1935 -p 8888:8888 -p 8889:8889 \ bluenviron/mediamtx:1再用 FFmpeg 把一个本地视频循环推成 RTSP 流ffmpeg -re -stream_loop -1 -i file.mp4 -c copy \ -f rtsp rtsp://localhost:8554/mystream验证是否跑通浏览器打开http://localhost:8888/mystream出现画面即说明 HLS 转发链路已通或者让 VLC 直接播放rtsp://localhost:8554/mystream也行。同一路流、同一个名字两种协议同时读、互不影响这就是它的基本用法。三个最值得配的场景RTSP 摄像头接入浏览器安防摄像头只会说 RTSP而前端要低延迟播放。在mediamtx.yml的paths下给该路径加一行source: rtsp://user:pass摄像头IP/stream1MediaMTX 会持续拉流并完成协议适配。你得到的是 WebRTC 播放地址http://主机:8889/路径名和 LL-HLS 地址http://主机:8888/路径名hlsVariant默认就是lowLatency变体延迟通常在秒级。直播顺手录制历史按时间段回看路径级开启record: yesrecordFormat在fmp4和mpegts之间选文件按recordPath模板默认./recordings/%path/%Y-%m-%d_%H-%M-%S-%f_%z自动分段落盘recordDeleteAfter控制保留期默认 1 天。再全局打开playback: true9996 端口会起一个独立的回放服务历史录像可按时间段拖动观看实现在internal/playback/。按需拉流与转发到第三方系统流不常在线时给路径配sourceOnDemand: yes有人读才拉流、没人读自动断开省上游带宽。需要把流推给别家平台时forward列表支持 RTSP、RTMP、SRT、WebRTC WHIP 等目标一条配置完成到外部服务器的推送。上线前要碰的三件事认证、指标与多节点认证默认authMethod: internal凭据写在authInternalUsers里按publish/read/playback三种动作分配权限可用正则和 IP 白名单限制到具体路径对接现有身份体系时改成 JWTauthJWTJWKS指向 JWKS 地址或 HTTP 回调authHTTPAddress均可。观测metrics: true打开 9998 端口的 Prometheus 接口api: true打开 9997 端口的 Control API可在线增删路径、查看状态不必改配置重启。多节点单机带宽不够时用runOnDemand或 Control API 把远端流 URL 动态注册为路径让边缘节点各自承接就近流量分布式拓扑见docs/2-features/18-scalability.md。排障手册三个高频现象与解法Docker 里 RTSP 用 UDP 读不到流→ 容器网络会改写 UDP 包的源地址信息导致服务判断客户端出错 → 启动时加-e MTX_RTSPTRANSPORTStcp强制走 TCP或用--networkhost绕过容器网络栈。WebRTC 握手成功但黑屏→ 8889 的 HTTP 连上了UDP 媒体面不通 → 把宿主机对客户端可见的 IP 填进webrtcAdditionalHosts并确认防火墙放行了 UDP 8189 端口。RTSP 摄像头能连通但 HLS / WebRTC 不出画面→ 摄像头是把单路 MPEG-TS 塞在 RTSP 里推的内部没有拆出基本流 → 给该路径开rtspDemuxMpegts: true把 H.264 / H.265 / AAC 解复用成原生轨道后其余输出即恢复正常。适合人群需要在 RTSP / RTMP / HLS / 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/mediamtx创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑