npm.io
0.1.0 • Published 18h agoCLI

@mostajs/vox-live

Licence
AGPL-3.0-or-later
Version
0.1.0
Deps
5
Size
50 kB
Vulns
0
Weekly
0

@mostajs/vox-live

Auteur : Dr Hamid MADANI drmdh@msn.com

Runtime VoxStudio Live : diffusion plateau en direct (talk-show, 1+ intervenants → N spectateurs) par composition de @mostajs/media-sfu (WebRTC SFU, mediasoup, signaling WHIP/WHEP). Fournit une factory + les clients plateau/embed/spectateur. Une app le compose en un lanceur mince (ex. live.amia.fr, embarqué en iframe depuis market.amia.fr).

NON zéro-dépendance : @mostajs/media-sfu tire mediasoup (natif C++). Service à isoler. Ports UDP média à ouvrir ; HTTPS requis (getUserMedia).

Usage

import { createVoxLiveServer } from '@mostajs/vox-live';
const live = await createVoxLiveServer({ announcedIp: '212.132.109.40' /* IP publique, REQUIS en prod */ });
live.listen(4700);

ou en CLI : mosta-vox-live 4700 (config via .env/process.env : SFU_ANNOUNCED_IP, SFU_MIN_PORT…).

Pages servies

  • /host?room=<id>plateau : l'intervenant publie (WHIP).
  • /embed?room=<id>&audio=1spectateur auto-subscribe (WHEP), pensé pour l'iframe.
  • /viewer — liste des rooms actives · / — accueil · /api/health.

Factory

createVoxLiveServer({ listenIp, announcedIp, minPort, maxPort, workers, logLevel, corsOrigins, webDir, permissionChecker, onEvent }){ server, sfu, handlers, listen(port,cb), close() }. Rooms créées à la volée (une room = une session live). API SFU /api/sfu/rooms/:room/{whip,whep} (identique au serveur prouvé de @mostajs/media-sfu).

Pré-requis infra

mediasoup (npm install compile) · ports UDP/TCP 50000-50100 ouverts (firewall + panneau hébergeur) · SFU_ANNOUNCED_IP = IP publique · sous-domaine + HTTPS · TURN si NAT strict. Licence : AGPL-3.0-or-later.

Keywords