Kildekoden til msd (Multi Stream daemon)-projektet er blevet oversat til en BSD-licens, og kildekoden er blevet offentliggjort på GitHub. Tidligere blev der kun distribueret en forkortet version af msd_lite i kildekoden, og hovedproduktet var proprietært. Udover at ændre licensen er der arbejdet på at portere den til macOS-platformen (tidligere blev FreeBSD og Linux understøttet).
Msd-programmet er designet til at organisere IPTV-streaming på netværket ved hjælp af HTTP-protokollen. En server er i stand til at betjene flere tusinde klienter samtidigt. Hovedvægten er på at opnå maksimal ydeevne samt på at levere fine indstillinger, der påvirker kvaliteten af kundens opfattelse af tjenesten: hastighed på kanalskiftning, modstand mod transmissionsfejl. Proxying er blevet implementeret i "en-til-mange"-tilstanden: data modtaget gennem én HTTP-forbindelse kan distribueres til mange tilsluttede klienter.
Funktioner
- Understøtter IPv4- og IPv6-protokoller.
- MPEG2-TS stream analysator.
- Automatisk skift til backup i tilfælde af fravær eller fejl på den aktuelle kilde.
- Zero Copy on Send (ZCoS) - reducerer omkostningerne ved at servicere tilsluttede klienter; alt arbejdet med at sende data til klienten overtages af OS-kernen.
- Support til "halvt lukkede" http-klienter.
- Modtagelse af udp-multicast, inklusive rtp, samtidigt fra forskellige grænseflader.
- Modtagelse via tcp-http-get (i én stream og udsendelse til flere klienter).
- Automatisk afbrydelse fra kilder, hvis der ikke er tilsluttede klienter.
- Brug af forskellige TCP Congestion Control-algoritmer afhængigt af den port, som klienten kom til, og URL'en på klientanmodningen
- "smart" afsendelse af MPEG2-TS headers til nye klienter.
- Send øjeblikkeligt data fra ringebufferen til den nye klient for at minimere ventetiden, før afspilning begynder.
- Sender eventuelle yderligere http-headere i anmodninger og svar.
- Indstillingsskabeloner til Stream Hub og streamkilder.
- Detaljeret statistik for hver TCP-forbindelse for at forenkle søgningen efter problemer på netværksniveau.
Kilde: opennet.ru