Difference between revisions of "VLMa"

From VideoLAN Wiki
Jump to navigation Jump to search
(programmation state)
m (Remove from category Category:VLMa (self-link))
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[image:VLMa.png|right]]
+
#REDIRECT [[:Category:VLMa]]
 
 
==What is VLMa?==
 
 
 
[http://www.videolan.org/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 [http://git.videolan.org/?p=vlma.git;a=summary 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 [http://en.wikipedia.org/wiki/Remote_Method_Invocation 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 [http://maven.apache.org/plugins/maven-eclipse-plugin/ Maven eclipse plugin] which is a maven plugin,
 
* using [http://m2eclipse.codehaus.org/ 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 <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==
 
 
 
VLMa development started in January 2006 under the impulsion of Sylvain Cadilhac, who was network administrator at [http://www.via.ecp.fr 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==
 
 
 
* [http://nightlies.jpountz.net Nightly builds].
 
* [http://www.ohloh.net/projects/vlma Project details] at Ohloh.
 
  
 
[[Category:VideoLAN projects]]
 
[[Category:VideoLAN projects]]

Latest revision as of 02:53, 22 May 2019

Redirect to: