Banner
Banner
Banner

[TUTO] Installation de la solution de visio conférence BigBlueButton

Par - le janvier 31st, 2012

J’ai eu besoin récemment pour les associations pour lesquelles je suis un peu sysadmin, de mettre en place une solution de visio conférence. Plutôt que de me ruer direct sur les solutions propriétaires, j’ai un peu cherché et je suis tombé sur BigBlueButton (qui est open source)!

Cette solution ma séduite, elle allie simplicité, performance, et elle est surtout OpenSource.

BigBlueButton est construit à base des logiciels libres suivants :

  • Asterisk
  • FreeSwitch
  • Flex SDK
  • Ghostscript
  • MySQL
  • Red5
  • Open Office
  • Grails
  • nginx
  • swf Tools
  • Tomcat
  • Asterisk Java
  • Xuggler
  • ActiveMQ
  • Image Magick

 

Plateforme Materielle :



Comme d’habitude, j’ai monté mon prototype sur ma plateforme de virtualisation:


Dedibox Pro HP

Plateforme logicielle hyperviseur:


  • Dom0 Opensuse 12.1 X86_64 Xen 4.1

Plateforme Virtuelle:


  • DomU Xen Ubuntu 10.04 X86_64 Paravirtualisé
  • 2 vcpus
  • 2048 Mo de Ram
  • HDD 16GB

Installation:


Pour commencer j’ai mis à jour totalement mon DomU ubuntu 10.04; mon template avait quelques maj de retard :)

  • Mise à niveau du DomU

 

root@ubuntults:/# apt-get update; apt-get upgrade

root@ubuntults:/# apt-get install linux-headers-server linux-image-server linux-server

root@ubuntults:/# reboot
  • Installation de Ruby ( à bien installer avant bbb!)
root@ubuntults:/# apt-get install zlib1g-dev libssl-dev libreadline5-dev libyaml-dev build-essential bison checkinstall libffi5 gcc checkinstall libreadline5 libyaml-0-2

 

Créez un script install-ruby.sh :

#!/bin/bash
cd /tmp
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
tar xvzf ruby-1.9.2-p290.tar.gz
cd ruby-1.9.2-p290
./configure --prefix=/usr\
            --program-suffix=1.9.2\
            --with-ruby-version=1.9.2\
            --disable-install-doc
make
sudo checkinstall -D -y\
                  --fstrans=no\
                  --nodoc\
                  --pkgname='ruby1.9.2'\
                  --pkgversion='1.9.2-p290'\
                  --provides='ruby'\
                  --requires='libc6,libffi5,libgdbm3,libncurses5,libreadline5,openssl,libyaml-0-2,zlib1g'\
                  --maintainer=brendan.ribera@gmail.com
sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.2 500\
                        --slave   /usr/bin/ri   ri   /usr/bin/ri1.9.2\
                        --slave   /usr/bin/irb  irb  /usr/bin/irb1.9.2\
                        --slave   /usr/bin/gem  gem  /usr/bin/gem1.9.2\
                        --slave   /usr/bin/erb  erb  /usr/bin/erb1.9.2\
                        --slave   /usr/bin/rdoc rdoc /usr/bin/rdoc1.9.2

Exécutez le :

chmod +x install-ruby.sh
./install-ruby.sh

 

Vérifiez la version de ruby :

$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553)

$ gem -v
1.3.7

$ sudo gem install hello
Successfully installed hello-0.0.1
1 gem installed
Installing ri documentation for hello-0.0.1...
Installing RDoc documentation for hello-0.0.1...

 

  • Installation de BigBlueButton

On ajoute le dépot de BBB dans les sources.list d’Ubuntu :

# Add the BigBlueButton key
wget http://ubuntu.bigbluebutton.org/bigbluebutton.asc -O- | sudo apt-key add -

# Add the BigBlueButton repository URL and ensure the multiverse is enabled
echo "deb http://ubuntu.bigbluebutton.org/lucid_dev_08/ bigbluebutton-lucid main" | sudo tee /etc/apt/sources.list.d/bigbluebutton.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ lucid multiverse" | sudo tee -a /etc/apt/sources.list

 

