Skip to content

Latest commit

 

History

History
165 lines (125 loc) · 12.5 KB

File metadata and controls

165 lines (125 loc) · 12.5 KB

MediaMTX Connect

เว็บ UI สำหรับ MediaMTX
ดูสตรีมสด เปิดดูไฟล์บันทึก แก้ค่าคอนฟิกได้ทุกคีย์ — จากเบราว์เซอร์ของคุณ

CI Release Docker MIT

MediaMTX Connect — ตารางสตรีมสด ตัวเปิดดูไฟล์บันทึก และตัวแก้ไขคอนฟิก
🌍 อ่านใน 30 ภาษา

🇺🇸 English • 🇪🇸 Español • 🇨🇳 中文 • 🇮🇹 Italiano • 🇩🇪 Deutsch • 🇷🇺 Русский • 🇫🇷 Français • 🇵🇹 Português • 🇯🇵 日本語 • 🇵🇱 Polski • 🇰🇷 한국어 • 🇹🇷 Türkçe • 🇳🇱 Nederlands • 🇨🇿 Čeština • 🇹🇼 繁體中文 • 🇧🇷 Português (BR) • 🇮🇩 Bahasa Indonesia • 🇷🇴 Română • 🇸🇪 Svenska • 🇩🇰 Dansk • 🇳🇴 Norsk • 🇫🇮 Suomi • 🇬🇷 Ελληνικά • 🇭🇺 Magyar • 🇺🇦 Українська • 🇻🇳 Tiếng Việt • 🇵🇭 Tagalog • 🇹🇭 ไทย • 🇮🇳 हिन्दी • 🇧🇩 বাংলা

นี่คืออะไร

MediaMTX เป็นสตรีมมิงเซิร์ฟเวอร์ที่ยอดเยี่ยมแต่ไม่มีหน้าจอใช้งาน Connect คือส่วนหน้าที่ขาดหายไปนั้น: คอนเทนเนอร์เดียวที่คุยกับ API ของ MediaMTX แล้วเปลี่ยนมันให้เป็นกำแพงกล้อง คลังไฟล์บันทึก และตัวแก้ไขคอนฟิก

มันเป็นเพื่อนร่วมทาง ไม่ใช่ตัวแทน ทุกหน้าจอวางอยู่บนสิ่งที่ MediaMTX เปิดให้อยู่แล้ว: path หนึ่ง เอนด์พอยต์ API หนึ่ง ฮุก runOn* หนึ่ง หรือโปรโตคอลที่มันให้บริการเอง ไม่เก็บวิดีโอ ไม่พร็อกซีสื่อ ไม่ใช้ฐานข้อมูล

เริ่มใช้อย่างรวดเร็ว

อิมเมจหลายสถาปัตยกรรม (linux/amd64, linux/arm64) — Docker จะดึงตัวที่ถูกต้องให้เอง

รัน MediaMTX อยู่แล้วใช่ไหม วาง Connect ไว้ข้าง ๆ ได้เลย:

docker run -d \
  -p 3000:3000 \
  -e BACKEND_SERVER_MEDIAMTX_URL=http://<your-mediamtx-host> \
  -v /path/to/recordings:/recordings \
  -v mediamtx-connect-data:/data \
  bcanfield/mediamtx-connect:latest

เริ่มจากศูนย์ใช่ไหม ไฟล์ compose ที่แถมมาจะยกทั้งสองตัวขึ้นให้:

git clone https://github.com/bcanfield/mediamtx-connect.git
cd mediamtx-connect
docker compose up -d

จากนั้นเปิด http://localhost:3000

Important

Connect ต้องการ api: yes ใน mediamtx.yml ของคุณ คอนฟิกที่แถมมา ใช้ได้ทันที

คุณจะได้อะไร

มุมมองสด

ทุก path ที่ MediaMTX รู้จัก ในตาราง 2 ถึง 4 คอลัมน์

  • เลือก WebRTC หรือ HLS ได้ทีละการ์ด AUTO ถอยไป HLS เงียบ ๆ LOW-LAT ยืนยันใช้ WebRTC ส่วน COMPAT บังคับ HLS — และแต่ละการ์ดรายงานวิธีขนส่งที่ได้มาจริง
  • มีภาพนิ่งแม้ตอนไม่ได้เล่น งานเบื้องหลังเก็บเฟรมล่าสุดไว้บนทุกการ์ด พร้อมอายุของเฟรมบนป้าย
  • ค่าวัดแบบสด โคเดก จำนวนผู้ชม และเวลาออนไลน์ มาจากรายการ path ตรง ๆ
  • สถานะการบันทึกที่ตรงไปตรงมา การ์ดบอกว่าสตรีมกำลังบันทึกจริงหรือไม่ ส่วนสถานะที่ Connect อ่านไม่ได้จะเรียกว่าไม่ทราบ ไม่ใช่ปิด
  • คัดลอก URL สำหรับส่งสตรีม RTSP, RTMP และ SRT สร้างจากที่อยู่รับฟังของเซิร์ฟเวอร์เอง

