👌 用 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/webrtc
    • http://<server-ip>:8889/cam2/webrtc
  • HLS 地址:

    • http://<server-ip>:8888/cam1/index.m3u8
    • http://<server-ip>:8888/cam2/index.m3u8
  • RTSP 转发:

    • rtsp://<server-ip>:8554/cam1
    • rtsp://<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. 注意事项

  1. CPU/带宽:如果摄像头很多,建议使用转封装(-c copy)方式,避免解码/转码占用过高 CPU。
  2. 路径名自定义cam1cam2 是逻辑名字,你可以按项目需要改成 frontdoorwarehouse 等。
  3. 认证:可以在配置里加用户名/密码,避免未授权访问。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