2017-02-15 6 views

Répondre

1

Il est très difficile de s'assurer qu'il n'y aura pas de mise en mémoire tampon d'une vidéo en essayant de télécharger assez dans la mémoire tampon avant de commencer, car les conditions du réseau peuvent changer pendant une durée modérée. La seule façon de le garantir serait de télécharger presque toute la vidéo et même si le réseau devenait extrêmement lent, vous pourriez tout de même obtenir un tampon à la fin.

L'approche habituelle pour essayer d'obtenir l'expérience de haute qualité que vous recherchez est d'utiliser la vaporisation Adaptive Bit Rate. Pour l'utiliser, vous créez plusieurs versions différentes de débit de votre vidéo sur le serveur et divisez chacune d'entre elles en blocs, par exemple, par exemple. 10 morceaux de seconde.

Le client demande ensuite le tronçon vidéo par tronçon, avec une mise en mémoire tampon comme d'habitude, et il choisit le débit binaire à partir duquel le tronçon suivant sera demandé en fonction des conditions du réseau. Si le réseau est bon, l'utilisateur obtiendra une expérience vidéo haute résolution et si elle est mauvaise, la résolution baissera. Tant qu'il y a un bon mélange de versions de débit binaire, cela évite la mise en mémoire tampon à moins que le réseau soit très mauvais. Vous pouvez voir cette technique utilisée par YouTube, Netflix, etc - dans YouTube si vous regardez le paramètre que vous pouvez jouer avec et le forcer à choisir une taille de débit particulier et voir l'effet (si vous choisissez un haut celui que vous verrez probablement le problème tampon que vous décrivez, sauf si vous êtes sur une très bonne connexion Internet).

L'approche permet également un démarrage rapide de la vidéo en commençant à une bande passante inférieure et en augmentant ensuite les plus élevés une fois que la vidéo est mise en mémoire tampon.

Vous pouvez voir une vue graphique agréable des débits binaires étapes et le tampon sur YouTube en un clic droit sur la vidéo et en sélectionnant « stats pour nerds » - il donne une vue comme celui-ci:

enter image description here

Si vous voulez vraiment jouer avec la taille de la mémoire tampon avant de commencer la lecture, vous devrez probablement modifier le lecteur lui-même ou créer votre propre lecteur. Dans le domaine du lecteur Web, les lecteurs HTML5 utilisent généralement les extensions MSS (Media Source Extensions) qui vous permettent de contrôler la mise en mémoire tampon si vous le souhaitez. MSE est essentiellement un mécanisme permettant d'associer un tampon à un src vidéo HTML5 plutôt que le fichier ou l'URL habituels. Vous pouvez alors écrire votre propre JavaScript que vous voulez remplir le tampon comme vous voulez. Une bonne intro est ici (passez directement à la section MSE):

+0

vous avez une idée comment ces gars-là [fiveminute.gs] (http://www.fiveminutes.gs/) l'ai fait?, ils ont préchargé une section de la vidéo en tant qu'écran de chargement, donc il n'y a pas de problème de mise en mémoire tampon –

+0

L'écran de chargement est juste une image - la vidéo commence quand vous allez plus loin dans le site. Vous pouvez voir cela en regardant l'onglet réseau sur les outils du navigateur et voir quand le fichier mp4 est demandé. Si vous avez une connexion assez mauvaise, elle décrochera (j'ai pu voir ça). Ils l'hébergent sur Vimeo et utilisent le CDN Vimeo qui leur donnera une très bonne expérience utilisateur en règle générale. – Mick

+0

J'ai remarqué qu'ils sont en train de charger un énorme fichier alors qu'ils montrent l'écran de chargement [ici] (http://www.fiveminutes.gs/scripts/db.js), qu'est-ce que c'est? ressemble à un fichier mp3 au format base64. –