On met à jour nos dépots et on install BBB. L’installtion va aussi installer FreeSwitch qui gère l’audio de BBB

root@ubuntults:~# apt-get update ; apt-get install bigbluebutton

 

Vous devriez avoir ceci:

The following NEW packages will be installed:

  authbind bbb-apps bbb-apps-deskshare bbb-apps-sip bbb-apps-video
bbb-client bbb-common bbb-config bbb-freeswitch bbb-freeswitch-config
bbb-openoffice-headless bbb-playback-slides

  bbb-record-core bbb-web bigbluebutton ca-certificates-java
cabextract comerr-dev default-jre default-jre-headless defoma
dictionaries-common esound-clients esound-common fontconfig

  fontconfig-config ghostscript gsfonts hicolor-icon-theme
hunspell-en-us icedtea-6-jre-cacao imagemagick java-common jsvc
krb5-multidev libaa1 libaccess-bridge-java

  libaccess-bridge-java-jni libao2 libasound2 libatk1.0-0
libatk1.0-data libaudio2 libaudiofile0 libavahi-client3
libavahi-common-data libavahi-common3 libavcodec52 libavformat52

  libavutil49 libcaca0 libcairo2 libcdparanoia0 libcolamd2.7.1
libcommons-collections-java libcommons-daemon-java libcommons-dbcp-java
libcommons-pool-java libcups2 libcupsimage2 libcurl3

  libcurl4-openssl-dev libdatrie1 libdirectfb-1.2-0
libdjvulibre-text libdjvulibre21 libdvdnav4 libdvdread4 libecj-java
libenca0 libesd0 libexpat1-dev libflac8 libfontconfig1

  libfontconfig1-dev libfontenc1 libfreetype6-dev libgd2-noxpm
libgif4 libgl1-mesa-dri libgl1-mesa-glx libgraphite3 libgraphviz4
libgs8 libgsm1 libgssrpc4 libgstreamer-plugins-base0.10-0

  libgstreamer0.10-0 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common
libhsqldb-java libhunspell-1.2-0 libhyphen0 libice6 libicu42
libidn11-dev libilmbase6 libjack0 libjasper1 libjpeg62

  libjpeg62-dev libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4
libkrb5-dev liblcms1 libldap2-dev liblircclient0 libltdl7 liblzo2-2
libmagickcore2 libmagickcore2-extra libmagickwand2

  libmp3lame0 libmpcdec3 libneon27-gnutls libnspr4-0d libnss3-1d
libogg0 liboil0.3 libopenal1 libopenexr6 libpango1.0-0
libpango1.0-common libpaper-utils libpaper1 libpixman-1-0

  libpostproc51 libpulse0 libraptor1 librasqal2 librdf0
libsamplerate0 libschroedinger-1.0-0 libsdl1.2debian
libsdl1.2debian-alsa libservlet2.5-java libsm6 libsmbclient libsndfile1

  libsox-fmt-alsa libsox-fmt-base libsox1a libspeex1 libsvga1
libswscale0 libsysfs2 libtalloc2 libthai-data libthai0 libtheora0
libtiff4 libtomcat6-java libts-0.0-0 libvorbis0a

  libvorbisenc2 libvorbisfile3 libwavpack1 libwbclient0
libwmf0.2-7 libwpd8c2a libwpg-0.1-1 libwps-0.1-1 libx264-85 libx86-1
libxaw7 libxcb-render-util0 libxcb-render0 libxcomposite1

  libxcursor1 libxdamage1 libxfixes3 libxfont1 libxft2 libxi6
libxinerama1 libxml2-dev libxmu6 libxpm4 libxrandr2 libxrender1
libxslt1-dev libxslt1.1 libxt6 libxtst6 libxv1 libxvidcore4

  libxvmc1 libxxf86dga1 libxxf86vm1 lp-solve mencoder mplayer
nginx odbcinst odbcinst1debian1 openjdk-6-jre openjdk-6-jre-headless
openjdk-6-jre-lib openoffice.org openoffice.org-base

  openoffice.org-base-core openoffice.org-calc
openoffice.org-common openoffice.org-core openoffice.org-draw
openoffice.org-emailmerge openoffice.org-filter-binfilter

  openoffice.org-filter-mobiledev openoffice.org-impress
