十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MediaMTX 流媒体服务器:3分钟接进第一路摄像头,浏览器直接看

MediaMTX 流媒体服务器:3分钟接进第一路摄像头,浏览器直接看 MediaMTX 流媒体服务器3分钟接进第一路摄像头浏览器直接看【免费下载链接】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 摄像头想在浏览器里实时看画面——MediaMTX 这个流媒体服务器能帮你做协议转换RTSP 进来自动变成 WebRTC 出来不用写一行转发代码。读完这篇你能独立完成启动服务器、接入一路 RTSP 流、推一路 RTMP 分发到多协议、把流录到磁盘。先跑起来一条命令启动看日志确认已活装 FFmpeg推流验证用然后拉代码或直接下载 Release 里的二进制git clone https://gitcode.com/GitHub_Trending/me/mediamtx进到目录执行./mediamtx如果机器上有 Docker也可以跳过编译安装直接docker run --rm -it --networkhost bluenviron/mediamtx:latest启动成功后终端会原样输出各协议的监听端口INF [RTSP] listener opened on :8554 (TCP) INF [RTMP] listener opened on :1935 INF [HLS] listener opened on :8888 INF [WebRTC] listener opened on :8889 (HTTP) INF [SRT] listener opened on :8890 INF [API] listener opened on :9997 INF [Metrics] listener opened on :9998只要这些行都出现说明 RTSP、RTMP、HLS、WebRTC、SRT 五条通道全部就绪可以开工了。接入第一路 RTSP 流只改两行配置打开 mediamtx.yml找到文件末尾的paths:段加两个键paths: cam1: source: rtsp://192.168.1.64:554/stream1 sourceOnDemand: yescam1是流名后面所有访问地址都用它source是摄像头真实地址协议自动识别RTSP/RTMP/HLS/SRT 都能填sourceOnDemand: yes表示没人看时不拉流有人看才拉省带宽保存后发送重载信号不必重启kill -HUP $(pgrep mediamtx)浏览器打开http://localhost:8889/cam1MediaMTX 内置了 WebRTC 播放页源码在 internal/servers/webrtc/read_index.html画面几秒内出现端到端延迟通常在 200ms 量级。想不靠浏览器验证也可以查 Control APIcurl http://localhost:9997/v3/paths返回的 JSON 里能看到cam1说明流已注册。⚠️ 浏览器黑屏但 VLC 用 RTSP 能播——通常是 WebRTC 的 UDP 端口默认 8189被防火墙拦了放行 UDP 端口即可。 ⚠️ 跨网段时 WebRTC 经常握手失败——在 mediamtx.yml 全局段加一行webrtcICEServers2: [stun:stun.l.google.com:19302]引入公共 STUN。OBS 推一路 RTMP四种协议同时分发现在反过来你自己产生一路流MediaMTX 负责到处分发。OBS 里设置自定义服务器为rtmp://localhost/live串流密钥填mystream点开始推流。OBS 没有的话用 FFmpeg 模拟一路官方 Basic usage 文档 的推荐做法ffmpeg -re -stream_loop -1 -i file.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream推流一旦成功不用改任何配置同一画面立即在以下地址可用WebRTC浏览器http://localhost:8889/mystreamHLShttp://localhost:8888/mystream.m3u8RTSPrtsp://localhost:8554/mystreamSRTsrt://localhost:8890?streamidread:mystream这就是媒体路由器的核心一条流推入按需翻译成任意协议读出。注意 RTMP 输入侧只支持 H.264OBS 默认编码器正好符合如果源是 H.265直接走 RTSP 推入更稳妥。⚠️ HLS 播放有 2~6 秒延迟——它是为弱网设计的分段协议追求低延迟请优先 WebRTC 或 SRT。把流录到磁盘改四项配置需要留存录像时只针对某一路开录制。同样在paths:下paths: cam1: source: rtsp://192.168.1.64:554/stream1 sourceOnDemand: yes record: yes recordPath: ./recordings/%path/%Y-%m-%d_%H-%M-%S recordSegmentDuration: 1h recordDeleteAfter: 24hrecord: yes只影响cam1这一路其他流不受牵连recordPath里%path会自动替换成流名时间变量按 strftime 规则展开recordSegmentDuration: 1h每小时切一个文件播放和检索都按这个粒度recordDeleteAfter: 24h只保留 24 小时防止磁盘写满录制完成后进浏览器http://localhost:9996/能看到按日期归档的文件列表可在线回放和下载。这个页面的实现在 internal/playback/server.go。下一步用 Control API 做流状态巡检、动态增删路数配合 cron 就是轻量监控面板给推流加密码配置authInternalUsers细节见 authentication 文档推流事件联动告警或转码写 hooks每路流的上线、下线都能回调你的脚本一路流同时转发到多个远端服务器RTSP/RTMP/SRT/WebRTC见 forward 文档全量配置项逐条解释在 configuration reference觉得有用的话点个收藏有踩坑问题欢迎评论区聊聊。【免费下载链接】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),仅供参考
返回列表