Streaming : encodage vidéo et calcul de bande passante.

Chaîne du streaming vidéo
streaming media content

Salut à vous, ancien fondateur et gérant de ma p’tite PME spécialisée dans le streaming à Bordeaux, je tenais à mettre en ligne un peu de mes modestes connaissances accumulées dans le domaine de la diffusion de vidéo sur le web.

Cette démarche n’a qu’un seul but : vous aider à faire le bon choix dans le cas ou vous auriez besoin de faire appel à des professionnels dans ce secteur d’activité. Cet article répond aux questions récurrentes posées par mes anciens clients, questions que certains se posent encore aujourd’hui.

Comment faire pour calculer la bande passante nécessaire à mon hébergement de streaming ? Comment dois-je encoder mes vidéos? Combien vais-je consommer de trafic ? Pourquoi la bande passante est en kbps et la facture en Ko, etc, etc.

La difficulté de compréhension repose au départ sur une confusion de termes mal interprétés, à savoir les Kilobits (Kb) ou KiloBytes (KB) et ça s’applique bien sûr aux Megabits (Mb) et MegaBytes (MB). Au départ, il faut savoir que 1 octet = 8bits. Tout démarre de là et pour comprendre dans le détail, je vous conseille de consultez l’explication disponible sur wikipedia.

Bref, les pionniers du streaming comme Apple et Realnetworks annonçaient dans leurs logiciels d’encodage et dans leurs documentations des taux d’encodage (sample rate) en bits et non en Bytes, le Byte étant la traduction du mot octet en anglais.

Certains logiciels font le contraire et proposent des niveaux d’encodage indiqués en Bytes/s…Grosse connerie car ça fout un beau bordel pour comprendre et savoir pourquoi et que comment qu’il faut y faire … N’est-ce pas ?! Les FAI (fournisseurs d’accès à internet) utilisent également cette norme ou unité pour préciser la largeur de leur bande passante.

Conseils encodage streaming video

Exemple : Comment interpréter 512Kbps ? Cela signifie 512 Kilo-bits par seconde, la quantité de bits et donc de groupe de 8 octets transportés en une seconde, ce qui veut dire que 512Kbits = (512/8) kilo-octets/seconde cad 64Ko/s = 64KB (bytes)/s… D’accord ?

C’est idem pour le débit montant en envoi vers le réseau qui en général et dix fois inférieur au débit descendant (mais rassurez-vous, le débit annoncé et facturé est souvent celui que vous aurez uniquement dans le meilleur des cas, mais il est généralement inférieur vue la politique de débit aléatoire et non garanti pratiquée par les FAI…ça c’est dit) ;-).

Cette régle est valable pour une diffusion sur un site web ou un site pour ipad ou iphone, tant qu’il y a une notion de bande passante ça s’applique à tout. Faut ensuite calculer en fonction du poids de vidéos et de leur destination.

Cette confusion a généré l’incompréhension d’un grand nombre de webmasters. Maintenant, si votre vidéo doit être diffusée en vrai streaming (et non en téléchargement) cela signifie que la totalité des images (ou une partie seulement) est récupérée en temps réel durant le visionnage par le biais de votre media-player (tout comme sur la sony PS3 quand vous mattez des films en streaming).

Donc, si votre cible d’internautes (ou client, ou recepteur) est équipée d’une connexion à 512Kbits/s en réception, alors vous devrez encoder votre fichier audiovisuel de telle sorte qu’il voit son poids en octets ne pas dépasser la largeur de bande passante de vos clients cibles, leur permettant ainsi de recevoir et de visionner le contenu « optimisé » en temps réel et en continu (optimisé signifie que le serveur de diffusion se charge de distribuer au mieux les images en fonction de la qualité de connexion des récepteurs et de leur nombre… on verra pourquoi plus tard !).

