【视觉】使用 mediamtx 怎么支持多个rtsp播放
👌 用(原名)在 Linux 下支持多个 RTSP 流播放很简单,只需要在配置文件 mediamtx.yml里增加多个路径(path),每个 path 对应一个 RTSP 源流。
·
👌 用 mediamtx(原名 rtsp-simple-server)在 Linux 下支持多个 RTSP 流播放很简单,只需要在配置文件 mediamtx.yml 里增加多个路径(path),每个 path 对应一个 RTSP 源流。
🔹 1. 基本配置(多个 RTSP 源)
例如:你有两台摄像头
- cam1:
rtsp://admin:123456@192.168.1.10:554/stream1 - cam2:
rtsp://admin:123456@192.168.1.11:554/stream2
在 mediamtx.yml 中配置:
paths:
cam1:
source: rtsp://admin:123456@192.168.1.10:554/stream1
cam2:
source: rtsp://admin:123456@192.168.1.11:554/stream2
启动 ./mediamtx 后:
-
WebRTC 地址:
http://<server-ip>:8889/cam1/webrtchttp://<server-ip>:8889/cam2/webrtc
-
HLS 地址:
http://<server-ip>:8888/cam1/index.m3u8http://<server-ip>:8888/cam2/index.m3u8
-
RTSP 转发:
rtsp://<server-ip>:8554/cam1rtsp://<server-ip>:8554/cam2
🔹 2. 浏览器端播放多个流
你可以在前端写一个简单的页面,放多个 <video> 标签:
<div style="display: flex; gap: 10px;">
<video id="cam1" autoplay playsinline controls></video>
<video id="cam2" autoplay playsinline controls></video>
</div>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<script>
function playStream(videoId, url) {
const video = document.getElementById(videoId);
if (Hls.isSupported()) {
const hls = new Hls();
hls.loadSource(url);
hls.attachMedia(video);
} else if (video.canPlayType('application/vnd.apple.mpegurl')) {
video.src = url;
}
}
playStream('cam1', 'http://your-ip:8888/cam1/index.m3u8');
playStream('cam2', 'http://your-ip:8888/cam2/index.m3u8');
</script>
这样就能在一个页面同时播放多个 RTSP 摄像头的流(经过 HLS 转换)。
如果用 WebRTC 播放,直接访问 http://your-ip:8889/cam1/webrtc / cam2/webrtc 就行。
🔹 3. 注意事项
- CPU/带宽:如果摄像头很多,建议使用转封装(
-c copy)方式,避免解码/转码占用过高 CPU。 - 路径名自定义:
cam1、cam2是逻辑名字,你可以按项目需要改成frontdoor、warehouse等。 - 认证:可以在配置里加用户名/密码,避免未授权访问。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)