Il codice sorgente del progetto msd (Multi Stream Daemon) è stato convertito a una licenza BSD ed è stato pubblicato su GitHub. In precedenza, veniva distribuita solo una versione ridotta, msd_lite, mentre il prodotto principale era proprietario. Oltre al cambio di licenza, sono stati effettuati lavori per il porting sulla piattaforma. macOS (precedentemente supportato FreeBSD e Linux).
Il programma msd è progettato per organizzare la trasmissione in streaming IPTV sulla rete utilizzando il protocollo HTTP. Uno Server Il sistema è in grado di servire simultaneamente diverse migliaia di client. L'obiettivo principale è raggiungere le massime prestazioni, oltre a fornire impostazioni precise che influiscono sull'esperienza del client, come la velocità di commutazione del canale e la resilienza ai guasti di trasmissione. È implementato un proxy uno-a-molti: i dati ricevuti tramite una singola connessione HTTP possono essere distribuiti a più client connessi.
Lineamenti
- Supporto per i protocolli IPv4 e IPv6.
- Analizzatore di flussi MPEG2-TS.
- Passaggio automatico al backup in caso di assenza o errori sulla sorgente corrente.
- Zero Copy on Send (ZCoS): riduce il sovraccarico di gestione dei client connessi; tutto il lavoro di invio dei dati al client viene eseguito dal kernel del sistema operativo.
- Supporto per client http "semi-chiusi".
- Ricezione di UDP-multicast, incluso RTP, simultaneamente da diverse interfacce.
- Ricezione tramite tcp-http-get (in un flusso e trasmissione a più client).
- Disconnessione automatica dalle sorgenti se non ci sono client connessi.
- Utilizzo di 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 ai nuovi client.
- Invia immediatamente i dati dal buffer circolare a un nuovo client per ridurre al minimo il tempo di attesa per l'avvio della riproduzione.
- Invio di eventuali intestazioni http aggiuntive nelle richieste e nelle risposte.
- Modelli di impostazioni per Stream Hub e sorgenti di streaming.
- Statistiche dettagliate per ogni connessione TCP per facilitare l'individuazione dei problemi a livello di rete.
Fonte: opennet.ru
