This is an old revision of the document!

Raptor Demos


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 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:

git clone ssh://

Server and client can be compiled with

./make server
./make demo

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 scripts in the source directory. For example,


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, this is done with

./bin/linux/server -r /var/www/html/rftp/cache

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: 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, and one video feed server ('ssh -l root dvblast0 from raptortv0).

Simple TV Server


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 cd gst-rtsp-server ./ –prefix ~/opt make make install </code> === Build gst-raptor plugin === <code> svn co cd v4/gst-raptor/src/raptor ln -s libDFEncDec.a-mac-intel32 libDFEncDec.a cd ../../ ./ –prefix ~/opt make make install </code> === Build the Raptor live TV Proxy === <code> cd ../v4 qmake -spec macx-g++ -r 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 which looks like the following: <code> freq=“562000000 626000000 570000000” </code> In this case, launching (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.

Available channel list (end of 2009)

Frequency Channel Type
554000 TVM3 TV
554000 MEZZO TV
554000 MTV TV
554000 MCM TOP TV
554000 Fashion TV TV
554000 Rouge TV TV
554000 Mire 508/1 TV
562000 TSR1 TV
562000 TSR2 TV
562000 TF1 TV
562000 France 2 TV
562000 France 3 TV
562000 SSR-La 1ere radio
562000 SSR-Espace 2 radio
562000 SSR-Couleur3 radio
562000 SSR-Option Musique radio
562000 SSR-CH-Classique radio
570000 Euronews TV
570000 TV5MONDE TV
570000 RTL9 TV
570000 TMC TV
570000 AB1 TV
570000 Mire 507/1 TV
570000 Mire 507/2 TV
578000 BBC Prime TV
578000 BBC World TV
578000 CNN Int. TV
578000 CNBC Europe TV
578000 CBBC Channel TV
578000 Mire 505/1 TV
578000 Mire 505/2 TV
578000 Al Jazeera International TV
586000 France 4 TV
586000 France 5 TV
586000 M6_Suisse TV
586000 ARTE TV
586000 LA TELE TV
586000 France 24 (en Francais) TV
586000 TV8 Mt Blanc TV
586000 Info TV
594000 Canal + en clair TV
594000 RTBF SAT TV
594000 Virgin 17 TV
594000 Gulli TV
594000 DIRECT 8 TV
594000 BFM TV TV
594000 NT1 TV
594000 NRJ12 TV
594000 Cartoon Network F TV
610000 Das Erste TV
610000 3sat TV
610000 DSF TV
610000 ORF1 TV
610000 TRT International TV
610000 TV7 TV
610000 Al-Arabiya TV
618000 SF 1 TV
618000 SF zwei TV
618000 SF info TV
618000 ZDF TV
618000 SAT.1 TV
618000 RTL Television TV
618000 SRG-DRS 1 radio
618000 SRG-DRS 2 radio
618000 SRG-DRS 3 radio
618000 SRG-DRS Virus radio
618000 SRG-DRS Musikwelle radio
618000 SRG-Rumantsch radio
618000 SRG-Swiss Classic radio
618000 SRG-Swiss Pop radio
618000 SRG-Swiss Jazz radio
618000 SRG-DRS 4 News radio
626000 TSI1 TV
626000 TSI2 TV
626000 RAI1 TV
626000 RAI2 TV
626000 RTPI TV
626000 RedeRecord TV
626000 SSR-Rete Uno radio
626000 SSR-Rete Due radio
626000 SSR-Rete Tre radio
626000 SSR-WRS radio
634000 RAI3 TV
634000 CANALE 5 TV
634000 Retequattro TV
634000 TVEi TV
634000 TV3CAT TV
658000 Mire 600/1 TV
658000 HD suisse TV
658000 arte HD TV
666000 Rai Sport piu TV
666000 RaiNotizie24 TV
666000 Italia 1 TV
666000 Canal 24 Horas TV
666000 TVV INT. TV
666000 Mire 513/1 TV
674000 RTK-SAT TV
674000 RTS SAT TV
674000 BH-TV1 TV
674000 BN SAT Evropa… TV
674000 DM SAT TV
674000 RTV Montenegro TV
674000 HRT-TV1 TV
674000 DunaTV TV
674000 Mire 515/1 TV
682000 Super RTL TV
682000 RTL2 TV
682000 VOX TV
682000 ProSieben TV
682000 SWR Fernsehen BW TV
682000 kabel eins TV
682000 n-tv TV
690000 ITV1 London TV
690000 ITV2 TV
690000 Film4 TV
690000 2M Monde TV
690000 Al Masriya TV
690000 ERTSAT Europe TV
850000 BBC 2 England TV
850000 BBC 1 London TV
850000 Sky News Intl TV
850000 Mire 511/1 TV
850000 Bloomberg UK TV
850000 RTR TV
850000 CCTV4 TV
850000 BVN TV