msd icon indicating copy to clipboard operation
msd copied to clipboard

Program for IP TV streaming on the network via HTTP

msd

Build-macOS-latest Actions Status Build-Ubuntu-latest Actions Status

Rozhuk Ivan [email protected] 2011-2024

msd - Multi stream daemon. Program for organizing IP TV streaming on the network via HTTP.

Licence

BSD licence. Website: http://www.netlab.linkpc.net/wiki/en:software:msd:index

Donate

Support the author

  • GitHub Sponsors: "GitHub Sponsors"
  • Buy Me A Coffee: "Buy Me A Coffee"
  • PayPal: PayPal
  • Bitcoin (BTC): 1AxYyMWek5vhoWWRTWKQpWUqKxyfLarCuz

Features

  • support for IPv4 and IPv6
  • Zero Copy on Send (ZCoS) - reduces the overhead of service connected clients, all the work of sending the data to the client assumes the OS kernel
  • support half closed http clients
  • receiving udp-multicast, including rtp, simultaneously with different interfaces
  • the use of various TCP Congestion Control algorithms depending on the port to which the client came and the URL the client's request
  • instantaneous sending new client data from the ring buffer in order to minimize waiting times start playback
  • sending any additional http headers in requests and responses
  • detailed statistics for each TCP connection, to help you find problems at the network level

Compilation and Installation

sudo apt-get install build-essential git cmake fakeroot
git clone --recursive https://github.com/rozhuk-im/msd.git
cd msd
mkdir build
cd build
cmake ..
make -j 8

Run tests

mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=1 ..
cmake --build . --config Release -j 16
ctest -C Release --output-on-failure -j 16

Usage

msd [-d] [-v] [-c file]
       [-p PID file] [-u uid|usr -g gid|grp]
 -h           usage (this screen)
 -d           become daemon
 -c file      config file
 -p PID file  file name to store PID
 -u uid|user  change uid
 -g gid|group change gid
 -v           verboce

Setup

msd

Copy %%ETCDIR%%/msd.conf.sample to %%ETCDIR%%/msd.conf then replace lan0 with your network interface name. Add more sections if needed. Remove IPv4/IPv6 lines if not needed.

Add to /etc/rc.conf:

msd_enable="YES"

Run:

service msd restart