Salut !
Je viens de potasser le PDF mis à dispo, très complet
J'aurais toutefois des ptits commentaires (non critique, juste ma vision des choses), surtout concernant le live (je ne m'interesse que très peu à la VOD... Ah si, juste une chose, l'encodeur
Flash Video fourni avec
Flash Pro CS3, couplé au
codec On2 est vraiment excellent !!!).
Pour le streaming live, l'architecture est souvent la même, et fonctionne ainsi:
Source vidéo (caméra) > Encodeur > routeur > internet > serveur de relai > internet > client
Généralement, pour chaque format choisi, une modification de la chaine complète est opérée.
Ainsi, pour le live en
Windows Media, on va faire tourner un
Codeur Windows Media 9 sur l'encodeur, on va natter le port utilisé dans le routeur (en TCP, la diffusion depuis le codeur se faisant en http) vers l'ip de l'encodeur.
Pour le relai, perso, j'ai un
Windows 2003 Server faisant tourner un
Windows Media Services, beaucoup plus pratique que l'ancienne version.
J'avais fait y a quelques temps des ptites animations pour configurer tout ça, dont voici les liens:
http://www.schinze.fr/_private/relai_live.exe http://www.schinze.fr/_private/diffuser_streaming.exe
(C'est des animations
Viewlet builder, garantis sans virus)
Pour ceux qui ne comprennent pas trop l'interet du relai, voici une chtite explication:
Tu as une caméra et un encodeur chez toi, avec une
connexion ADSL dégroupée (par exemple) avec du 20 mbps en download (mais on s'en fout) et
1 mbps en upload (ça c'est important).
Dans l'encodeur, on va choisir un débit offrant un bon compromis qualité/débit, et forcément inférieur au débit max d'upload de la ligne...
Donc dans le cas du mec qui a 1 mbps en upload, on va choisir un
débit d'encodage de 500 ~ 700 kbps (au dela, je trouve que c'est inutile) pour se garder une marge.
A partir de là, en considérant que l'on a bien
natté le port de l'encodeur (8080 TCP par défaut je crois dans le
Codeur Windows Media 9), un spectateur pourra lire le flux. 1 seul, pas 2...
Car on a 1024 kbps max en upload, avec un flux qui en bouffe 700.
1 spectateur = 700 kbps, c'est inférieur à 1024 >
OK
2 spectateurs = 1400 kbps, c'est supérieur à 1024 >
Ca passera pas
Donc, on utilise un relai, un serveur dédié situé dans un datacenter par exemple, bénéficiant d'une forte bande passante, qui sera l'unique connecté aux yeux de l'encodeur, et qui diffusera, avec beaucoup moins de restriction, le flux qu'il lira depuis l'encodeur, vers un nombre, souvent indéfini, de clients.
Ce schéma est général, quelquesoit la technologie utilisée...
Dans mon métier, j'ai eu l'occaz de tester donc un encodage en
Windows Media, avec la chaine présentée ci dessus (+ le client, qui lit un flux type
mms://serveur.de.relai/pointdacceslive), ainsi que
VLC (on peut faire de l'encapsulation UDP, en emission, relai et reception, super pratique pour le streaming, car l'UDP ne demande pas d'acknowledge, et mange donc beaucoup moins de BP !!! et en plus, on peut rajouter une couche d'encapsulation multicast pour les clients situés dans un réseau compatible IGMP) et
Flash Video (mon préféré !!!)
Perso, j'ai choisi ces 3 formats pour ces raisons:
- Windows Media: Car c'est, selon mon expérience, le plus stable et le plus performant. Mais le plus gourmand en bande passante, et payant.
- VLC: Car ayant un réseau privé satellitaire, je peux profiter de l'IGMP et donc faire du multicast, donc sans relai. En version web (encodeur + relai + client) VLC est excellent niveau débit/qualité comparé à Windows Media, mais beaucoup moins stable. Par contre, il est gratuit et peut tourner sous tout systeme d'exploitation (j'ai un serveur de relai sous Debian)
- Flash Video: J'en suis tombé amoureux, pour la simple raison que je suis un fana du format Flash Video, déjà pour la VOD, et qu'il existe enfin un équivalent pour du live. L'avantage du flash, c'est une totale portabilité du flux, tout OS confondu, sans logiciel client (nécessite un navigateur web avec le client flash installé, ce qui représente la quasi totalité des ordinateurs). Les points faibles, tout de meme: l'encodeur ne tourne, pour le moment, que sous windows. Le relai est assuré par
Flash Media Server 2, payant, tournant sous Windows et Linux. J'l'ai installé sur un Debian, faut quand même s'y connaitre un chtit peu pour faire tourner tout l'bouzin !
Perso, Real et Quicktime ne m'interesse pas, car je ne veux pas faire installer de logiciels propriétaires sur mes postes clients (Windows), question de politique interne.
Histoire de mettre une image sur le genre d'architecture que je mets en place, voici un ptit schéma simplifié:
Et une version avec du clustering et load balancing
Histoire d'être bien exaustif, voici un détail des références matérielles et logicielles utilisées:
- Caméras: Sony HDR FX1
- Régie vidéo: Sony AnyCast (firewire vers PC, analogique vers recorder miniDV)
- Encodeur: PC Windows XP de compétition (3 Ghz, 2 Go de Ram etc...) avec entrée firewire, je n'utilise pas d'analogique
- Bande passante: Free dégroupé, 1 mbps en upload,
- Logiciel encodage: Flash Media Encoder ou
Windows Media Encoder 9, ça dépend de mon humeur et mes besoins, encodant à 700 kbps
- Serveur de relai: Dedibox, avec
Debian et
Flash Media Server 2, ou Windows 2003 Server avec
Windows Media Services, fonction du format d'encodage choisi.
- Lecture finale du flux: Soit avec un embed de player flash, soit avec une URL mms pour Windows Media Player (j'utilise parfois le format Windows Media pour gérer de l'authentification pour les flux sécurisés)
Concrètement, on se tappe le délire de diffuser en live des répétitions ou concerts de groupe de ma région par exemple
Voili voila, j'espère ne pas vous avoir trop ennuyé en vous racontant ma ptite vie ^^