La diffusion en direct de vidéos par internet est encore une chose nouvelle qui demande pas mal de recherche et de réglages pour fonctionner. Malgré tout, elle est depuis quelques temps à la portée de toute personne ayant de bonnes connaissances techniques en la matière.

Hier, le 18 septembre 2008, nous avons proposé au public une conférence en direct ayant pour thème "De la télévision pour les bébés au jeux vidéos pour les adolescents" par Serge Tisseron. Conférence organisée dans le cadre de mon boulot pour www.yapaka.be, à la communauté française de Belgique.

En plus des 100 personnes présentes réellement dans la salle (au théâtre 140), 100 personnes ont pu assister à cette conférence, en direct, par internet. Elles ont au l'occasion d'interagir avec le conférencier par chat.

Voici comment nous avons procédé.

1. Test de le connection internet

Deux semaines avant l'événement, j'ai été testé la connexion internet disponible sur le lieu de la conférence. Muni d'un portable, je me suis connecté au réseau installé sur place. Il s'agissait d'une connexion internet cable TV. Le site www.speedtest.net permet de tester la qualité de la connexion. Le plus important pour une diffusion en direct, c'est la qualité de la connexion montante vers le fournisseur, à savoir la vitesse d'upload. Elle est mesurée en kilobits par seconde (kbps).

Sur le site speedtest.net, vous pouvez choisir vers quel destination tester la connexion. Si votre fournisseur de streaming est aux états unis vous pouvez tester vers une destination proche. Dans mon cas il s'agit d'un fournisseur allemand, j'ai donc testé vers Francfort.

La connexion cable était très bonne : 8000kbps en download et 900kbps en upload.

Ayant déjà réalisé des tests de compression, une vidéo de qualité "VHS" (youtube) demande environ 250 kbps pour la vidéo et 50 kbps pour l'audio. Ce qui fait un total de 300 kbps pour la transmission. Ayant de la marge (900 kbps dispo), j'ai configuré le programme de transmission pour envoyer deux fois le flux sur deux serveurs différents en cas de problème. Ce qui fait un total de 600 kbps en upload. Il reste de la marge sur la connexion au cas où. De plus cela permet d'ouvrir un browser pour tester le flux tel que vu par les spectateurs sans compromettre l'émission.Il ne faut cependant pas le laisser tourner tout le temps, la compression bouffant déjà énormément.

Vous devez également tester si le site est muni d'un pare feu. Si vous parvenez à voir directement une vidéo sur ustream.tv et à vous connecter sur leur système de chat, c'est probablement ok. Il vaut mieux désactiver tout pare feu sur le site de diffusion.

Un dernier test de durée devrait idéalement être effectué en faisant une diffusion test d'au moins 30 minutes. Certains providers diminuant automatiquement la bande passante après un certain temps. Assurez vous également que le site n'est pas près d'atteindre son quota mensuel.

2. Compte de streaming chez un fournisseur

Afin de diffuser votre flux, il vous faut un fournisseur capable de distribuer votre flux unique à plusieurs personnes à la fois. Je voulais un système qui ne demande pas de plugin particulier pour les visiteurs. Le seul système qui fonctionne à l'heure actuelle (fin 2008) c'est flash. La solution consiste à trouver un fournisseur qui propose un compte flash media server live.
J'avais d'abord pensé utiliser uniquement un service gratuit (justin.tv ou mogulus.com) mais j'ai eu peur qu'ils ne soient pas à la hauteur. Vous verrez plus loin si j'ai eu raison ou pas.

Je me suis tourné vers www.interlake.net qui propose des comptes à 90€ par mois pour 100gb de bande passante. Ce sont les moins chers que j'ai trouvé en Europe. Il existe aussi uvault.com et serverroom.us, ainsi que streamzilla.com. A vous de voir et de comparer.

Pour calculer la bande passante nécessaire, utilisez la formule suivante :

nombre de visiteurs x nombre de secondes x bande passante en kbps / 8 000 0000

Dans notre cas : 200 visiteurs x 7200 secondes x 220 kbps / 8 000 000 = 39,5 Gigas

Ce sont bien des gigaoctets, pas des gigabits. On compte toujours en Go la bande passante nécessaire.

Le fournisseur proposant un plan avec un forfait de 100gb, c'était ok, on pouvait d'ailleurs avoir plus de visiteurs que prévu.

