Il y a un peu plus de 2 ans, je publiais un billet intitulé - Streaming vs Progressive Download…que choisir? J’y expliquais les principales différences entre le progressive download et le streaming, ainsi que quelques conseils afin de faire la bonne sélection.
À ces deux principales méthodes de livraison vidéo sur le Web, s’ajoute l’Adaptive Streaming. Bien qu’il existe plusieurs saveurs d’Adaptive Streaming, la plus connue est sans aucun doute celle de Microsoft : le Smooth Streaming. Notez bien que le Dynamic Streaming switching d’Adobe demeure basé sur le protocole RTMP et n’en fait donc pas du vrai Adaptive Streaming utilisant l’HTTP.
L’ Adaptive Streaming, qu’est- ce que c’est?
C’est en fait une méthode de livraison vidéo hybride qui réagit comme du Streaming, mais qui est basée sur le HTTP-Progressive Download. Plus concrètement, la vidéo transmise est découpée en morceaux de 2 à 4 secondes qui sont transportés via le protocole HTTP. L’affichage de la vidéo est donc une récupération d’une longue série de petits bouts de fichiers reçus en téléchargement.
Chaque morceau peut être hébergé sur un simple serveur Web et peut également tirer profit des Caches HTTP existantes. De là, il est téléchargé par le client d’une façon linéaire et au fur et à mesure, la vidéo est reconstituée en faisant jouer les morceaux de façon continue.
La partie “adaptive” intervient lorsqu’une vidéo est encodée en plusieurs débits. Ainsi, pour chaque 2 secondes, une multitude de morceaux correspondant au débit associé seront générés. Lorsqu’ils sont parfaitement alignés et synchronisés, cette technique permet de faire varier la qualité de la vidéo affichée en fonction de la bande passante disponible, et ce, d’une façon transparente pour l’internaute sans jamais rompre l’expérience de visionnement. Grâce à cette technique, la vidéo HD sur le Web devient chose du possible, sans toutefois laisser de côté des utilisateurs dont le CPU ou la bande passante ne pourraient le permettre.
La solution Smooth Streaming de Microsoft permet en plus, de réunir tous les morceaux d’un débit dans un seul et même fichier. La gestion des fichiers en est ainsi extrêmement simplifiée.
Avant l’arrivée du Adaptive Streaming, d’autres façons d’adapter le contenu vidéo en fonction de la bande passante existaient - et existent toujours - lorsque l’on effectue du Streaming “standard”. Le MBR (Multi Bit Rates) ou Intelligent Streaming de Microsoft par exemple, permet de réunir plusieurs débits d’une même vidéo dans un seul et même fichier. Le serveur Windows Media étant en constante communication avec le client Windows Media, établit le juste débit à servir en fonction de la bande passante disponible. Apparue en 2000, cette méthode demeure largement utilisée, mais est loin d’être parfaite. En fait, par le temps que les conditions dégradées du réseau soient détectées, l’internaute a souvent le temps d’expérimenter quelques “rebuffering” et “lags” de la vidéo. De plus, les key-frames des vidéos encodés pour chaque débit n’étant pas parfaitement alignés, il est pratiquement impossible de passer d’un débit à l’autre sans interruption.
Malgré tout mon amour pour le MBR, Silverlight ne le supporte pas. Cela nous aurait été fort utile dans bien des cas, mais l’arrivée du Smooth Streaming nous offre des possibilités encore plus excitantes.
En résumé, voici quelques avantages du Adaptive Streaming face aux autres méthodes de livraison:
- Coûts moins élevés pour le déploiement - l’adaptive streaming prend avantage des serveurs Web et des caches/proxies déjà en place
- Expérience utilisateur beaucoup plus fluide, même lors de conditions changeantes dans la qualité du réseau
- Démarrage pratiquement immédiat du contenu vidéo en présentant à l’utilisateur le débit le moins élevé au départ et progressant graduellement au débit approprié à sa bande passante disponible.
- Aucun buffering et déconnexion*
Tout cela est bien excitant, et je vous dis cela en ayant les mains dedans actuellement. Nous en sommes par contre au tout début de cette technologie. Une fois que cette méthode de livraison sera intégrée dans l’offre de service de la plupart des CDN et que des encodeurs Adaptive Streaming “live” se feront moins rares…, attendez-vous à un raz-de-marée de diffusions qui utiliseront cette méthode de livraison.
Plus sur le sujet :
Streaming Gets Smarter: Evaluating the Adaptive Streaming Technologies




