Skip to content

Latest commit

 

History

History
165 lines (125 loc) · 8.26 KB

File metadata and controls

165 lines (125 loc) · 8.26 KB

MediaMTX Connect

A interface web do MediaMTX.
Veja transmissões em direto, percorra gravações, edite qualquer chave de configuração — a partir do browser.

CI Release Docker MIT

MediaMTX Connect — grelha de transmissões em direto, navegador de gravações e editor de configuração
🌍 Ler em 30 idiomas

🇺🇸 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 • 🇹🇭 ไทย • 🇮🇳 हिन्दी • 🇧🇩 বাংলা

O que é

O MediaMTX é um excelente servidor de streaming sem interface. O Connect é o front-end que lhe falta: um contentor que fala com a API do MediaMTX e a transforma num mural de câmaras, num arquivo de gravações e num editor de configuração.

É um companheiro, não um substituto. Cada ecrã assenta em algo que o MediaMTX já expõe: um path, um endpoint, um hook runOn*, um protocolo que serve nativamente. Não guarda vídeo, não faz proxy de media, não usa base de dados.

Arranque rápido

Imagens multiarquitetura (linux/amd64, linux/arm64) — o Docker descarrega a certa.

Já tem o MediaMTX a correr? Coloque o Connect ao lado:

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

A começar do zero? O compose incluído levanta os dois:

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

Depois abra http://localhost:3000.

Important

O Connect precisa de api: yes no seu mediamtx.yml. A configuração incluída funciona tal como está.

O que recebe

Vista em direto

Todos os path que o MediaMTX conhece, numa grelha de 2 a 4 colunas.

  • WebRTC ou HLS, cartão a cartão. AUTO cai para HLS em silêncio, LOW-LAT insiste em WebRTC, COMPAT força HLS — e cada cartão reporta o transporte que realmente obteve.
  • Instantâneos enquanto está parado. Uma tarefa em segundo plano mantém um fotograma recente em cada cartão, com a idade na etiqueta.
  • Telemetria ao vivo. Codecs, espectadores e tempo online, retirados da lista de path.
  • Estado de gravação honesto. Os cartões mostram se uma transmissão está efetivamente a gravar; um estado que o Connect não conseguiu ler diz desconhecido, nunca desligado.
  • URLs de publicação na área de transferência. RTSP, RTMP e SRT, construídos a partir dos endereços de escuta do próprio servidor.

Gravações

  • Os MP4 de cada transmissão, agrupados por dia, com miniaturas automáticas.
  • Um leitor que se expande no lugar, navegável através de pedidos HTTP Range.
  • Descargas em streaming, com progresso ao vivo e cancelamento.
  • Carregue em / para filtrar.

Configuração, sem YAML

  • Toda a configuração do servidor — 65 controlos tipados e validados entre Logging, API, Hooks, RTSP, RTMP, HLS, WebRTC e SRT.
  • Path defaults e overrides por path, nos âmbitos de onde o MediaMTX os serve. Guardar uma transmissão coberta por wildcard escreve uma entrada esparsa, por isso as chaves intactas continuam a herdar.
  • Os 15 hooks runOn*, com aviso onde guardar reinicia o path.
  • Escritas esparsas — apenas as chaves que alterou.

Operação

Um processo para API, SPA e media · multiarquitetura · GET /health · logs estruturados · PWA · claro e escuro · 30 idiomas · sem base de dados.

Variáveis de ambiente

Semeiam apenas o primeiro arranque. Tudo continua editável em Config.

Variável Por omissão Para que serve
BACKEND_SERVER_MEDIAMTX_URL http://mediamtx Onde o Connect alcança a API do MediaMTX de dentro do seu contentor
MEDIAMTX_API_PORT 9997 Porta da API do MediaMTX
MEDIAMTX_RECORDINGS_DIR ./recordings Caminho do host montado para gravações (só compose)
MEDIAMTX_SCREENSHOTS_DIR /screenshots Onde ficam as miniaturas

http://mediamtx só resolve na rede do compose incluído — para um docker run autónomo, aponte-o ao seu host.

Como funciona

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

A reprodução vai do browser ao MediaMTX. O Connect só move JSON, mais as gravações e miniaturas que lê do disco.

Documentação

Funcionalidades Todas as capacidades, rotas e procedimentos lançados
Arquitetura Como as peças encaixam
Contribuir Ambiente de desenvolvimento, scripts, processo de PR
Exemplos Câmara Raspberry Pi, transmissões falsas para testes

Contribuir

Issues e PR são bem-vindos. pnpm install && pnpm dev dá-lhe a stack completa com dados de exemplo — veja CONTRIBUTING.md, e note que os títulos de PR são conventional commits. Seguimos um Código de Conduta.

Licença

MIT