From a user's point of view, VLS can be divided into four kinds of components :
a manager ,
et des sorties .
The role of an input is to read MPEG streams from a given source (file, DVD, DVB card, device, ...), and feed the right converters with these streams. An input may be able to read several streams, which are called programs. There are several kinds of inputs :
the local input, which can read videos from files or DVDs ,
the video input, which can read videos from MPEG encoding cards devices ,
the dvb input, which can read videos from DVB cards, l'entrée dvb, qui peut lire depuis des cartes DVB,
the v4l input, which can read from acquisition cards supported by the Video4Linux drivers .
You can use several inputs and play several programs at the same time .
The role of a converter is to receive a stream from an input, and convert it into the MPEG-TS format. VLS is able to convert PS streams (from DVDs, for instance) into TS streams (ps2ts converter). Of course, it can also read TS streams, and fix them by handling stream discontinuities (ts2ts converter) .
A channel receives a stream from a converter, and send it to a given destination (network, file, ...). If you want, you can call a "channel" an "output": it is the same thing !). Currently, two kinds of channels are supported: network and file. Note that, at the moment, VLS can support only one output per stream, so you cannot play a stream on the network and write it into a file at the same time. The network output is highly configurable: you can choose which network interface you want to use, and specify source and destination IP addresses .
The manager controls the way streams are sent. Through an administration interface, you can tell the manager to start, stop, suspend, resume, forward or rewind the different programs. You can also get a list of all programs available in the Program Table. The manager gets this table from the VLS configuration file (vls.cfg), so it cannot be changed once VLS has been started. At the moment, you cannot ask the manager whether a given stream is being broadcasted, but you will get an error message if you try to stop a stream that was not broadcasted .