Bonjour,
Tout d’abord bravo et merci pour votre article concernant le streaming en générale. Ils m’ont permit d’y voir plus claire sur ce sujet.
J’ai tout de même quelques questions.
-Est-ce que youtube utilise maintenant le fameux “Adaptive Streaming” ?
-Si le protocole http est utilisé. Comment l’utilisateur final remettra les paquets reçu dans l’ordre?
-Comment fait-on pour posséder une seule vidéo qui est encodé en plusieurs débits? Y-a-t-il un logiciel permettant cette réalisation?
Merci
Bonjour Yvan,
Non, Youtube n’utilise aucunement en ce moment du Adaptive Streaming. Ça demeure du téléchargement progressif.
Pour ce qui est du http adaptive streaming. Voici de la documentation qui pourra vous éclairer :
http://alexzambelli.com/blog/2009/02/04/the-birth-of-smooth-streaming/
http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/HTTPStreamingArchitecture/HTTPStreamingArchitecture.html#//apple_ref/doc/uid/TP40008332-CH101-SW2
Pour ce qui est de l’encodage multi-débit. Cela dépend de ce que vous voulez faire…Est-ce pour du direct? De la VSD? En Streaming ou en Adaptive Streaming?
Un logiciel comme Windows Media Encoder vous permettra de produire des fichiers multi-débits WMV autant pour du direct que du sur demande. Si c’est pour du Adaptive Streaming, et plus précisément du Smooth Streaming, vous pourrez utilisez Expression Encoder pour des fichiers sur demande. Pour du direct, c’est un peu plus complexe et surtout plus dispendieux. Il vous faudra recourir à des encodeurs fournis par des entreprises telles que Inlet, Envivio ou Rhozet.
Manuel
Bonjour
Merci pour cet article clair et riche en informations.
sinon ma question est la suivante, est ce qui a pas en projet une idée d’implémenter l’adaptive streaming pour du RTP/RTCP ? et à quelle limite cela serait-il possible? du fait que c’est le protocole qui est principalement utilisé dans les diffusions pour IPTV.
Bonjour,
Je réalise une web-application pour smartphone (iPhone principalement au début) avec la diffusion de vidéos. La connectivité sur smartphone varie beaucoup entre le EDGE, le 3G ou le wifi et je me demande si ca peut influencer sur le choix du type de diffusion. J’aimerais savoir quel mode de transfert est le plus adapté. Mes vidéos sont d’une durée de 2 à 3 minutes. Entre streaming, téléchargement progressif et maintenant adaptive streaming, je suis perdu pour savoir quoi prendre.
Merci d’avance pour votre réponse.
@Massou : Oui. Voici quelques liens utiles
http://x264dev.multimedia.cx/?p=286
http://ip.hhi.de/imagecom_G1/artst.htm
M.
@David
Comme le contenu est relativement court - clips de 2 à 3 minutes, j’opterais pour ma part pour du téléchargement progressif. Ça permettrait de garantir une même qualité pour tous - sans trop augmenter le temps d’attente. Il faudra faire quelques essai-erreurs et s’ajuster avec la réponse de l’auditoire.
Par contre, ceci ne prend pas en compte d’autres facteurs qui peuvent influencer la méthode de livraison : droits d’auteurs, vidéos en direct, appareils ciblés, etc.
M.