openoffice.org-java-common openoffice.org-math
openoffice.org-officebean openoffice.org-report-builder-bin

  openoffice.org-style-galaxy openoffice.org-writer pkg-config
psfontmgr python-software-properties python-uno red5 redis-server-2.2.4
shared-mime-info sox swftools-0.9.1 tomcat6

  tomcat6-common tsconf ttf-dejavu ttf-dejavu-core
ttf-dejavu-extra ttf-liberation ttf-mscorefonts-installer
ttf-opensymbol ttf-sil-gentium ttf-sil-gentium-basic tzdata-java

  unattended-upgrades unixodbc uno-libs3 unzip ure vorbis-tools
x-ttcidfont-conf x11-common xfonts-encodings xfonts-mathml xfonts-utils
zip

0 upgraded, 250 newly installed, 0 to remove and 0 not upgraded.

1 not fully installed or removed.

Need to get 346MB of archives.

After this operation, 882MB of additional disk space will be used.

Do you want to continue [Y/n]?

Faites ‘y’ est c’est partie pour l’install

Enfin vous pouvez installer la page de DEMO de BBB vous permettant d’avoir une page d’acceuil.

sudo apt-get install bbb-demo

Pour finir faites un restart de BBB

 sudo bbb-conf --clean
 sudo bbb-conf --check

 

Accès à l’interface Web:


Si tout est bien installé démarré, on peut accéder à l’interface Web de BBB:


http://votre_ip:80

Attention j’ai galéré un moment, si vous tombez systématiquement sur la magnifique pas de NginX: « welcome to nginx!! » , c’est que votre fichier hosts est mauvais.
Il faut que dans votre fichier host, le système sache résoudre, le fqdn avec lequel on l’attaque.

Par exemple j’y accède sur http://info16.fr, donc dans mon fichier hosts j’ai:

root@ubuntults:~# cat /etc/hosts
127.0.0.1    localhost
192.168.1.3    info16.fr ubuntults

Une fois bien configuré vous devriez arriver sur la page de demo de votre serveur bbb :

 

Entrez votre pseudo et profitez de bbb :

 

Des sites vous expliquerons bien mieux que moi, l’utilisation de BBB.

Les possibilités sont entre autres:

  • Chat
  • Conférence Audio
  • Conférence Vidéo
  • Partage de Slide et interaction
  • Partage de Bureau

 

Optimisations :



A la première utilisation, ce qui m’a choqué, c’est que la vidéo est vraiment très moche. En local c’est joli, mais de l’autre coté du tuyeau beaucoup moins…

Voiçi un aperçu:

Consommation de bande passante sur un client en cam to cam avec une seule personne.

On peut voir que sur un poste client: lors d’une conversation cam to cam on envoit et reçoit environ 250Kb/s. On s’apercoit aussi que plus on bouge devant la caméra plus le débit augmente. C’est assez bien, il faudrait rester dans ces consommations là mais avec une qualité vidéo meilleure!!

Pour cela j’ai essayé de gratter un peu dans les configurations. le fichier qui nous interesse est : /var/www/bigbluebutton/client/conf/config.xml

Et plus particulièrement le module: VideoconfModule

Voiçi les valeurs par défaut:

 <module name="VideoconfModule"
url="VideoconfModule.swf?v=3861" 

uri="rtmp://info16.fr/video"

dependsOn="ViewersModule"

videoQuality="70"

presenterShareOnly="false"

resolutions="320x240,640x480,1280x720"

autoStart="false"

showButton="true"

showCloseButton="true"

publishWindowVisible="true"

viewerWindowMaxed="false"

viewerWindowLocation="top"

camKeyFrameInterval="5"

camModeFps="15"

camQualityBandwidth="0"

camQualityPicture="50"

enableH264="false"

h264Level="2.1"

h264Profile="main"                     

/>

Pour ma part je l’ai un peu modifié:

<module name="VideoconfModule" url="VideoconfModule.swf?v=3861" 

uri="rtmp://info16.fr/video"

dependsOn="ViewersModule"

videoQuality="100"

presenterShareOnly="false"

resolutions="320x240,640x480"

autoStart="false"

