Comment réaliser un direct broadcast vidéo par internet ?

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 : http://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 : http://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: http://delicious.com/onclephilippe/streaming

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

Commentaires

Cas d'une camera IP

Bonjour,

Comment ça pourrai se passer pour recuperer le flux capter par une camera ip dans mon flash media encoder pour le transmettre a mon serveur de streaming? Aurrais-je toujours besoins d'une carte firewire?

Pas évident

C'est moins évident. La caméra IP ne sera pas reconnue par flash media encoder je suppose.

Flash media encoder supporte tous les périphériques qui proposent un driver windows et sont reconnus comme périphérique de capture vidéo (webcam, carte firewire, carte de capture analogique...)

Il faut vérifier mais à mon avis ça ne marchera pas. Dans ce cas, soit la caméra propose une sortie vidéo qui peut être exploitée par une carte de capture, soit il faut changer de caméra :-)

diffuser en live

bonjour Philippe,
J'ai créé une webtv avec JUSTIN.TV que vous citez plus haut et j'ai suivi vos explications, ou plutôt, j'ai tenté de comprendre..
J'aimerais diffuser des évenements sportifs en "live" et étant très basique au niveau informatique vous serait-il possible de m'indiquer, pas-à-pas, en langage leplus simple pour moi, la marche à suivre?
Je n'arrive à trouver personne qui m'indique cela.
Vous pouvez me joindre par mail okman1959@hotmail.fr
merci
Pascal

Je vous conseille de suivre

Je vous conseille de suivre les explication proposées sur le site justin.tv

plus générallement, les sites de vidéo live ont tous un lien "help" quelque part. Vous trouverez en l'occurence votre bonheur ici : http://fr.justin.tv/help_resources

votre article

Bonjour

Merci pour cet article !
Je bossais sur ce sujet depuis un certain temps. J'ai opté après pas mal d'essais pour moqulus. C'est un outil vraiment excellent et très pro. Je m'en sert pour diffuser du live (avec flash média encoder) ou des documentaires historiques...vraiment extra
Merci
Pierre

http://www.histoquiz-contemporain.com/accueil.htm

http://www.histoquiz-contemporain.com/forum/index.php

avoir un serveur de streaming

salut,
est ce que je peu avoir mon propre serveur de streaming, c'est a dire avoir un serveur comme mogulus mais juste pour mon tv?
merci

VLC

Vous devriez pouvoir le faire avec VLC : http://www.videolan.org

Problème de résolution

Bonjour

J'ai un petit soucis de diffusion. Je diffuse actuellement des documentaires en 352/288 avec flash media encoder sans problème je voudrais les diffuser en 384/288 mais j'obtiens un superbe plantage de ma bécane qui s'arrête en urgence. Ecran noir avec texte: "arrêt d'urgence pour éviter d'endommager votre ordinateur etc"
J'ai fait le tour de divers forum...je n'ai pas trouvé de réponse à ce problème. Sauriez vous par bonheur d'où cela pourrait bien provenir ? Je ne vois pas du tout.
Merci pour votre réponse
Cordialement
Pierre

Peut être un problème de

Peut être un problème de codec? Peut être que la format d'image n'est pas un multiple de 2 ou de 16 pixels ?

Aide concernant le streaming sur mon propre site

j'ai besoin d'information concernant , et ceci pas a pas car ma classe demande le devoir au plus vite que possible , alors aidez merci...

infos en or

Bonjour Philippe ! c'est génial tout ce que vous avez ecrit sur la vidéo en live ! je dois lancer une cession importante avec 2 cameras qui doivent filmer en direct durant 24 h et je cherche un "genie" qui pourrait m'aider à parametrer tout ça avec certitude ...

pourriez vous m'aider ???
a.solomon@am-groupe.fr
01 75 43 25 92
06 15 02 21 81

Merci

bonjour ,

salut qui veut m' aider à distance pour configurer pctv 400i analogue avec adobe flash media encoder server pour diffuser sur justin .....je capture la webcam mais je vois écran vert quand je change pour carte satellite,

NTSC/Analog TV....
je n' ai pas de domaine pour partager le flux, ya til un moyen gratuit. et je ne sais pas utiliser xml pour configurer serveur , aidez moi....

Demande d'aide dans le cadre d'un stage.

Monsieur,

Je suis actuellement en stage au sein d'une entreprise qui me demande de faire une étude et ensuite d'installer un parc de caméras IP dans un but touristique. Je dois donc diffuser de la vidéo en temps réel de façon à ce que chaque caméra puisse accepter 500 personnes chacune de façon simultanée. J'ai eu beaucoup d'échos concernant un "server vidéo streaming" (ou serveur de flux) et j'aurais aimé avoir plus de précisions à ce sujet (quelles sont les aspect a étudier avant la mise en place, quel matériel, ...).
Aussi, j'aurais aimé savoir s'il était possible de vous contacter en privé afin de vous donner de plus amples détail sur mon projet.
En vous remerciant de l'attention que vous voudrez bien porter à ma requête, veuillez accepter, Monsieur, l'expression de mes respectueux sentiments.

Je n'arrive pas a diffuser les evenements en live

Malgre toute les etapes que j'ai suivi tres bien mais quand je click sur start,ca ne marche pas ou du moins ca prend du temps et en fin de compte,il me donne un message:"reestablishing connection,try 1".Est ce que quelqu'un pourrait m'aider S.V.P. Deja je vous dis merci pour ta reponse que j'espere qui sera explicite.

broadcast video

Moi aussi j'ai eu "arrêt d'urgence pour éviter d'endommager votre ordinateur".

Billy

Bonjour, J'essaye de faire

Bonjour,

J'essaye de faire un stream live avec Adobe Flash Media Encodeur 3 sous Windows vers un serveur Flash Media Serveur 3.5.
Savez-vous pourquoi je dois attendre 2:30 avant d'avoir la vidéo et le son sur le lecteur (client) ?
Une fois que j'ai le son et la vidéo il y a un décallage de quelques secondes seulement.
Avez-vous déjà eu ce problème d'attente du flux pendant 2:30 soit 180 secondes ?

Merci d'avance,
--
Cordialement

Je ne sais pas vous

Je ne sais pas vous répondre. Mais en tout cas, si le délais est précisément de 180 secondes, il doit s'agir d'un timeout de type réseau (style un proxy ou un dns mal réglé)

Poster un nouveau commentaire

Le contenu de ce champ est gardé secret et ne sera pas montré publiquement.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <h1> <h2> <h3> <p> <br>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plus d'informations sur les options de formatage