Differences

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

Link to this comparison view

Next revision
Previous revision
en:private:demos [2010/03/01 11:57]
cangiani created
en:private:demos [2016/06/23 11:26] (current)
Line 1: Line 1:
-===== Raptor Demos =====+====== Raptor Demos ======
  
-==== Introduction ====+===== Introduction ​=====
  
 There are 3 demos (in order of setup difficulty) There are 3 demos (in order of setup difficulty)
Line 10: Line 10:
 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.  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 ====+===== 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. ​ 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. ​
  
Line 17: Line 17:
 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. 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 ====+===== 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: 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>​ <​code>​
 git clone ssh://​cangiani@lth.epfl.ch/​repos/​git/​RFTP git clone ssh://​cangiani@lth.epfl.ch/​repos/​git/​RFTP
Line 25: Line 26:
  
 Server and client can be compiled with Server and client can be compiled with
 +
 <​code>​ <​code>​
 ./make server ./make server
Line 31: Line 33:
  
 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, 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>​ <​code>​
 ./​deploy_raptordemo1.sh ​ ./​deploy_raptordemo1.sh ​
Line 37: Line 40:
  
 Once the proxy stuff is in place, you need to start the server. In raptordemo1.epfl.ch,​ this is done with Once the proxy stuff is in place, you need to start the server. In raptordemo1.epfl.ch,​ this is done with
 +
 <​code>​ <​code>​
 screen screen
Line 45: Line 49:
  
 In order for the demo to work, its settings should look like the following: In order for the demo to work, its settings should look like the following:
-{{:​en:​private:​rftp_demo_settings.png|Raptor FTP Demo client Settings}}+{{:​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 least: 
 + 
 +<​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''​). For a list of available channels look [[en:​private:​demos:​channels|here]]. 
 + 
 +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.