Differences

This shows you the differences between two versions of the page.

Link to this comparison view

en:private:demos [2010/03/02 15:50]
cangiani
en:private:demos [2016/06/23 11:26]
Line 1: Line 1:
-====== Raptor Demos ====== 
- 
-===== Introduction ===== 
- 
-There are 3 demos (in order of setup difficulty) 
-  * Raptor Image Demo 
-  * Raptor FTP Demo 
-  * Raptor Live TV Demo 
- 
-The image demo is just a standalone application and does not need networking. Live TV and FTP needs networking and various server setup in order to work.  
- 
-===== Traffic Control Bridge ===== 
-The live TV server, and the FTP server are behind a transparent bridge that allows to simulate various network conditions (namely random losses and packet delay). This is done using linux traffic control system. ​ 
- 
-In order to make it easy to use, there is a simple web-interface for managing it. The code (and the server) for the web interface is in a folder named "​tc"​ inside cangiani'​s home directory. In general the server is always running inside a screen. If it is not, launch a screen and run ''​./​script/​server''​. The bridge is a simple alix machine. Therefore, the server takes few second to start. 
- 
-Once the server is running, connect a browser to [[http://​raptortc.epfl.ch:​3000|http://​raptortc.epfl.ch:​3000]] in order to play around with it. 
- 
-===== Raptor FTP Demo ===== 
- 
-The idea of this demo is to compare the speed of standard TCP (HTTP) against our own protocol making use of raptor for FEC. The code is here: 
- 
-<​code>​ 
-git clone ssh://​cangiani@lth.epfl.ch/​repos/​git/​RFTP 
-</​code>​ 
- 
-Server and client can be compiled with 
- 
-<​code>​ 
-./make server 
-./make demo 
-</​code>​ 
- 
-In order for the demo to work, we also need to setup the demo proxy and a simple web page made of links to files of various dimensions. This is done by running one of the ''​deploy.sh''​ scripts in the source directory. For example, 
- 
-<​code>​ 
-./​deploy_raptordemo1.sh ​ 
-</​code>​ 
-will install the proxy and the demo site to ''/​var/​www/​html/​rftp''​. 
- 
-Once the proxy stuff is in place, you need to start the server. In raptordemo1.epfl.ch,​ this is done with 
- 
-<​code>​ 
-screen 
-./​bin/​linux/​server -r /​var/​www/​html/​rftp/​cache 
-</​code>​ 
- 
-The proxy is just a simple php script (proxy.php) that accepts an ''​url''​ parameter. It downloads the file linked to the ''​url''​ and store it locally. It then returns a key for the local file to be downloaded by the demo client. The demo client then uses either the raptor FTP server, or the standard Apache http server to get the cached file. 
- 
-In order for the demo to work, its settings should look like the following: 
-{{:​en:​private:​rftp_demo_settings.png?​500|Raptor FTP Demo client Settings}} 
- 
-===== Raptor Live TV ===== 
- 
-__**This is still badly work in progress**__ and these notes are mostly for myself. 
- 
-In an ideal world, the server would be composed of the following components: 
- 
-  * **tc proxy**: see above description 
-  * **video feed servers**: these may be various servers providing an RTP stream over a multicast address in the server cluster'​s internal network. Presently this can be achieved by either running VLC to stream a static file in loop, or running DVBlast to stream live TV from a DVB-T tuner; ​ 
-  * **streaming server**: the actual unicast streaming server: it takes its input from  the video feed server by listening to multicast address corresponding to the requested video stream. From the point of view of the streaming server, any feed is "​live";​ 
-  * **multicast stream relay**: is a client of the streaming server which relays the received stream over a public multicast address; 
-  * **transcoder**:​ is a server that might listen to a video feed, transcode it in real time, and rtp-multicast it on a different internal address. 
- 
-In the present setup, we only have one streaming server (''​ssh -l raptv raptortv0.epfl.ch''​),​ and one video feed server ('''​ssh -l root dvblast0''​ from ''​raptortv0''​). 
- 
-==== Simple TV Server ==== 
-TODO 
- 
- 
-==== Demo Client ==== 
-=== Requirements (on OS X leopard) === 
-We assume macports and at least the following ports (and their deps) are installed: 
-  * ''​pkgconfig''​ 
-  * ''​gstreamer''​ 
-  * ''​gst-plugins-base''​ 
-  * ''​gst-plugins-good''​ 
-  * ''​gst-plugins-bad''​ for the rtsp server 
-  * "​git-core"​ for git cloning the ''​gst-rtsp-server''​ 
-  * "​subversion"​ for getting the code from our repository 
- 
-The ''​.profile"​ file should contain at last: 
- 
-<​code>​ 
-export PATH=/​opt/​local/​bin:/​opt/​local/​sbin:​\$PATH 
-export MANPATH=/​opt/​local/​share/​man:​\$MANPATH 
-export GST_PLUGIN_PATH=${HOME}/​v4/​gst-raptor/​src/​.libs:​${HOME}/​v4/​gst-rtsp-0.10.5/​gst/​rtsp-server/​.libs 
-export PKG_CONFIG_PATH=/​opt/​local/​lib/​pkgconfig/:​${HOME}/​gst-rtsp-server/​pkgconfig 
-</​code>​ 
- 
-=== Build ''​gst-rtsp-server''​ plugin=== 
-<​code>​ 
-mkdir ~/opt 
-git clone git://​anongit.freedesktop.org/​gstreamer/​gst-rtsp-server 
-cd gst-rtsp-server 
-./​autogen.sh --prefix ~/opt 
-make 
-make install 
-</​code>​ 
- 
-=== Build ''​gst-raptor''​ plugin === 
-<​code>​ 
-svn co svn+ssh://​cangiani@lth.epfl.ch/​repos/​algo/​studemos/​videoDemo/​v4 
-cd v4/​gst-raptor/​src/​raptor 
-ln -s libDFEncDec.a-mac-intel32 libDFEncDec.a 
-cd ../../ 
-./​autogen.sh ​ --prefix ~/opt 
-make 
-make install 
-</​code>​ 
- 
-=== Build the Raptor live TV Proxy === 
-<​code>​ 
-cd ../v4 
-qmake -spec macx-g++ -r raptor-proxy.pro 
-make 
-</​code>​ 
-  
-==== DVBlast ==== 
-There are presently 3 DVB-T adapter connected. You can tune all of them and run dvblast automatically by going to ''/​root/​dvblast-conf'',​ editing the first line of ''​go.sh''​ which looks like the following: 
-<​code>​ 
-freq="​562000000 626000000 570000000"​ 
-</​code>​ 
-In this case, launching go.sh (ideally inside a screen), will start 3 istances of dvblast each using one of the tuner tuned on one of the above frequencies (''​562000000'', ​ ''​626000000'',​ or  ''​570000000''​). 
- 
-Look into the corresponding server_channels_FREQ.ini file to see how the raptor TV server configuration should look like for each of the channels that will be available assuming that by default there is some raptor coding. 
-