Une des questions qui m’a été le plus souvent posée au cours des dernières années lorsqu’on parle de livrer du contenu vidéo sur IP est la suivante : “Quelle est la différence entre du Progressive Download et du Streaming ? Pourquoi choisir une méthode plutôt que l’autre ?”. Chacune des deux méthodes est bien distincte et a ses avantages et ses désavantages.
Progressive Download
Cette méthode de livraison utilise à la base un simple serveur web. Parfois, on le réfère à du “http streaming”, mais en réalité, ce n’en est pas vraiment. Le serveur web ne fait que pousser les données le plus rapidement que possible sans se soucier en quel débit le fichier vidéo a été compressé. Sur la plupart des plateformes de livraison (Windows Media, Flash, Real), le lecteur permet de démarrer le visionnement du clip avant que le fichier ne soit entièrement transféré. Aussitôt qu’il y a assez de données pour procéder à une lecture continue, le lecteur se mettra à jouer le clip.
Avec cette méthode, que vous ayez un modem 28.8…ou que vous ayez le forfait extrême par câble, vous visionnerez le clip avec la même qualité. Seul le temps de téléchargement variera. Vous ne pourrez par contre pas avancer à un endroit du clip qui n’a pas encore été téléchargé. En réalité, il y a une façon de le rendre possible, mais à la base, ce n’est pas possible.
Cette méthode est avantageuse dans les cas suivants :
- Les vidéos à livrer sont courts (2, 3, 5, 6 minutes) et nécessitent donc un temps de téléchargement raisonnable, même avec une connexion plus lente.
- La qualité prime sur l’accessibilité
- Les clips à diffuser sont avant tout des clips sur demande
- Minimiser les coûts de déploiement (simples serveurs web)
- Vous n’avez pas besoin de faire du direct
Streaming Server (Serveur de diffusion en continu)
Un serveur de diffusion en continu (streaming), est un logiciel qui reconnait le format des fichiers, la bande passante disponible, la structure des fichiers et porte attention à comment le fichier est joué sur le lecteur client. Cette méthode transmet les données en fonction du débit du fichier demandé. Ainsi, un fichier encodé à un débit de 300kbps sera livré à 300kbps. Il y aurait des précisions à faire ici, mais à la base c’est ce qui se passe. Étant donné que le serveur de diffusion est en constante communication avec le lecteur client, le débit de livraison peut même s’adapter en suivant les fluctuations du réseau. La technologie Windows Media, entre autre, peut livrer des fichiers encodés en MBR (multiple bitrates). Grosso modo, c’est un gros fichier dans lequel plusieurs débits du même clip se retrouvent. Ainsi, si la bande passante entre l’Internaute et le serveur de diffusion se dégradait, automatiquement, le serveur de diffusion compenserait en livrant un des débits inférieurs inclus dans le fichier mère.
Le serveur de diffusion permet également de monitorer de façon précise ce que l’Internaute visionne et pendant combien de temps exactement il le regarde. On n’a aucun contrôle sur la présence ou non de l’Internaute devant l’écran par contre
Contrairement au progressive download, le fichier ne se retrouve pas dans son entièreté sur l’ordinateur de l’Internaute. Les données envoyées sont affichées, puis éliminées aussitôt. On a ainsi un plus grand contrôle sur le contenu.
Finalement, si vous avez besoin de faire un direct, un serveur de diffusion devient une nécessité. Ce serveur permet également de livrer le contenu en multicast (j’en parlerai dans un prochain billet).
Cette méthode est donc avantageuse dans les cas suivants :
- Effectuer une diffusion en direct
- Recueillir des données statistiques extrêmement précises et détaillées sur les visionnements
- L’accessibilité prime sur la qualité
- Plus grand contrôle sur l’usage de la bande passante
utilisée (seules les données de la portion visionnée sont transférées) - Plus grand contrôle sur le contenu
- Les clips à diffuser sont de longue durée (30, 45, 60 min)
Ce billet n’est en fait qu’une simple introduction aux 2 méthodes de livraison, et votre choix, qui pourrait très bien être également une combinaison des deux, nécessitera une analyse plus en profondeur de vos besoins : voulez-vous votre propre infrastructure?, quel(s) formats diffuserez-vous? (Un serveur de diffusion Windows Media est inclu avec l’OS, pour un serveur Flash Media, il vous faudra débourser quelques milliers supplémentaires en argent ou en temps - des solutions OpenSource sont disponibles), la protection des droits d’auteurs est-elle critique?, Ferez-vous de la diffusion en direct?, Synchroniserez-vous des éléments au stream vidéo?, etc.
De plus, d’autres méthodes autres que les deux mentionnées sont également disponibles, mais moins répandues. Si vous désirez plus d’informations et connaître en détail toute la mécanique derrière, je vous inviterais à consulter les quelques liens plus bas. Vous pouvez également communiquer avec moi, il me fera plaisir de vous aiguiller correctement
http://www.microsoft.com/windows/windowsmedia/compare/webservvstreamserv.aspx
http://www.microsoft.com/windows/windowsmedia/forpros/serve/features.aspx
http://www.flashcomguru.com/index.cfm/2005/11/2/Streaming-flv-video-via-PHP-take-two
http://www.adobe.com/products/flashmediaserver/productinfo/pricing/