showButton="true"

showCloseButton="true"

publishWindowVisible="true"

viewerWindowMaxed="false"

viewerWindowLocation="top"

camKeyFrameInterval="30"

camModeFps="10"

camQualityBandwidth="0"

camQualityPicture="90"

enableH264="false"

h264Level="2.1"

h264Profile="main"                     

/>

J’ai modifié 4 paramètres:

videoQuality= »100″ ##En gros j’ai mis la qualité d’image a fond
resolutions= »320×240,640×480″  ##J’ai supprimé la résolution 1280×720 que personne n’utilisera
camKeyFrameInterval= »30″  ##c’est interessant, il va permettre de consommer moins de bande passante en mouvementgrace à la prédiction de séquence d’image
camModeFps= »10″ ## 10FPS c’est bien suffisant et sa consommera moins
camQualityPicture= »90″ ## C’est la qu se joue vraiment la qualité de l’image

 

Résultat après reboot de BBB :

C’est quand même autre chose :)

Maintenant les débits:

La consommation est moindre, environ 200Kb/s dans les mêmes conditions que tout à l’heure. Par contre l’image est sans commune mesure. Et surtout le paramètre camKeyFrameInterval fonctionne très bien, les mouvements ont très peu d’incidence sur la consommation de bp.

Bon il reste pas mal de boulot, notamment la mise en place de Moodle pour permettre de planifier des conférences.

Cet article a été publié par bartounet sur le blog info16. Si vous désirez comme bartounet publier en guest-blogging sur Geek de France, vous pouvez me contacter.

Tags: , , , , , , , ,

