wiki:Documentation/VLC

Version 15 (modified by stud-hock, 15 years ago) ( diff )

--

Ariba VLC Plugin - Overlay-based Videostreaming using Ariba and MCPO Application Layer Multicast

NOTE! This text is currently under development. Please do not rely on completeness or even correctness of the following content.

User Guide

What is the VLC-MCPO plugin?

The vlc-mcpo plugin is an (not yet) open source streaming module for the vlc-mediaplayer (http://www.videolan.org). It comes with a sender and a receiver module. And is able to handle any kind of stream, vlc can deal with.

The plugin uses the mcpo multicast protocol, which is part of the ariba framework.

Ariba provides a virtual overlay net. [...]

For more information about ariba or the SpoVNet project, please refer to: http://www.ariba-underlay.org/, http://www.spovnet.de/

Setting up / installing

The ariba framework is currently only available on linux and therefor the plugin is linux-only at the moment.

A quick and simple way for testing but also useing the plugin are the precompiled libraries. In this section we describe how to set up an ubuntu 10.04 for this purpose. This should be adoptable to other linux distributions in an easy manner. Instructions how to compile the plugin will be provided in the Developers Guide below.

For running the vlc-mcpo plugin a number of packages have to be installed:

sudo apt-get install vlc
sudo apt-get install libboost-system1.40.0
sudo apt-get install libboost-thread1.40.0
sudo apt-get install libboost-regex1.40.0
sudo apt-get install liblog4cxx10
sudo apt-get install libdb4.7

Please download the tar-ball containing the required libraries: 32bit linux: [ coming soon ] 64bit linux: [ coming soon ]

Unpack the archive to $HOME. (If you choose another location, you have to adjust the path in the running script.)

Now you can link the running-script to $HOME/bin or /usr/bin via:
cd $HOME/bin
ln -s $HOME/vlc-mcpo/run.sh vlc-mcpo

Or just run from where it is.

(Note: If you just created the $HOME/bin folder, you have to start a new bash.) (Note: The following instructions assume you created one of links described above.)

A first test:

Now it's time for a first simple test.

Run two instanced of the modified vlc-players:
° LANG=en_US.UTF-8 vlc-mcpo & LANG=en_US.UTF-8 vlc-mcpo &
(Note: "LANG=en_US.UTF-8" sets the language of these two vlc-instances on English for easier following the instructions below.)

Two vlc-windows should open, let's call them [S] and [R].

° On [R] please click: Media > Open Network Stream...
° Then choose: Protocol: »MCPO« (Note: If you can only see protocols like: HTTP, HTTPS, UDP, etc but no MCPO then the plugin wasn't load into your vlc. Please refer to the trouble shooting section in this case.)
° The address field should now look like this: 1234:localhost:5000
° Press »play«.

° Continuing on [S], click: Meda > Streaming...
° Add a video file. (For a first test we recommend the test-video [coming soon], or at least a video you're successfully able to stream via UDP. Just eliminate sources of error not connected to the vlc-mcpo plugin.)
° Press »Stream«.
° Press »Next«.
° Choose »MCPO« and press »Add«.
° Now you can see: Source: Port: 5000; Destination: Address: localhost, Port: 1234
° Disable transcoding and press »Stream«.
° After a few seconds you should see the video in [R].

Usage

In this section we describe the parameters of the mcpo-vlc plugin and some usage scenarios which demonstrate the strength of the mcpo approach.

Vlc-mcpo uses a spontaneous virtual network (SpoVNet) for distributing the video content. Each SpoVNet have to consist of 0-1 senders and 0-N receivers. The connection procedure does not depend on the role (sender/receiver) one instance has. This could be a little bit confusion in the beginning, as on most streaming protocols the role defines whether one instance is client or server.

Parameters

The vlc-mcpo plugin takes three connection parameters. source-port:destination-address:destination-port (e.g. 1234:localhost:5000)

The "source-port" provides an entry point for other instances to the SpoVNet our instance is (or will be) in. To access this entry point "destination address" and "destination port" must be set the ip-address (or domain name) and source-port of an instance in the targeted SpoVNet.

An instance which has not connected to such an entry point makes up a SpoVNet with only itself in it.

Creating a SpoVNet

At first we need an initial SpoVNet, consisting of a single vlc-mcpo instance. This instance can be either server or client but must be accessible from the second instance. On the first instance we have to set the source-port. Destination-address and -port can be set but as long there is no other instance listening there, setting this parameters has no effect.

For explanation purpose let's pretend we already have a SpoVNet (let's call it N) between some mcpo-vlc instances. If we now want to add a new instance (called C) to this net we will first need an 'entry point'. As an entry point we can use any instance in N. We pick an instance and call it E. E must be accessible from C (be careful with NATs). Let the ip-address of E be 1.1.1.1 and it's 'source-port' be 5000. Entering the N can be achieved with the parameters 5555:1.1.1.1:5000. The port 5555 on C can then be used as a new entry point. (Of course C can also use port 5000.)

Examples / Scenarios

Trouble shooting

Developer Guide

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.