O código-fonte do projeto msd (Multi Stream daemon) foi traduzido para uma licença BSD e o código-fonte foi publicado no GitHub. Anteriormente, apenas uma versão abreviada do msd_lite era distribuída no código-fonte e o produto principal era proprietário. Além de alterar a licença, foi feito um trabalho para portá-la para a plataforma macOS (anteriormente eram suportados FreeBSD e Linux).
O programa msd foi projetado para organizar o streaming de IPTV na rede usando o protocolo HTTP. Um servidor é capaz de atender vários milhares de clientes simultaneamente. A ênfase principal está em alcançar o máximo desempenho, bem como em fornecer configurações precisas que afetam a qualidade da percepção do serviço pelo cliente: velocidade de troca de canais, resistência a falhas de transmissão. O proxy foi implementado no modo “um para muitos”: os dados recebidos por meio de uma conexão HTTP podem ser distribuídos para muitos clientes conectados.
Características
- Suporta protocolos IPv4 e IPv6.
- Analisador de fluxo MPEG2-TS.
- Mudança automática para backup em caso de ausência ou erros na fonte atual.
- Zero Copy on Send (ZCoS) - reduz a sobrecarga de atendimento aos clientes conectados; todo o trabalho de envio de dados ao cliente é assumido pelo kernel do sistema operacional.
- Suporte para clientes http “semifechados”.
- Recepção de udp-multicast, incluindo rtp, simultaneamente de diferentes interfaces.
- Recepção via tcp-http-get (em um stream e transmissão para vários clientes).
- Desconexão automática das fontes caso não haja clientes conectados.
- Usando diferentes algoritmos de controle de congestionamento TCP dependendo da porta para a qual o cliente veio e da URL da solicitação do cliente
- envio "inteligente" de cabeçalhos MPEG2-TS para novos clientes.
- Envie dados instantaneamente do buffer de anel para o novo cliente para minimizar o tempo de espera para o início da reprodução.
- Envio de cabeçalhos HTTP adicionais em solicitações e respostas.
- Modelos de configurações para Stream Hub e fontes de stream.
- Estatísticas detalhadas para cada conexão TCP para simplificar a busca de problemas no nível da rede.
Fonte: opennet.ru