31 commentaires to “[TUTO] Installation de la solution de visio conférence BigBlueButton”

    loo :

    Tu as testé OpenMeetings dans le meme style et toujours opensource ?

    Bartounet :

    Je suis en train de le tester.

    Bartounet :

    A première vue openmeetings est beaucoup plus complet, mais je le trouve trop complexe et pas forcément aussi performant que BBB

    guidtz :

    Bonjour,

    très bon article. J’ai testé les deux openmeeting et bbb et je effectivement openmeeting peut paraître plus avancé, par contre l’interface est … comment dire … moche … Ce qui est intéressant dans bbb est sa facilité d’intégration grâce à son API très bien documentée.
    Faudrait que je regarde ta configuration pour la vidéo, car j’ai les mêmes problèmes de qualité.

    Bon tests

    Guidtz

    jahman :

    Salut,

    Merci pour cette excellent tutoriel qui marche impec. Tes optimisations vidéos sont justes géniales!!

    Une remarque, bigbluebutton ne peut pas marcher sur mac os 10.4 et 10.5 car la version de flash requise est la 11 qui n’est pas disponible pour ces os (10.3).

    Le desktop sharing ne marche pas très bien chez moi (archlinux avec openjdk 7) J’arrive bien à manipuler les pdf mais n’arrive pas à « montrer » une autre application (c’est peut-etre juste que je ne sais pas encore comment faire).

    Maintenant il ne me reste plus qu’a regarder les fichier de conf pour faire cohabiter apache et nginx et je ferais des tests plus approfondis pour passer en prod.

    Bartounet :

    Merci :)
    Pour flash,
    Mac OS X v10.6, v10.7 (32-bit and 64-bit)
    Il suffit de mettre à jour en Snow Leopard ou Lion

    huats :

    Perso j’ai déjà utilisé bbb mais je ne peux plus sur une oneiric à jour à cause d’un bug dans l’interface flash qui empeche de cliquer sur les boutons…

    Bartounet :

    Je suis sur oneiric à la maison je testerai.

    Dimitri Q :

    Rien ne vaut une vraie solution professionnelle H323 de qualié notamment proposée par Radvision avec sa solution Scopia Desktop.

    Bartounet :

    Je rêve j’ai réinstallé BBB sur un serveur neuf, et les valeurs par défaut du /var/www/bigbluebutton/client/conf/config.xml pour l’optimisation de la vidéo ont changées…

    Ils ont mis les miennes lol :)

    TimCruz :

    La classe :-)

    link :

    La classe ! +1

    dstel :

    Bonjour,

    J’ai suivi le tuto (tres clairs) et j’ai un soucis a l’etape : sudo bbb-conf –clean
    ca me marque : Waiting for BigBlueButton to finish starting up : ……………………………………………………………………………………………………………

    et les points ne se finisse jamais lol

    je suis sur un serveur virtuel Kimsufi : C’est peut etre ca le problème ?)

    Merci d’avance, au cas ou quelqu’un aurait la solution

    dstel :

    ha j’oubliai… juste avant jai un [fail] a la ligne *Starting Red5 Server red5…

    bartounet :

    Regarde plutot sur la résolution de nom de ton serveur.
    Il doit porter le même nom que celui avec lequel le serveur Web va etre appelé

    Mikyreale :

    Salut,
    J’ai le même probleme que Dstel. Ou puis je vérifier la résolution de nom serveur ?
    Miky

    Shadow_hacker :

    bbb fonctionne t il peu importe l’architecture reseaux et la nature du canal de transmission? si oui comment ?

    ahmed :

    Bonjour
    vous avez parler d’une api bien documenter pour intégrer big blue ac d’autre appli , un lien SVP pour la doc

    TimCruz :

    @ahmed : la doc BBB : http://www.bigbluebutton.org/support/
    le support d’intégration Open Source : http://www.bigbluebutton.org/open-source-integrations/

    PrinceZephyr :

    Bonjour à tous,
    Excellent TUTO. Je l’ai réussi en virtuel comme en Serveur dédié. Cependant, j’ai un problème de faire faire accéder à mon serveur aux étudiants par Internet, c’est à dire en dehors de mon réseau local.
    Merci d’avance.

    Snarcraft :

    Moi j’arrive pas à configurer en local quand je me connecte à l’adresse ip 192.168.1.17 sa marche je me retrouve dans la page d’acceuil et dès que je met le pseudo et que je valide on me dit 404 page not found

    Mac :

    Bonjour,

    Je suis vraiment intéressé par cette solution.

    Peut-on l’installer sur un mac?

    Existe-t-il un hébergeur permettant d’installer facilement (en un click;) BBB? pour se faire un serveur pour pas trop cher?

    kavuba :

    bonjour j’ai problème j’ai installé elastix et j’ai configurer les appels ça passe maintenant je voudrai configurer les appels vidéo comment faire?

    Kim :

    Hello je cherche une personne pouvant m’aider à installer BBB (travail rémunéré)

    DSTel.com :

    Bonjour,

    Je peux vous proposer mes services.
    Vous pouvez me contacter par email afin de connaitre vos besoin.

    Damien
    http://www.dstel.com
    damien.soulages@gmail.com

    Guillaume :

    Bonjour,
    très bonne solution utilisée chez nous pour les étudiants en ERASMUS.
    Juste une question (peut-être idiote) : Quelle est la commande utilisée pour afficher la consommation de bande passante en temps réél ? Est-ce vnstat ?
    merci à vous
    GD

    bartounet :

    La mesure des débits a été réalisée par une commande développée par moi même
    Netview pour les débits réseau
    J’ai développé aussi son petit frère
    Ioview pour les débits disques

    Ce sont de simple scripts bash
    Je peux les mettre a dispo si ça intéressé quelqun
    A l’époque je n’avais pas trouvé de commandes équivalentes alors je l’ai développé

    Guillaume :

    Bonjour,
    oui, ça m’intéresse car je n’ai pas trouvé pour l’instant d’outil analogue qui me plaise.
    merci de votre proposition.
    Cdlt
    GD

    kedouille :

    Bonjour,

    connaissez vous une API gratuite pour gérer les salles sur un portail indépendant, un peut plus friendly user ?

    Merci de vos retours

    Toto :

    Salut,

    problème d’affichage des commandes : apt-get install linux-headers-server linux-image-server linux-ser

    mais en regardant le code source html je vois bien la ligne en entier

    Rechad :

    Bonjour,

    Le tuto est vraiment complet et on constate que les réglages vidéos de bases sont effectivement mêmes :)
    Sinon ça serait possible de mettre les scripts bash (pour les tests de débits) à disposition ?

    Merci d’avance.

Laissez un commentaire

Catégorie(s): Software, Tutos