ไฟล์บันทึก

  • ไฟล์ MP4 ของแต่ละสตรีม จัดกลุ่มตามวัน พร้อมภาพย่ออัตโนมัติ
  • ตัวเล่นที่กางออกในตำแหน่งเดิม เลื่อนหาตำแหน่งได้ผ่านคำขอ HTTP Range
  • ดาวน์โหลดแบบสตรีม พร้อมความคืบหน้าแบบสดและปุ่มยกเลิก
  • กด / เพื่อกรอง

ตั้งค่าโดยไม่ต้องเขียน YAML

  • คอนฟิกเซิร์ฟเวอร์ทั้งชุด — 65 ตัวควบคุมที่มีชนิดข้อมูลและผ่านการตรวจสอบ ใน Logging, API, Hooks, RTSP, RTMP, HLS, WebRTC และ SRT
  • path defaults และค่าทับของแต่ละ path อยู่บนขอบเขตที่ MediaMTX ให้บริการจริง การบันทึกสตรีมที่ถูกครอบด้วยไวลด์การ์ดจะเขียนรายการแบบเบาบาง คีย์ที่ไม่ได้แตะจึงยังสืบทอดต่อไป
  • ฮุก runOn* ครบทั้ง 15 ตัว พร้อมคำเตือนตรงจุดที่การบันทึกจะรีสตาร์ต path
  • เขียนแบบเบาบาง — เฉพาะคีย์ที่คุณแก้

การดูแลระบบ

โปรเซสเดียวสำหรับ API, SPA และสื่อ · หลายสถาปัตยกรรม · GET /health · ล็อกแบบมีโครงสร้าง · PWA · สว่างและมืด · 30 ภาษา · ไม่ต้องใช้ฐานข้อมูล

ตัวแปรสภาพแวดล้อม

ใช้ตั้งค่าเริ่มต้นตอนบูตครั้งแรกเท่านั้น ที่เหลือยังแก้ได้ที่ Config

ตัวแปร ค่าเริ่มต้น ใช้ทำอะไร
BACKEND_SERVER_MEDIAMTX_URL http://mediamtx จุดที่ Connect ติดต่อ API ของ MediaMTX จากภายในคอนเทนเนอร์ของตัวเอง
MEDIAMTX_API_PORT 9997 พอร์ต API ของ MediaMTX
MEDIAMTX_RECORDINGS_DIR ./recordings พาธบนโฮสต์ที่เมานต์ไว้สำหรับไฟล์บันทึก (เฉพาะ compose)
MEDIAMTX_SCREENSHOTS_DIR /screenshots ที่เก็บภาพย่อ

http://mediamtx แปลงชื่อได้เฉพาะในเครือข่ายของ compose ที่แถมมา — หากใช้ docker run เดี่ยว ๆ ให้ชี้ไปที่โฮสต์ของคุณ

ทำงานอย่างไร

Browser ──HLS / WebRTC (WHEP)──────────────────────────┐
   │                                                   │
   │ oRPC (typed)                                      ▼
   ▼                                              ┌──────────┐
┌─────────────────────┐    MediaMTX HTTP API      │ MediaMTX │
│ mediamtx-connect    │ ────────────────────────▶ │  server  │
│ Hono API + React SPA│                           └──────────┘
└─────────────────────┘                                │
   │ reads                                             │ writes
   ▼                                                   ▼
recordings/ + screenshots/  ◀────────────────────  MP4 segments

การเล่นวิ่งจากเบราว์เซอร์ไปยัง MediaMTX โดยตรง Connect ขนแค่ JSON บวกกับไฟล์บันทึกและภาพย่อที่อ่านจากดิสก์

เอกสาร

ความสามารถ ทุกความสามารถ เส้นทาง และโพรซีเยอร์ที่ปล่อยแล้ว
สถาปัตยกรรม ชิ้นส่วนต่าง ๆ ประกอบกันอย่างไร
ร่วมพัฒนา การตั้งค่าเครื่องพัฒนา สคริปต์ และขั้นตอน PR
ตัวอย่าง กล้อง Raspberry Pi และสตรีมจำลองสำหรับทดสอบ

ร่วมพัฒนา

ยินดีรับทั้ง issue และ PR คำสั่ง pnpm install && pnpm dev จะยกสแตกทั้งชุดพร้อมข้อมูลตัวอย่างให้ — อ่านที่เหลือได้ใน CONTRIBUTING.md และหัวข้อ PR ใช้รูปแบบ conventional commits เรายึดถือหลักปฏิบัติของชุมชน

สัญญาอนุญาต

MIT