Qui aime attendre pour charger une vidéo ? probablement personne. Du coup quand vous arrivez sur une page avec une vidéo, le lecteur précharge le début au cas où vous voudriez la jouer. Même une fois en lecture, votre logiciel tente d’avoir toujours une avance confortable sur le chargement de la vidéo afin de vous éviter d’avoir à attendre. Sur le principe c’est bien.
Que précharger ?
Mettons ça en rapport avec une statistique : 87% de ces contenus sont abandonnés après les 10 secondes. Quelqu’un m’explique alors pourquoi on s’évertue à précharger par défaut l’intégralité de la vidéo sur YouTube et autres ?
Une vidéo moderne sur ces plateformes fait dans les 10Mo. Celui qui a la chance d’avoir une bonne connexion internet va télécharger ça très vite… neuf fois sur dix pour rien. Je n’imagine même pas les anciennes machines ou les connexions RTC. Télécharger par défaut la vidéo empêche de fait de charger plusieurs onglets pour les lire plus tard.
Quid de ne précharger que les trente premières secondes des vidéos, et attendre que l’utilisateur ait dépassé la quinzaine de secondes avant de faire précharger les trois minutes que durent en moyenne ces vidéos ?
Et le reste ?
Tout ça ne sont que des réflexions en l’air. Je suppose que les décideurs de DailyMotion ont fait la part des choses mais j’ai peur qu’ils se soient basés sur la fausse idée qu’une majorité d’utilisateurs ont un haut débit et qu’on peut gaspiller leur bande passante si c’est pour leur offrir une meilleure expérience.
Parce que finalement un des gros problèmes c’est que ces contenus en streaming ne sont généralement pas mis en cache par les proxy. Or 80% des accès se font sur les même 10% de vidéos.
Et alors ?
Ce que ça signifie c’est que quand un lien passe, plusieurs personnes vont accéder à la même vidéo à la mode dans un temps très court. Ça peut facilement être plusieurs dizaines de personnes dans un open space ou dans une même entreprise, donc derrière le même proxy.
Le lien est diffusé, irc, messagerie instantanée, mails… Là dessus les gens ouvrent la page web. Chacun charge la vidéo en entier sur son poste, mais finalement dans l’open space seuls un ou deux vont vraiment la jouer. Les autres vont la mettre en pause pour la regarder en même temps sur l’écran d’à côté. Rien n’est mis en cache sur le proxy, c’est 10, 20, 30 exempaires de la vidéo qui occuperont la bande passante de l’entreprise pour une, deux ou trois vidéos de jouées.
Non, le scénario n’est pas théorique, il est pratique, vécu plus de fois que de raison pour la productivité de l’entreprise. Alors, on fait quoi ? je suis preneur d’idées.
Flashblock est devenu mon meilleur ami depuis quelques temps déjà… une bascule image/vidéo si ça va paraître lent puisque sans préchargement va offrir directement le contenu à l’utilisateur.
Pour ton dernier point : blocage des sites par règles firewall.
au moins tu préserve la bande passante de l’entreprise, et tu élimine un point de contre productivité.
Dans mon entreprise, tous les sites du genre (youtube, dailymotion, deezer…) sont bloqués pour éviter ce genre de problème.
Il faut dire qu’avec +200 employés, on ne peut plus se permettre de perdre de la bande passante aussi facilement…
Existe t-il des proxies capables de bufferiser des streams ? J’en doûte… Aussi c’est sans doûte là le prix à payer pour avoir du frais.
Par contre, si on s’en fout du stream, on peut juste proxyfier les .flv non ?
Attention, ton cas marche dans le cas du faux streaming c’est à dire progressive download, qui est de plus en plus abandonné par les sites,
pour preuves la majorité des sites aujourd’hui font du streaming et tu peux te positionner à n’importe quel endroit de la vidéo sans charger les blocs précédents.
Mieux avec les nouvelles techniques d’indexation de la vidéo tu pourras dans le futur juste charger la version intéressante
Gaudi
Ce que je vois c’est que Youtube et Dailymotion j’ai deux barres, une noire et une grisée, qui avancent toutes les deux. De ce que je comprend la noire c’est où en est ma lecture, et la grisée c’est où en est mon préchargement.
Après que ce soit du vrai streaming, du téléchargement progressif, ou un intermédiaire entre les deux, je n’en sais rien. Ce qui est sur c’est que quand j’arrive sur une vidéo, même si je met en pause je télécharge tout jusqu’à la fin (ou jusqu’à ce que je parte de la page).
Certes, il y a un défaut, c’est bien que quand tu lis une vidéo aujourd’hui, il essaie de faire le maximum, c’est un mélange entre les deux.
Mais c’est un comportement fait pour le confort, qui sera vite ramené à la raison par nos fai pour qui cette situation est finalement intenable. Au final ce qui va se passer c’est qu’on repassera au bon vieux streaming des années 2000 mais avec un débit (et donc une qualité) égale voir supérieur au dvd (ce qui n’est même pas le cas des sites que tu cites, mais comme je le dis ils cherchent à avoir un comportement user friendly pas network friendly)
Je ne sais pas si Flash a de quoi faire des chargements « progressifs ». Je pense d’ailleurs qu’il ne l’a pas, sinon les hébergeurs de vidéo auraient très vite pensés à cette option vu les coûts que ça engendre.
Côté HTML5, je ne vois pas de quoi le faire non plus. Mais comme c’est une spec en cours, ça vaut le coup d’envoyer une proposition 😉
Truc sympa quand même, il est permis de spécifier plusieurs sources pour les codecs. Mais je ne vois pas d’options permettant de spécifier des ressources consécutives ou des ressources plus ou moins lourdes à télécharger.
Le chargement consécutif peut simplement en interne être constitué de deux flux, un pour les premières secondes et un complet, on saute de l’un à l’autre au bout d’un moment. Je crois me souvenir que c’est faisable sans coupure sur Flash (mais je peux me tromper.
Et pourquoi ne pas coder un player Flash qui arrête le chargement quand il a un buffer de 10sec. Il est déjà possible de les configurer pour ne commencer la lecture qu’à partir du moment ou X sec sont en mémoire cache. j’imagine que l’inverse doit être faisable. Concernant la gestion par flux, c’est un peu plus compliqué à gérer au niveau serveur mais c’est surement une solution, mais même avec un flux le problème du buffer reste entier.