{"id":421,"date":"2012-07-16T10:07:24","date_gmt":"2012-07-16T08:07:24","guid":{"rendered":"http:\/\/www.alkannoide.com\/?p=421"},"modified":"2012-07-17T10:28:09","modified_gmt":"2012-07-17T08:28:09","slug":"le-streaming-video-adaptatif-via-http-une-realite","status":"publish","type":"post","link":"https:\/\/www.alkannoide.com\/2012\/07\/16\/le-streaming-video-adaptatif-via-http-une-realite\/","title":{"rendered":"Le streaming vid\u00e9o adaptatif via HTTP : une r\u00e9alit\u00e9…"},"content":{"rendered":"
Dans le domaine de la vid\u00e9o en ligne, l’une des principales questions ces derni\u00e8res ann\u00e9es f\u00fbt de migrer des technologies classiques de streaming (RTSP<\/a>,\u00a0MMS<\/a>,\u00a0RTMP<\/a>…) vers du t\u00e9l\u00e9chargement via HTTP. Et ceci pour plusieurs raisons :<\/p>\n Le concept se pr\u00e9sente de la mani\u00e8re suivante\u00a0: diff\u00e9rents d\u00e9bits de la m\u00eame vid\u00e9o sont segment\u00e9s, voire fragment\u00e9s\u00a0(ces morceaux de vid\u00e9os sont appel\u00e9es des chunks). On liste ces diff\u00e9rents segments dans diff\u00e9rents fichiers manifestes permettant ainsi l\u2019ajustement d\u2019un d\u00e9bit \u00e0 l\u2019autre par le client. Le lecteur de ce dernier teste ainsi r\u00e9guli\u00e8rement l\u2019\u00e9tat du d\u00e9bit et t\u00e9l\u00e9charge le meilleur segment suivant dans sa m\u00e9moire tampon (comme le montre la figure suivante).<\/p>\n <\/p>\n L\u2019introduction de ces technologies a permis d\u2019un c\u00f4t\u00e9 de r\u00e9duire le co\u00fbt en bande passante pour la diffusion et la mise en cache de contenu et de l\u2019autre d\u2019optimiser l\u2019exp\u00e9rience utilisateur quelque soit son d\u00e9bit. En revanche, les co\u00fbts ont augment\u00e9s d\u2019une part en terme de temps de pr\u00e9paration de contenus (notamment en raison des multiples transcodages)\u00a0; d\u2019autre part, en terme de stockage de ces m\u00eames contenus (au lieu d\u2019un seul fichier auparavant, on se retrouve maintenant avec un nombre important de petits fichiers).<\/p>\n Il est important de noter qu\u2019en r\u00e9alit\u00e9, les technologies de streaming en multi-d\u00e9bit ne sont pas des technologies de streaming \u00e0 part enti\u00e8re comme par exemple RTMP\u00a0; elles se basent sur le t\u00e9l\u00e9chargement progressif des contenus sur le protocole HTTP.<\/p>\n HTTP Live Streaming (HLS)<\/strong><\/p>\n <\/a>Encore \u00e0 l’\u00e9tat de brouillon (en version 8)<\/a>\u00a0mais fortement d\u00e9ploy\u00e9e, cette technologie est propuls\u00e9e par Apple. On rencontre des vid\u00e9os HLS notamment sur les plateformes iOS (iPhone, iPad, iPod). On peut \u00e9galement en retrouver sur Android (depuis la version 3.0 : Honeycomb) et sur certains mod\u00e8les de t\u00e9l\u00e9visions connect\u00e9es. HLS se pr\u00e9sente sous la forme de manifestes (fichiers textes .m3u8) et de segments vid\u00e9os (.ts). <\/a> Il est possible de chiffrer les segments via l’algorithme AES. Le lien vers la cl\u00e9 de chiffrement est indiqu\u00e9 dans le manifeste. L’un des gros avantages de HLS est qu’il est possible de diffuser les contenus depuis n’importe quel serveurs HTTP (Apache<\/a>, NGinx<\/a>, …).<\/p>\n NB: dans le cadre d’une soumission d’applications pour l’Apple Store, il est n\u00e9cessaire de se fier aux sp\u00e9cifications vid\u00e9os<\/a> en fonction de la plateforme cible.<\/em><\/p>\n J’avais abord\u00e9 la vid\u00e9o sur iPhone dans un pr\u00e9c\u00e9dent billet.<\/a><\/p>\n Smooth Streaming<\/strong><\/p>\n <\/a>Smooth Streaming est fortement li\u00e9 \u00e0 l’environnement de d\u00e9veloppement Silverlight de Microsoft. La diffusion de Smooth Streaming s’effectue via des serveurs IIS int\u00e9grant le module Smooth Streaming<\/a>. La structure d’une vid\u00e9o Smooth Streaming se pr\u00e9sente sous la forme suivante:<\/p>\n Smooth Streaming est utilis\u00e9 via le plug-in Silverlight pour PC\/Mac, sur la Xbox et sur les terminaux mobiles Windows Phone 7.<\/p>\n HTTP \u00a0Dynamic Streaming (HDS)<\/strong><\/p>\n <\/a>HDS est support\u00e9 par Adobe. Fonctionnant sur le m\u00eame principe que HLS ou Smooth Streaming, HDS est d\u00e9fini via des fichiers manifestes au format XML : F4M et des segments vid\u00e9os au format F4V. Une pr\u00e9sentation de HDS est d\u00e9j\u00e0 disponible.<\/a><\/p>\n <\/p>\n Pour conclure, il y a cependant un probl\u00e8me \u00e0 tout cela, il reste toujours 3 formats de diffusion; les impacts sont notamment la multiplicit\u00e9 des encodages des vid\u00e9os (et je n’ajoute m\u00eame pas la gestion de DRM…).<\/p>\n\n
Le principe<\/h2>\n
Les formats actuellement disponibles<\/h2>\n
\n