Bonjour,
Je trouve votre article très intéressant. Je me pose la question suivante: quel technique utilise Youtube? car on parle souvent de streaming, or Wikipedia le place dans le “streaming progressif” qui correspond à votre “Progressive Download”..et non pas le vrai streaming. Merci
Effectivement, vous avez vu juste.
YouTube ne fait pas du réel streaming, mais plutôt du téléchargement progressif (progressive download). Pour être plus précis, ils y ont ajouté une méthode pour effectuer du “pseudo-streaming” ou “faux-streaming”. Ainsi, même si le clip en entier n’est pas encore téléchargé, il vous est possible d’avancer à toute position du clip. Cette méthode est relativement simple à implanter. Différents “hacks ” existent, dont le plus populaire, via PHP.
Il n’en reste pas moins, que cela demeure du téléchargement progressif. Le clip sera téléchargé aussi vite que la connexion le permettra, à moins de faire du “bandwidth throttle”. Ainsi donc, même si un utilisateur ne visionne que les 15 premières secondes d’un clip, il sera facturé, ainsi que le fournisseur, pour le data transféré.
Manuel
Bonjour,
A t on une idée de la différence générée par un serveur de streaming ?
En effet, cela laisse penser qu’il y a plus de trafic de controle, d’adaptation .. et donc cela génèrerait un overhead réseau supplémentaire ?
Et donc un cout supplementaire en baden passante ? non ?
Au contraire. Prenez l’exemple suivant : vous devez livrer une vidéo sur demande d’une durée de 15 minutes. Si vous utilisez la méthode en téléchargement progressif et que l’utilisateur quitte au bout de 5 minutes de visionnement, il a de fortes chances qu’il ait téléchargé les 15 minutes en entier même s’il ne les a pas visionnées. Via du streaming, il ne vous en coutera que les minutes réellement visionnées.
Manuel
je me demandait, Mon père me dit souvant que le download prend Plus de data que le streaming.
je m’explique:
Si je télécharge via un site quelqu’onque et que le fichier est stockée reellement sur mon disque dur.
ou si je prend le même fichier, mais que je le regarde en streaming.
lequel des deux prendra le plus de data sur ma facture de fournisseur internet?
merci de me clarifier sur se sujet.
Bonjour Sébastien,
Et bien, ton père a raison en partie. En fait, c’est vrai si l’on compare du téléchargement progressif conventionnel et du streaming traditionnel.
Ce qui se passe en téléchargement, comme par exemple sur YouTube, c’est que le fichier se téléchargera aussi vite que la bande passante le permettra. Ainsi, si le clip vidéo que vous regarder est ennuyant et que vous cliquer ailleurs, il y aura de grandes chances que vous aurez téléchargé bien plus de données que ce que vous aurez réellement regardé.
En streaming, le débit de diffusion est fourni par un serveur de streaming qui s’assurera de transmettre le vidéo à un débit correspondant à celui du fichier encodé. Un fichier encodé à un débit de 300kbps sera livré à 300kbps.
Contrairement au progressive download (téléchargement progressif), le fichier ne se retrouvera pas sur l’ordinateur de l’Internaute. Les données envoyées sont affichées, puis éliminées aussitôt. On a ainsi un plus grand contrôle sur le contenu.
Bonjour,
Je dois implémenter une application web pour Smartphone (test sur iPhone et Android au début). Le but est de visionner des clips vidéos d’une durée de 2 à 3 min. Ma question est simple. Quel est le système de diffusion le plus adéquat : du streaming ou du téléchargement progressif ? En prenant en compte que la vidéo doit s’adapter à la connectivité de l’appareil (GPRS, 3G, wifi,…) et que l’utilisateur ne doivent pas attendre 2 min pour visionner le clip…
Merci d’avance pour votre réponse.
bonjour et merci pour tes informations.
j’ai une question que je me pose depuis un moment et impossible de trouver une réponse.
Nous somme d’accord, youtube utilise du progressive download mais avec cette la capacité pour l’utilisateur de réaliser des sauts dans une partie de la vidéo pas encore reçue.
Donc, est-ce qu’ils utilisent des serveurs de streaming qui diffuse en HTTP ou alors ils utilisent des serveur web qui sont dédiés à la diffusion de flux?
Merci d’avance pour votre réponse.
Youtube utilise une infra de serveurs Web.
Du téléchargement progressif ne requiert rien de plus.
M.