The source code of the msd (Multi Stream daemon) project has been translated to a BSD license, and the source code published on GitHub. Earlier, in the source code only a shortened version of msd_lite was distributed , and main product was proprietary . In addition to changing the license, work was carried out on porting to the macOS platform (previously supported by FreeBSD and Linux).
The msd program is intended for organizing IPTV streaming over the network using the HTTP protocol. One server is capable of serving several thousand clients simultaneously. The main focus is on achieving maximum performance, as well as on providing fine settings that affect the quality of customer perception of the service: channel switching speed, resistance to transmission failures. One-to-many proxying has been implemented: data received through one HTTP connection can be distributed to multiple connected clients.
Features
- Supports IPv4 and IPv6.
- MPEG2-TS stream analyzer.
- Automatic switch to reserve in case of absence or errors on the current source.
- Zero Copy on Send (ZCoS) – reduces the overhead of servicing connected clients, all the work of sending data to the client is taken over by the OS kernel.
- Support for “half closed” http clients.
- Receiving udp-multicast, including rtp, simultaneously from different interfaces.
- Receive via tcp-http-get (in one stream and broadcast to multiple clients).
- Automatically disconnect from sources if there are no connected clients.
- Using different TCP Congestion Control algorithms depending on the port the client came to and the client request URL
- smart sending MPEG2-TS headers to new clients.
- Sending data from the circular buffer to a new client instantly to minimize the waiting time for playback to start.
- Send any additional http headers in requests and responses.
- Presets for Stream Hub and Stream Sources.
- Detailed statistics for each TCP connection to help you find network-level problems.