Difference between revisions of "VLMa"

From VideoLAN Wiki
Jump to navigation Jump to search
m
m
Line 5: Line 5:
 
[http://www.videolan.org/vlma VLMa] means VideoLAN Manager
 
[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.
+
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.
 
It is being used in École Centrale Paris to broadcast Satellite and TNT channels over the network.

Revision as of 00:02, 1 January 2009

VLMa.png

What is VLMa?

VLMa means VideoLAN Manager

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.

Usage

VLMa is not the right tool if what you want is a graphical front-end to VLM. You should only consider using VLMa if you have several streamers to manage simultaneously.

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:

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