Difference between revisions of "VLMa"
m (precision) |
(programmation state) |
||
Line 60: | Line 60: | ||
* map every media group to an available adapter, | * map every media group to an available adapter, | ||
* send orders to the servers. | * send orders to the servers. | ||
+ | |||
+ | ===A programmation state=== | ||
+ | |||
+ | A media can have 3 states: | ||
+ | * not programmed, | ||
+ | * programmed but not streamed, | ||
+ | * programmed and streamed. | ||
+ | |||
+ | To check whether programs are ''really'' streamed or not, there are stream watchers. Currently, there are two main implementations : the <code>DirectMulticastStreamWatcher</code> which joins the multicast group of the program (in case of an UDP multicast streaming strategy) and tries to receive data. If not enough data is received, the stream is known as not streamed. The other watcher, <code>HttpStreamWatcher</code> connects on the VLC http interface and verifies that no 404 error is encountered. | ||
==History== | ==History== |
Revision as of 19:15, 10 July 2008
Contents
What is VLMa?
VLMa means VideoLAN Manager
The VLMa is a Java application which provides a daemon and a web interface to manage several VLC streamers.
It is being used in École Centrale Paris to broadcast Satellite and TNT channels over the network.
Its source code is available under GPLv2 or later in VideoLan's Git, browsable on the web via gitweb.
$ git clone git://git.videolan.org/vlma.git
The daemon is in charge of managing the streamers:
- give orders using the telnet interface,
- fallback whenever a server fails,
- monitor streamers' state using SNMP,
- draw RRD graphs.
The web module provides a user-friendly interface to communicate with the daemon. The communication between the daemon and the web interface is done using RMI.
Building VLMa
VLMa uses Maven as a build system. Building VLMa should be as easy as downloading the source tree and running Maven.
$ git clone git://git.videolan.org/vlma.git $ cd vlma $ mvn install
Then Maven will download VLMa dependencies and build the project according to the configuration located in the pom.xml files.
Integration with Eclipse
Like any Maven project, there are two ways to integrate the VLMa project within Eclipse:
- using the Maven eclipse plugin which is a maven plugin,
- using M2Eclipse which is an Eclipse plugin.
Please refer to the project websites for more details.
How does it work?
The model
The 2 key objects of the model are the media and the programmation. Basically, a media stands for something that can be streamed whereas the programmation tells you how it should be streamed.
The threads
There are 3 important threads:
- the main thread which exports the RMI registry and waits for method calls,
- a thread which monitors the state of the servers (runs periodically),
- a thread which monitors the state or programmation (whether programs are really streamed or not, runs periodically too).
Orders
When VLMa notices that some programs are not really streamed, orders are computed and then sent to the servers. Computing orders means:
- identify available adapters,
- identify medias that should be streamed,
- put together medias into groups of medias that should be streamed by the same server (for example, because of their frequency in case of a DVB input),
- map every media group to an available adapter,
- send orders to the servers.
A programmation state
A media can have 3 states:
- not programmed,
- programmed but not streamed,
- programmed and streamed.
To check whether programs are really streamed or not, there are stream watchers. Currently, there are two main implementations : the DirectMulticastStreamWatcher
which joins the multicast group of the program (in case of an UDP multicast streaming strategy) and tries to receive data. If not enough data is received, the stream is known as not streamed. The other watcher, HttpStreamWatcher
connects on the VLC http interface and verifies that no 404 error is encountered.
History
VLMa development started in January 2006 under the impulsion of Sylvain Cadilhac, who was network administrator at VIA Centrale Réseaux and VideoLAN treasurer. There were around 10 servers in charge of streaming television and radio over the campus network, and the aim of the project was to provide a web interface to manage every server.
Related links
- Nightly builds.
- Project details at Ohloh.