User Tools

Site Tools


installation_d_une_plateforme_de_stream_sur_serveur_sme_9

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
installation_d_une_plateforme_de_stream_sur_serveur_sme_9 [2016/02/11 12:00]
romain
installation_d_une_plateforme_de_stream_sur_serveur_sme_9 [2016/02/23 21:01] (current)
romain
Line 77: Line 77:
 curl  ftp://​downloads.xiph.org/​pub/​xiph/​releases/​ogg/​libogg-1.3.1.tar.xz ​   >​libogg-1.3.1.tar.xz;​ curl  ftp://​downloads.xiph.org/​pub/​xiph/​releases/​ogg/​libogg-1.3.1.tar.xz ​   >​libogg-1.3.1.tar.xz;​
 xz -d   ​libogg-1.3.1.tar.xz ​ ;  ​ xz -d   ​libogg-1.3.1.tar.xz ​ ;  ​
-tar  -x   libogg-1.3.1.tar ​ ;  ​+tar  -xvf libogg-1.3.1.tar ​ ;  ​
 cd  libogg-1.3.1;​ cd  libogg-1.3.1;​
 ./​configure ​ ; ./​configure ​ ;
Line 83: Line 83:
  
   ###    o p u s   ###    o p u s
-curl http://​downloads.xiph.org/​releases/​opus/​opus-1.1.tar.gz >  opus-1.1.tar.gz ​ +wget http://​downloads.xiph.org/​releases/​opus/​opus-1.1.2.tar.gz 
-gzip -d   opus-1.1.tar.xz ;  +tar -xvf opus-1.1.2.tar.gz ;  
-tar -x opus-1.1.tar ;  +cd opus-1.1.;  
-cd opus-1.+./​configure ​;
 make  && ​ make check  && ​ make install ; make  && ​ make check  && ​ make install ;
  
Line 94: Line 94:
 tar -x  flac-1.3.0.tar ; tar -x  flac-1.3.0.tar ;
 cd  flac-1.3.0 ; cd  flac-1.3.0 ;
 +./configure ;
 make  && ​ make check  && ​ make install ; make  && ​ make check  && ​ make install ;
  
Line 101: Line 102:
 tar -xvf    opus-tools-0.1.7.tar ​ ; tar -xvf    opus-tools-0.1.7.tar ​ ;
 cd   ​opus-tools-0.1.7 ​  ; cd   ​opus-tools-0.1.7 ​  ;
 +./configure ;
 make  && make install ; make  && make install ;
  
 </​code>​ </​code>​
 +
 +Une fois installé on l'​active comme ceci dans sa page html :
 +<​code>​
 + connection.processSdp = function(sdp) {
 +        sdp = remove_vp8_codecs(sdp);​
 +        sdp = prefer_opus (sdp);
 +        sdp = use_maxaveragebitrate(sdp);​
 +        return sdp;
 +        };
 +</​code>​
 +
 +Et on "​force"​ le bitrate à la valeur que l'on souhaite (ici 192):
 +<​code>​
 +
 +var BandwidthHandler = connection.BandwidthHandler;​
 +connection.bandwidth = {
 +    audio: 128,
 +    video: 256,
 +    screen: 300
 +};
 +connection.processSdp = function(sdp) {
 +    sdp = BandwidthHandler.setApplicationSpecificBandwidth(sdp,​ connection.bandwidth,​ !!connection.session.screen);​
 +    sdp = BandwidthHandler.setVideoBitrates(sdp,​ {
 +        min: connection.bandwidth.video,​
 +        max: connection.bandwidth.video
 +    });
 +
 +    sdp = BandwidthHandler.setOpusAttributes(sdp);​
 +
 +    sdp = BandwidthHandler.setOpusAttributes(sdp,​ {
 +        '​stereo':​ 1,
 +        //'​sprop-stereo':​ 1,
 +        '​maxaveragebitrate':​ connection.bandwidth.audio * 1000 * 8,
 +        '​maxplaybackrate':​ connection.bandwidth.audio * 1000 * 8,
 +        //'​cbr':​ 1,
 +        //'​useinbandfec':​ 1,
 +        // '​usedtx':​ 1,
 +        '​maxptime':​ 3
 +    });
 +
 +    return sdp;
 +};
 +</​code>​
 +
 +
 +=== Utilisation de appRTC ====
 +
 +Une autre utilisation de webrtc est appRTC.
 +
 +On peut trouver une démo ici : 
 +
 +[[https://​apprtc.appspot.com/​|Demo AppRTC]]
 +
 +Les parametres audio et video sont modifiables via l'url ainsi pour changer le bitrate d'​envoie on ajoute :
 +
 +<​code>​asbr=128</​code>​
 +
 +"​asbr"​ pour Audio Send Bit Rate donc pour le receveur ​
 +
 +"​arbr"​ Audio Receive Bit Rate ....
 +
 +On peut également changer les paramètres video, choisir les codecs ...
 +
 +Ainsi pour un flux audio sans video avec le codec opus à 44100 hz et bitrate à 128 send et receive on à une url de ce type :
 +
 +<​code>​https://​apprtc.appspot.com/?​audio=true&​asc=opus/​44100&​arc=opus/​44100&​asbr=128000&​arbr=128000&​video=false</​code>​
 +
 +Ici les références : [[http://​gingertech.net/​2014/​03/​19/​apprtc-googles-webrtc-test-app-and-its-parameters/​|Paramètres]]
 +
 +
 +=== Installation de appRTC sur le serveur ====
 +
 +On se crée un dossier streamserver et appengine dans le repertoire www :
 +<​code>​
 +sudo su
 +cd /​var/​www/​html
 +mkdir streamserver
 +cd streamserver
 +</​code>​
 +
 +Vous avez besoin d'​installer Google App Engine SDK for Python :
 +
 +<​code>​
 +mkdir appengine
 +cd appengine
 +wget https://​storage.googleapis.com/​appengine-sdks/​featured/​google_appengine_1.9.32.zip
 +unzip google_appengine_1.9.32.zip
 +export PATH=$PATH:/​path/​to/​google_appengine/</​code>​
 +Soyez sur d'​avoir la version 2.7 de python d'​installée :
 +
 +<​code>/​usr/​bin/​env python -V</​code>​
 +
 +Puis le serveur :
 +
 +
 +<​code>​
 +cd /​var/​www/​html/​streamserver/​
 +apt-get install nodejs npm git python-webtest nodejs-legacy
 +npm install -g npm
 +npm -g install grunt-cli
 +git clone https://​github.com/​webrtc/​apprtc.git
 +cd apprtc
 +npm install
 +grunt build</​code>​
 +
 +Pour démarrer le serveur ​
 +
 +<​code>​
 +cd /​var/​www/​html/​streamserver/​apprtc
 +/​var/​www/​html/​streamserver/​appengine/​google_appengine/​dev_appserver.py ./​out/​app_engine
 +</​code>​
 +
 +Et on se rend à l'​adresse du serveur port 8080 exemple si c'est sur la même machine :
 +
 +[[http://​localhost:​8080]]
  
  
installation_d_une_plateforme_de_stream_sur_serveur_sme_9.1455188431.txt.gz · Last modified: 2016/02/11 12:00 by romain