Die Quelltexte des Projekts msd (Multi Stream daemon) wurden auf die BSD-Lizenz umgestellt, und der Quellcode wurde auf GitHub veröffentlicht. Früher wurde nur eine verkürzte Version msd_lite verteilt, während das Hauptprodukt proprietär war. Neben der Änderung der Lizenz wurde auch an der Portierung auf die macOS-Plattform gearbeitet (zuvor wurden FreeBSD und Linux unterstützt).
Das Programm msd dient der Organisation des IPTV-Streamings im Netzwerk über das HTTP-Protokoll. Ein Server kann mehrere tausend Kunden gleichzeitig bedienen. Der Schwerpunkt liegt auf maximaler Leistung sowie auf der Bereitstellung feiner Einstellungen, die die wahrgenommene Qualität des Dienstes beeinflussen: Kanalswitchgeschwindigkeit, Ausfallsicherheit. Es wurde das Streaming im „One-to-Many“-Modus implementiert: Daten, die über eine HTTP-Verbindung empfangen werden, können an viele verbundene Clients verteilt werden.
Merkmale
- Unterstützung von IPv4- und IPv6-Protokollen.
- MPEG2-TS Stream-Analyzer.
- Automatischer Wechsel zur Reserve bei Ausfall oder Fehlern der aktuellen Quelle.
- Zero Copy on Send (ZCoS) – reduziert die Overheadkosten für die Bedienung von verbundenen Clients, wobei das gesamte Senden von Daten an den Client vom Betriebssystemkern übernommen wird.
- Unterstützung für „half closed“ HTTP-Clients.
- Empfang von UDP-Multicast, einschließlich RTP, gleichzeitig von verschiedenen Schnittstellen.
- Empfang über tcp-http-get (in einem Stream und Sendung an mehrere Clients).
- Automatische Trennung von Quellen, wenn keine verbundenen Clients vorhanden sind.
- Verwendung verschiedener TCP Congestion Control-Algorithmen abhängig vom Port, über den der Client verbunden ist, und der URL des Client-Antrags.
- „Intelligente“ Übermittlung von MPEG2-TS-Headern an neue Clients.
- Sofortige Übermittlung von Daten an neuen Client aus dem Ringpuffer, um die Wartezeit beim Start der Wiedergabe zu minimieren.
- Übermittlung beliebiger zusätzlicher HTTP-Header in Anfragen und Antworten.
- Einstellungs-Vorlagen für Stream Hub und Streaming-Quellen.
- Ausführliche Statistiken für jede TCP-Verbindung zur Vereinfachung der Fehlersuche auf Netzwerkebene.
Quelle: opennet.ru