Renseignement pris chez mogulus, ils assurent une diffusion sans problème jusqu'à 10.000 visiteurs simultanés. Cela me semble énorme, surtout pour un service gratuit. Me disant que "si c'est trop beau pour être vrai, c'est que ça ne l'est pas". C'est pour cela que j'ai finalement pris mogulus comme backup et interlake comme solution principale.
Cela dit, je suis en contact avec les développeurs de mogulus, et je peux dire que leur service est bien suivi (mieux que certains services commerciaux). Mogulus est à suivre de très près. Pour être sûr de la qualité du service. Je recommanderais interlake pour l'instant. "Future will tell"

3. Configuration du pc de diffusion

Si vous voulez une diffusion de qualité, avec un encodeur gratuit, il n'y a pas 36.000 solutions. Vous devez utiliser l'encoder d'adobe, disponible ici : www.adobe.com/products/flashmediaserver/flashmediaencoder/

Il n'est disponible que pour windows xp. Il vous faut un pc récent pour assurer un encodage en temps réel.

La configuration du soft est assez facile. vous sélectionnez l'entrée vidéo disponible sur le pc, le codec, la taille d'image, et la même chose pour le son. Ensuite vous encodez le serveur fourni par votre provider. Mogulus propose des explications dans leur guide. Si vous prenez un compte payant quelque part, vous recevrez un mail avec les infos. Il s'agit du serveur rtmp:// ainsi que le nom du flux.

Certains services vous proposeront d'utiliser directement votre navigateur pour encoder la vidéo. Cela marche aussi (pour autant que votre caméra soit reconnue par le plugin flash) mais le codec est nettement moins bon (sorenson) et la qualité d'image sera nettement inférieure. Vous n'aurez que peu de réglages sur la taille d'image et de son.

Voici les réglages utilisés sans flash media encoder :

– entrée image DV
– codec image : VP6
– débit image : 250 kbps
– taille image : 360 x 210 (en 16/9 s'il vous plait!)

– entrée son DV
– codec son AAC
– échantillonnage son : 44.1 khz (pour une conférence, c'est vraiment le son le plus important)
– débit son : 56 kbps

J'ai également configuré un autoadjust avec un buffer de 5 secondes, qui permet de compenser des pertes de débit réseau momentanés.

4. Connection de la caméra ou de la source vidéo

Il n'y a pas de secret, la qualité de la caméra est prépondérante. Nous avons utilisé une PD 150 de sony prêtée par la cinémathèque de la communauté française (nos collègues). Cette caméra est une tri-ccd qui dispose d'entrées XLR (un standard dans le son "pro"). La caméra reçoit en direct le son de la table de mixage de la salle. De cette façon on dispose du son mixé par l'ingénieur du son de la salle et pas d'un son micro caméra qui serait bien plus "pourri".

La caméra est placée sur un pied et reliée au PC par un câble firewire. Le son et l'image sont de ce fait parfaitement synchro vu que c'est la caméra qui numérise. Une solution moins satisfaisante mais moins cher consiste à utiliser une webcam et un bon micro et laisser l'ordi faire la synchro (bonne chance…)

Résumé :

– son salle -> cable XLR -> caméra DV PD150
– image caméra (en manuel s.v.p)
– caméra -> câble firewire -> PC
– PC -> flash media encoder
– flash media encoder -> connexion internet du lieu -> fournisseur (mogulus / interlake)
– fournisseur -> clients

(ouf)

Et c'est sans compter que sur le lieu de tournage, le signal passait par un modem wifi puis un routeur avant d'arriver au modem câble 🙂

Résultat : 100 personnes ont pu assister à la conférence, en direct, depuis leur navigateur web, sans rien installer. Ils on pu poser leurs questions sur un chat. La conférence a été enregistrée et est disponible ici : www.mogulus.com/yapaka/ondemand/pla_339952814454013515?initthumbu…

N'hésitez pas à me contacter si vous avez envie de partager vos expériences. La diffusion de vidéos en direct est encore fragile, mais en faisant attention à toutes les étapes, il y a moyen d'avoir un résultat professionnel à coût "service public" 🙂

Ceci pose également la question de l'avenir de la télévision traditionnelle. Un rapide calcul indique que cela coûte 10 eurocents par personne pour diffuser une émission de 2 heures. Je ne sais pas combien cela coûte en télé traditionnelle, mais j'imagine que c'est beaucoup plus. A bon entendeur …

Tous mes liens sur le sujet ici: delicious.com/onclephilippe/streaming

J'y ajoute régulièrement de nouvelles choses