Il codice sorgente del progetto msd (Multi Stream daemon) è stato tradotto in una licenza BSD e il codice sorgente è stato pubblicato su GitHub. In precedenza, nel codice sorgente veniva distribuita solo una versione abbreviata di msd_lite e il prodotto principale era proprietario. Oltre a cambiare la licenza, è stato fatto il lavoro per portarlo sulla piattaforma macOS (in precedenza erano supportati FreeBSD e Linux).
Il programma msd è progettato per organizzare lo streaming IPTV sulla rete utilizzando il protocollo HTTP. Un server è in grado di servire diverse migliaia di client contemporaneamente. L'enfasi principale è sul raggiungimento delle massime prestazioni, nonché sulla fornitura di impostazioni precise che influiscono sulla qualità della percezione del servizio da parte del cliente: velocità di cambio canale, resistenza ai guasti di trasmissione. Il proxying è stato implementato in modalità “one-to-many”: i dati ricevuti tramite una connessione HTTP possono essere distribuiti a molti client connessi.
Lineamenti
- Supporta i protocolli IPv4 e IPv6.
- Analizzatore di flusso MPEG2-TS.
- Passaggio automatico al backup in caso di assenza o errori sulla sorgente corrente.
- Zero Copy on Send (ZCoS): riduce il sovraccarico della manutenzione dei client connessi; tutto il lavoro di invio dei dati al client viene svolto dal kernel del sistema operativo.
- Supporto per client http "semichiusi".
- Ricezione di udp-multicast, incluso rtp, simultaneamente da diverse interfacce.
- Ricezione tramite tcp-http-get (in un flusso e trasmesso a più client).
- Disconnessione automatica dalle origini se non ci sono client connessi.
- Utilizzando diversi algoritmi di controllo della congestione TCP a seconda della porta a cui è arrivato il client e dell'URL della richiesta del client
- Invio "intelligente" di intestazioni MPEG2-TS a nuovi client.
- Invia istantaneamente i dati dal ring buffer al nuovo client per ridurre al minimo il tempo di attesa per l'inizio della riproduzione.
- Invio di eventuali intestazioni http aggiuntive nelle richieste e nelle risposte.
- Modelli di impostazioni per hub di flusso e origini di streaming.
- Statistiche dettagliate per ogni connessione TCP per semplificare la ricerca di problemi a livello di rete.
Fonte: opennet.ru