User:BobDijs/sandbox

Mistserver is a lightweight, open-source multistandard multimedia server. It bridges the gap between lightweight webservers and the usually heavyweight mediaservers that support non-HTTP protocols.

Design Principles
The main design concept in mind here is modularity. The server software was designed from the ground up to be modular in respect to supported protocols and encodings, so that new advances in these fields could easily and quickly be added to the server without having to redesign or rewrite any parts of it. Every connected user starts up a new process on the server. This effectively means that if somehow a viewer manages to crash the server process, only that viewers' connection will be affected. All other viewers will be able to keep using the server unimpaired. This additionally means that Connectors that are not currently in use do not require system resources, and problems with one Connector will not be able to affect the others.

The Controller
The Controller process is the "core" of Mistserver. It is the process that provides the API as well as spawns, monitors and communicates with Buffers and Connectors.

Connectors
Connectors are a terminology used in Mistserver. They are processes that listen on their supported protocol port(s) for incoming connections, then handling that connection in their native protocol. Usually this involves figuring out the requested stream name, connecting to the relevant Buffer or Player process through a Unix Domain Socket, then sending the stream data through after conversion to the proper container format.

Buffers
The Buffer application is a simple program that expects valid DTSC input, which it then buffers internally in order to make it available through a named Unix Domain Socket in the /tmp/mist/ folder for the available Connectors.

Supported Technologies

 * RTMP, Real Time Messaging Protocol used by the Flash plugin for stream transportation.
 * HTTP Dynamic, Adaptive bitrate streaming used by the Flash plugin for HTTP delivery.
 * HTTP Progressive, The delivery of media data over standard HTTP.
 * FLV Container, the main means of transport for video data through any Adobe product.
 * H.264, a standard for video compression.