尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

MediaMTX 实战教程:10 分钟跑通流媒体服务器,把 RTSP 摄像头送进浏览器

MediaMTX 实战教程:10 分钟跑通流媒体服务器,把 RTSP 摄像头送进浏览器 MediaMTX 实战教程10 分钟跑通流媒体服务器把 RTSP 摄像头送进浏览器【免费下载链接】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 等多套协议栈能把一路流接入、转换、分发给不同协议的客户端还能顺手录下来。这篇教程带你完成两件事把摄像头的 RTSP 流在浏览器里用 WebRTC 播出来再用一路 RTMP 推流同时喂给四个协议的观看端。先跑起来最短路径部署这一节只做一件事让一台 Linux 机器变成一个可用的流媒体服务器。MediaMTX 不需要数据库、不需要额外运行时拿到对应平台的编译产物直接执行即可。假设二进制已经下载到当前目录./mediamtx配置读取自同目录下的 mediamtx.yml默认值已经能直接工作不用改任何配置。终端出现INF server is ready这一行说明各协议监听器都已打开RTSP 在 8554 端口、RTMP 在 1935、HLS 在 8888、WebRTC 在 8889、SRT 在 8890。✅ 其他安装方式一句话带过喜欢容器化的话docker run --rm -it --networkhost bluenviron/mediamtx:latest一条命令等效源码编译见 docs/6-misc/1-compile.md。场景一把摄像头画面送进浏览器这一节解决RTSP 转 WebRTC这个最高频的需求源流来自摄像头观看端是浏览器。在 mediamtx.yml 末尾的paths下加一个流paths: cam1: source: rtsp://摄像头地址:554/stream sourceOnDemand: yes两行配置说清楚了两件事source告诉 MediaMTX 去哪拉流sourceOnDemand: yes表示按需拉流——只有真有人在看时才去连摄像头没人看就断开省带宽。改完配置后重新执行./mediamtx。现在打开浏览器访问http://localhost:8889/cam1这是 MediaMTX 内置的 WebRTC 播放页不需要写一行前端代码。画面正常的话你会看到实时视频在动同时看一眼服务器终端日志里的 reader 数量会从 0 变成 1关掉页面再变回 0。刷新两次页面确认画面稳定不黑屏这个场景就算跑通了。场景二一路推流多端观看这一节解决RTMP 推流分发OBS 只推一次四类客户端各自用自己的协议看。OBS 里打开设置 → 推流服务选自定义服务器填rtmp://localhost/live串流密钥填mystream点开始推流。流名mystream会成为后面所有协议的公共路径。不用等任何转换配置同一画面立刻可以从这些地址访问RTSPVLC 等客户端rtsp://localhost:8554/mystreamHLS播放器/浏览器http://localhost:8888/mystream/index.m3u8直接打开http://localhost:8888/mystream则是内置播放页WebRTC浏览器http://localhost:8889/mystreamSRTsrt://localhost:8890?streamidread:mystream值得留意的是当前默认配置里hlsVariant是lowLatency也就是 Low-Latency HLS 模式配合 1 秒分段、200ms 分片HLS 端延迟也能压到秒级——做低延迟直播时不用额外折腾。各协议的完整用法在 docs/2-features/04-read.md 有索引。进阶能力速览下面几项每项都只需少量配置正文点到为止细节看链接里的文档。流媒体录制在 path 里加record: yes格式可选recordFormat: fmp4或mpegtsrecordSegmentDuration控制分段时长recordDeleteAfter控制自动清理。再全局打开playback: true就能在 9996 端口用网页回放下载录像见 docs/2-features/09-record.md。树莓派摄像头path 里写source: rpiCamera再用rpiCameraWidth、rpiCameraHeight定分辨率即可MediaMTX 直接驱动相机不用装任何采集软件。转发与代理forward可以把某条流持续推到另一台外部流媒体服务器source填一个 URL 则把 MediaMTX 当拉流代理配合sourceOnDemand按需工作见 docs/2-features/11-forward.md。排障对照按症状 → 原因 → 解法对号入座都是短平快的处理。WebRTC 页面一直转圈不连接→ 跨网络时 UDP 打洞失败 → 全局加webrtcICEServers2填一个 STUN 地址有公网 IP 就加进webrtcAdditionalHosts防火墙放行 UDP 8189HLS 延迟明显高于其他协议→ 变体或分段参数偏保守 → 确认hlsVariant为lowLatency调小hlsSegmentDuration和hlsPartDurationUDP 链路卡顿、丢帧→ 网络丢包或缓冲过小 → 调大udpReadBufferSize、writeQueueSize方法见 docs/2-features/28-decrease-packet-loss.md配置了 source 但没人看时拉不到流→ 按需拉流本就是这个行为 → 有读者时再连若希望常驻可关掉sourceOnDemandSRT 客户端连不上→streamid不匹配 → 读取流必须是streamidread:流名的写法⚠️ 排障前先看服务器终端日志MediaMTX 的连接拒绝、鉴权失败都会写明原因比猜快得多。下一步两个场景跑通之后这些方向值得接着看每篇文档都不长API 控制打开api: true用 REST 接口动态增删流、查状态见 docs/2-features/21-control-api.mdHooks 钩子在客户端连接、流上线等事件上执行外部命令见 docs/2-features/20-hooks.md认证授权内置用户表加密码、按路径限定读/写权限见 docs/2-features/06-authentication.md规模化部署只读副本、HLS 走 CDN 分摊压力见 docs/2-features/19-scalability.md全部配置项的说明在 docs/5-references/1-configuration-file.md功能总览在 README.md。如果这篇帮你省下了翻文档的时间点个赞收藏一下关注我会陆续更新更多 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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表