Pour que la lecture continue du flux soit fluide et sans coupure, le niveau ou taux d’encodage audio/vidéo doit être de 25 à 40% inférieur à la bande passante de votre audience cible. Sinon les clients seront confrontés à des coupures récurrentes, on dit alors d’habitude que la diffusion « bufferise » (beufeurize en français).  Ce qui veut dire que la lecture est suspendue temporairement, le temps que de nouvelles images soient préalablement téléchargée est stockées dans une zone tampon (buffer, ou cache).

Ça correspond à un volume suffisant d’images pour pouvoir reprendre et continuer la lecture en temps réel durant le téléchargement des images restantes, et limiter ainsi les coupures. Pour se faire, si vous diffusez un contenu à l’attention des internautes équipés d’une connexion de 1Mbits/s, vous pouvez encoder votre vidéo en 512kbps, ça passera a priori bien et sans « beuffeur ». 😮

Cette notion s’applique également au serveur de diffusion : côté serveur, si vous hébergez des vidéos encodées à 512Kbps sur un serveur de streaming disposant d’une bande passante en envoi (« upload ») vers le réseau de 10Kbps, alors vous risquez à 100% de ne jamais avoir d’audience.

Streaming video Bordeaux

Une précision supplémentaire : il faut pas confondre la diffusion en faux streaming ou « progressive download » (diffusion qui n’est pas optimisée par un serveur de streaming mais qui est gérée depuis un serveur d’hébergement de site internet standard) avec la diffusion en streaming via des serveurs et réseaux telecom spécifiques.

Dans le « progressive download » vous regardez en même temps que le contenu est téléchargé dans son intégralité. Cette technique passe mieux aujourd’hui depuis l’amélioration globale des connexions à haut débit mais le plus souvent vous ne pouvez pas regarder l’intégralité durant le téléchargement : le contenu est souvent encodé à un niveau élevé et distribué par des serveurs web n’offrant pas la bande passante suffisante à un visionnage durant la phase de téléchargement. Difficile de diffuser un flux de ce type vers 2 ou 3 personnes en train de télécharger et de regarder simultanément votre fichier audiovisuel. A la limite, sur de l’audio ça peut encore passer.

Pour en revenir au calcul de la bande passante, la question se pose en fonction de votre audience. Posons un exemple simple : Votre site internet grand public dispose d’une vidéo en page d’accueil de 10 secondes, encodées à 100Kbps. Le site reçoit 1000 visites quotidiennes, combien de bande passante vais-je consommer par mois ?

Si la vidéo est en page d’accueil au format Flash, on peut considérer qu’elle sera vue par la totalité de vos visiteurs. Donc en gros, vous aurez 10000 secondes de diffusion par jour et votre vidéo est encodée à 100kbps. Ce qui fera donc 10000s X 100kps = 1.000.000kbps par jour / 8 = 125 000Ko de trafic en bande passante par/jour ou 125Mo/jour X 30 jours = 3750Mo de trafic en bande passante/mois (ou 3,75Go si vous préférez).

Pour finir sur ce point, vous pouvez affiner vos calculs, sortie des estimations plus précises en fonction de la cible et de vos statistiques d’audience quotidienne sur votre page d’accueil ou sur tout autre page.

Comme je pense à vous, je vous laisse à disposition ce fichier Excel Calculateur-trafic-bande-passante qui vous permettra de calculer vos besoins et consommation de bande passante en Mo et en Go en fonction de l’audience quotidienne, hebdomadaire ou mensuelle ainsi que du nombre de vidéo et de leur durée.

Ce tableau vous permettra de calculer le coût du trafic mensuel en fonction du prix du Go de trafic unitaire proposé par le prestataire. Tous les prestataires facturent de cette manière alors ça devrait pouvoir vous servir si vous êtes un professionnel concerné.

Voilà, pour ce point c’est fait : vous savez comment encoder vos streaming vidéos et calculer votre trafic en bande passante. Je ne manquerai pas de vous rédiger un ou deux petits articles supplémentaires sur l’hébergement en lien avec la qualité d’image des vidéos encodées. A plouch… et laissez des commentaires sympa si cet article vous a été utile. Merci.

7 réflexions sur “Streaming : encodage vidéo et calcul de bande passante.”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.