Chrome HTML5-Videos funktionieren nicht mehr, wenn zu viele Tabs geöffnet sind - Speicherproblem?

7

Ich verwende jQuery, um <video> -Objekte dynamisch zu schreiben und videojs auszuführen, um sie zu initialisieren. Nachdem ich ein Video abgespielt habe, wenn ich versuche es erneut zu spielen, wird es einfach nicht abgespielt und ab diesem Zeitpunkt werden auch nach dem Aktualisieren der Seite keine Videos abgespielt. Jedes Mal rendert das Objekt <video> , aber das Video wird nicht wiedergegeben. Nichts wird auf die Konsole geschrieben. Es scheint keine Fehler zu geben. Neustart von Chrome behebt das Problem, aber nur vorübergehend. Nach dem Abspielen einiger Videos kommt das Problem wieder zurück.

Ich habe festgestellt, dass das Schließen anderer Tabs in Chrome das Problem tatsächlich löst. Es scheint sich also um eine Art Speicherproblem zu handeln.

Ich verwende Chrome 19.0.1084.46

    
Johnny5k 18.05.2012, 19:29
quelle

4 Antworten

17

Wie viele video -Tags haben Sie? Wie sehen Sie aus? Beinhalten sie preload='none' Attribut? Sind die Quellvideos alle auf dem Server?

Ich frage, weil wenn Sie mehr als sechs video -Tags auf einer einzelnen Seite haben, die auf den gleichen Quellserver verweist, dann könnte es zu "Verbindungsmangel" kommen:

  • Chrome erlaubt nur sechs offene Verbindungen zu einem einzelnen Server (basierend auf dem DNS-Namen in der URL)
  • Der Standardwert für das Preload-Attribut des html5 video -Tags ist 'auto'
  • Das automatische Verhalten von Chrome besteht darin, einige Daten vorab zu laden und die Verbindung offen zu lassen, um mehr Daten für das Video zu erhalten

Wenn also mehr als sechs Video-Tags auf einer einzelnen Seite auf einen einzelnen Server verweisen, werden die Videos nicht wiedergegeben. Um dieses spezielle Problem zu lösen, setzen Sie das Attribut preload auf 'none'

    
Stu Thompson 20.05.2012, 07:57
quelle
1

Stu ist richtig. Aber manchmal, nach meiner Erfahrung, ignoriert Chrome das preload="none" -Attribut und geht weiter und öffnet trotzdem eine Verbindung. Ich hatte viel Probleme damit, eine Website zu entwickeln, die viele kleinere Videos enthält. Die Verbindungen blockierten den Rest des Inhalts (Bilder, benutzerdefinierte Schriftarten (und wenn benutzerdefinierte Schriftarten verzögert werden, wird der Text nicht einmal gerendert). Meine Lösung bestand darin, einen eigenen Preloader zu erstellen, der die Bilder lädt. Dies stellte sicher, dass ich zumindest kontrollieren konnte, wann die Bilder (was aus Designsicht der wichtigste Aspekt war) geladen wurden.

Das löste das Problem mit Bildern, die nicht angezeigt wurden, aber das Problem blieb bestehen. Die beste Lösung besteht also darin, Subdomains einzurichten, die auf denselben Server verweisen, wie zum Beispiel: v1.server.com, v2.server.com und so weiter. Das bedeutet, dass Sie Ihre Dateien nicht verschieben müssen, und Sie profitieren davon, dass Browser mehr offene Verbindungen ermöglichen. Achten Sie jedoch auf eine höhere DNS-Nachschlagezeit.

    
PerMafrost 15.10.2013 12:42
quelle
1

In Chrome gibt es einen bekannten Fehler . Es wird nicht dasselbe Video in mehreren Tabs gleichzeitig wiedergeben. Dies ist wahrscheinlich der Fall, wenn Sie ein Entwickler sind und Ihre Seite auf zwei Tabs gleichzeitig öffnen.

Der Fehler ist seit fast 5 Jahren bekannt. Besuchen Sie den Chromium-Fehlerbericht und sehen Sie sich das Problem an. Hoffentlich wird es für die Chrome-Entwickler an Priorität gewinnen.

In der Zwischenzeit können Sie einen zufälligen Abfrageparameter in Ihrem Video-Quellcode verwenden. Verwenden Sie beispielsweise anstelle von <video src="vid.mp4"> <video src="vid.mp4?_u=1253412"> . Dadurch wird der Caching-Mechanismus von Chrome unterbrochen und das Video kann gleichzeitig auf zwei verschiedene Registerkarten gestreamt werden.

    
chowey 16.08.2014 18:23
quelle
0

Ich hatte ein ähnliches, aber damit zusammenhängendes Problem, auf das ich hier etwas näher eingehen kann.

Ich hatte 14 verschiedene kleine Videos auf einer Seite, aber nur zwei waren gleichzeitig verfügbar. Das Setzen von preload = 'none' behebt das Problem nicht, daher habe ich auch ein Datenattribut verwendet, um den src zu speichern und den src für alle Videos zu entfernen, die gerade nicht angezeigt werden.

    
mummybot 22.07.2015 20:36
quelle

Tags und Links