web-dev-qa-db-fra.com

Pourquoi le comportement de mise en mémoire tampon et de chargement de YouTube est-il si horrible dans Chrome?

Je souffre de cela depuis des mois, voire des années, et je n’ai toujours pas la moindre idée de la cause.

Supposons que j'ouvre une vidéo sur YouTube dans Chrome, comme les réflexions de Jamie Hyneman sur la conception et la fabrication avec la CAO , le lecteur arrête instantanément la lecture après la publicité et commencer à mettre en mémoire tampon. Une fois les 10 secondes mises en mémoire tampon, il continue de jouer et s’arrête de nouveau après avoir joué les 10 secondes.

Dans les cas comme ceux-ci, Google recommande de mettre la vidéo en pause et d'attendre qu'elle soit entièrement mise en mémoire tampon, mais lorsque je suspends la vidéo, elle ne sera jamais complètement mise en mémoire tampon. Au mieux, il chargera quelques secondes de vidéo puis arrêtera complètement la mise en mémoire tampon.

En revanche, lorsque j'ouvre la même vidéo dans Firefox en même temps, non seulement la lecture se déroulera parfaitement, mais si je mets la vidéo en pause, elle est entièrement mise en mémoire tampon. Voici une comparaison:

Ceci est la vidéo dans Chrome. Je l'ai ouverte et mise en pause à 0:05 et l'ai laissée en charge pendant environ une minute. Nous pouvons voir le résultat dans la barre de défilement:
YouTube video in Chrome

Voici la même vidéo après la même période dans Firefox:
YouTube video in Firefox

Quelques minutes plus tard, la vidéo est entièrement mise en mémoire tampon dans Firefox alors que la situation dans Chrome est inchangée.

Dans cette situation, les deux navigateurs utilisaient le lecteur Flash (évidemment, Chrome utilise son implémentation intégrée).

Quelle est la cause de ce comportement et comment puis-je résoudre ce problème?

55
Der Hochstapler

Dernièrement, je rencontrais à nouveau des problèmes de comportement de chargement vidéo, même après avoir appliqué ce que j'avais suggéré dans ma réponse d'origine.

Lecture sur tableau de bord

D'après ce que j'ai compris, le problème sous-jacent est la mise en œuvre par YouTube du streaming adaptatif dynamique sur HTTP . D'après ce que je peux dire, il existe à la fois des implémentations côté serveur et côté client. L'article de Wikipedia lié ci-dessus dit:

YouTube de Google a expérimenté la prise en charge de MPEG-DASH côté serveur. Google Chrome le prend en charge côté client. Cependant, la mise en œuvre de cette fonctionnalité a eu pour effet de dégrader gravement la lecture de la vidéo en raison de divers bugs, tels que les options de qualité vidéo grisées de manière aléatoire et non sélectionnables sans plusieurs actualisations de la page.

Quels sons sont très familiers .

Solution

L’approche actuellement très populaire pour résoudre ce problème consiste à utiliser l’extension de YouTubeCenter , qui est disponible pour une grande variété des navigateurs .

Il vous permet de désactiver la lecture Dash , mais aussi de noter:

Veuillez noter qu'en désactivant la lecture du tableau de bord, les formats 480p et 1080p ne sont plus disponibles. Ceci est dû à un changement récent de YouTube.

Désactiver la lecture Dash

Pour désactiver la lecture Dash, ouvrez simplement le menu des paramètres:

enter image description here

Et décochez la case correspondante sur la page du lecteur:

enter image description here

Le résultat sera que les vidéos se chargeront aussi rapidement que possible.

Remarque , YouTubeCenter supprime les publicités par défaut. Si vous souhaitez prendre en charge vos chaînes YouTube préférées, veillez à désactiver cette fonctionnalité.


Réponse originale:

Désactivation du plugin Flash interne de Chrome

On dirait que c'est encore une fois un cas de débogage de canard en caoutchouc ...

Après avoir posté ceci, j'ai pensé que je devrais probablement vérifier si je pouvais simplement désactiver le lecteur Flash intégré dans Chrome et voir si cela avait un effet. Le processus est décrit dans l'aide de Adobe Flash Player .

  1. Saisissez le programme d'installation du dernier lecteur Flash d'Adobe et installez-le.

  2. Allez à chrome://plugins/.

  3. Cliquez sur le bouton Détails pour développer les détails relatifs aux plug-ins individuels:

    Chrome Plug-ins manager

  4. Il devrait y avoir 2 entrées pour le lecteur Adobe Flash. L'un est la version intégrée à Chrome, l'autre est l'installation normale. Désactiver le intégré.

    Internal Flash Player plug-in

    Vous reconnaîtrez facilement l’interne, car il réside dans le dossier PepperFlash du répertoire d’installation de Chrome.

  5. Le comportement de la mise en cache doit maintenant être identique à celui observé dans Firefox.

Veuillez noter que la désactivation de la version intégrée de Flash est généralement déconseillée.

Utiliser l'extension SmartVideo

Alex a signalé une extension appelée SmartVideo . Cette extension vous donne plus de contrôle sur le comportement de mise en mémoire tampon de Chrome.

Je l'ai testé pendant un moment et je suis assez satisfait des résultats. En particulier l'option . Assurez-vous que les vidéos sont mises en mémoire tampon même si elles sont mises en pause affecte le comportement indésirable décrit dans ma question.

Il présente plusieurs avantages par rapport à la désactivation de PepperFlash. Tout d’abord, cela donne quelques options que je n’avais même pas envisagées auparavant. C'est comme empêcher YouTube de lire automatiquement des vidéos.

L'utilisation de PepperFlash est également un avantage lorsque vous utilisez plusieurs moniteurs. Si vous avez une vidéo en plein écran sur un écran et une autre fenêtre Chrome sur le second, l'activation de la seconde fenêtre Chrome conservera la vidéo en plein écran au premier plan. En revanche, si vous utilisez le lecteur Flash externe, la seconde fenêtre Chrome apparaît sous la barre des tâches devant la vidéo en plein écran.

47
Der Hochstapler