Facebook-Video bleibt stehen, wenn ich die Zeitposition verändere

1639
Bram Vanroy

Ich habe ein seltsames Problem mit den Videos von Facebook. Ich kann Videos perfekt starten, aber wenn ich von 0,10 bis 0,30 springe, würde das Video einfrieren: Es wird einfach nicht weiter abgespielt. Ich habe das Problem nicht auf anderen Videoplattformen wie YouTube und meinem Computer erlebt

Ich habe das Problem gegoogelt, aber nur geringfügig verwandte Probleme gefunden. Ich habe folgendes versucht:

  • Versuchte andere Browser, aber alle haben dieses Problem. (Chrome, Edge, Firefox.)
  • Deaktiviert alle Plug-Ins für den Browser
  • Deaktivierte Hardware-Beschleunigung für den Browser
  • Installieren Sie den Browser erneut
  • Betriebssystem neu installieren (Windows 10 Pro, 64 Bit): Neuinstallation, kein Upgrade

Wie Sie sehen, bin ich sehr verärgert darüber, sogar so sehr, dass ich mein komplettes Setup formatiert habe und selbst das nicht funktioniert hat . Da es sich um Browserübergreifend handelt, frage ich mich, ob es sich um ein Windows-Problem, ein Windows-Update-Problem oder ein Facebook-Problem handelt. Ich habe niemanden mit dem gleichen Problem gefunden, also bin ich verloren. Irgendeine Hilfe?

Update : Seit heute, dem 25. Juni '17, ist das Problem für mich verschwunden.

3
Ich habe den gleichen Fehler wie Sie. Ich fand es interessant, dass ich es schaffen kann, wenn ich mich von Facebook auslogge. Zum Testen können Sie eine öffentliche Video-URL in einem Browserfenster öffnen, in dem Sie nicht angemeldet sind (oder inkognito sind). Ich habe immer noch keine Lösung für die Situation gefunden. Vielleicht ist es ein teilweiser Rollout von Facebook. Marius P. vor 6 Jahren 2
Haben Sie versucht, den Cache des Browsers zu löschen? bevor Sie sich in Facbook einloggen? und ich meine, wie der ganze Cache Nalaurien vor 6 Jahren 0
Wir machten. Es hat nichts mit dem Cache zu tun. Es geschieht auf jedem Browser / PC, den wir mit unseren Benutzern anmelden. Marius P. vor 6 Jahren 1
Sie könnten versuchen, ein gutes Codecs-Paket zu installieren. Mein Favorit ist das [K-Lite Codec Pack] (https://www.codecguide.com/download_kl.htm). harrymc vor 6 Jahren 0
@ harrymc Ich werde kein Codec-Paket für etwas so grundlegendes wie ein Facebook-Video installieren. Es sollte mit jedem Browser sofort funktionieren, und für viele Menschen. Nur nicht für mich oder Marius P. Bram Vanroy vor 6 Jahren 0
Sie können das Paket danach deinstallieren, aber ein schlechter Codec kann die Erklärung dafür sein, dass dies für alle Browser der Fall ist. harrymc vor 6 Jahren 0
@ harrymc Wie könnte ein Codec-Problem behoben werden, wenn ich mich einfach bei Facebook auslogge und dann dasselbe Video öffne, ohne angemeldet zu sein? Wie gesagt, ich habe es auf verschiedenen Maschinen probiert, auch auf dem Mac. So kann ein Codec rulled werden. Marius P. vor 6 Jahren 2
@BramVanroy In der Zwischenzeit habe ich einen Workaround gefunden. Wenn Sie das Video anhalten und dann die Uhrzeit ändern, können Sie die Wiedergabe fortsetzen. Ein bisschen wackelig, aber zumindest können wir die Zeit immer noch ändern. Marius P. vor 6 Jahren 0
Seit heute, dem 25. Juni 17, ist das Problem für mich verschwunden. Bram Vanroy vor 6 Jahren 0

3 Antworten auf die Frage

5
Marius P.

Nach einigen Stunden des Debugging fand ich den Täter. Es scheint, es war tatsächlich ein teilweiser Rollout / AB-Test von Facebook.

Genauer gesagt handelt es sich um ein Flag mit dem Namen disableDuplicatePlayingRequest von VideoPlayerExperiments, das in die Seitenquelle für Ihr Profil geladen wird. Wenn diese Einstellung aktiviert ist, truemüssen Sie das Video vor dem Ändern der Uhrzeit anhalten. Andernfalls wird das Video einfrieren / hängen bleiben.

Nun gibt es keine einfache Lösung für die Lösung. Es scheint in Verschlüssen verwendet zu werden, so dass es nicht einfach ist, es zu ändern. Zumindest aus dem, was ich gesehen / getestet habe.

Die einzige Möglichkeit, die ich umgehen konnte, bestand darin, das Skript https://www.facebook.com/rsrc.php/v3iTQQ4/yd/l/fb_LT/JTeC8QI2Wlf.js( später editieren : Name / Speicherort des Skripts ändert sich häufig, ich habe ein Tutorial hinzugefügt, um das richtige zu finden) von Facebook zu laden und mit der Hilfe eine angepasste Version des Skripts zu laden einer Erweiterung, die die Prüfung aus der Datei umgeht:if (c('VideoPlayerExperiments').disableDuplicatePlayingRequest && this.isState('playing')) return;

Wenn sich jemand für die Erweiterung interessiert, wird dies als Ressourcenüberschreibung bezeichnet, die Verwendung ist jedoch nicht so einfach. Sie benötigen einen Server zum Hosten der modifizierten js-Datei und einige Header-Regeln, um CORS und CSP zu umgehen.

PS Ich habe hier eine Community-Frage erstellt, um Antworten von Facebook zu erhalten. Jeder kann helfen, indem er die Frage wählt (oder auf dem Handy mag).

PS2: Ok, um dieses Problem tatsächlich zu beheben, müssen Sie Chrome verwenden und die nächsten Schritte ausführen:

  1. Geh auf FB und logge dich ein. Durchsuchen Sie alle js-Quellen nach dem Flag disableDuplicatePlayingRequest . Wenn Sie nicht wissen, wie das geht, können Sie dieses Tutorial verwenden

  2. Nachdem Sie die Datei gefunden haben, die sie enthält, verwenden Sie die {}Schaltfläche (Pretty Print) und kopieren Sie dann den gesamten Inhalt aus der Datei in einen Texteditor. Gehen Sie zu der Zeile, die etwas ähnelt, if (c('VideoPlayerExperiments').disableDuplicatePlayingRequest && this.isState('playing')) return;und entfernen oder kommentieren Sie sie. Sie müssen diese Datei jetzt speichern und auf einen Server hochladen. Ich kann meine Datei nicht freigeben, da FB dies für einen Verstoß gegen die Bedingungen hält. Sie müssen dies also selbst tun. Denken Sie an die öffentliche Zugriffs-URL für die Datei.

  3. Installieren Sie die Ressourcen-Überschreibungserweiterung aus dem Chrome-Store

  4. Öffnen Sie die Optionen der Erweiterung. In der Tab-URL eingeben*facebook.com*

  5. Fügen Sie eine Änderungskopfregel hinzu. In der For:Eingabe https://www.facebook.com*. Jetzt geh hinein Edit headers. Wir werden nur mit Antwort-Headern arbeiten, verwenden Sie also nur den zweiten Abschnitt. Fügen Sie 2 Satzsatzregeln für Content-Security-Policyund hinzu X-Content-Security-Policy. Jetzt müssen wir Ihren Server zu der von FB verwendeten Richtlinie hinzufügen. Gehen Sie dazu zurück zur Facebook-Seite und zur Registerkarte Dev Console> Network. Wählen Sie eine der .js-Dateianforderungen aus. In den Antwortkopfzeilen sehen Sie content-security-policy. Kopieren Sie das Ganze anschließend :in einen Texteditor. Es sollte mit anfangen default-src.... Suchen Sie nun blob:;script-srcnach und fügen Sie die Domäne hinzu, die Sie zum Hosten Ihrer js-Datei verwenden. Zum Beispiel xyz.comoder*.xyz.com(wenn Sie eine Subdomain verwenden). Lassen Sie vor und nach dem Leerzeichen Leerzeichen, damit die vorhandene Zeichenfolge von Richtlinien nicht beeinträchtigt wird. Verwenden Sie nun diese neue Zeile und geben Sie sie in die 2 Wertefelder der Set-Header-Felder der Erweiterung ein. Sie sollten beide identisch sein. Jetzt benötigen wir eine weitere Satzkopfregel Access-Control-Allow-Originmit einem Wert von *. Klicken Sie auf Schließen, um zum Hauptmenü zurückzukehren.

  6. Fügen Sie eine weitere Änderungskopfregel hinzu. Dieses Mal verwenden wir es für Ihre Domain, um sicherzustellen, dass Sie auch dort die richtigen Header haben. Geben Sie im For:Feld den genauen Link ein, auf den Ihre geänderte Datei im Internet zugreifen kann. Bevorzugtes https. Die Verwendung von http oder einer lokalen Datei kann Probleme verursachen. Gehen Sie jetzt in den Abschnitt für Änderungsheader der Regel. Wir werden hier auch den Antwortabschnitt verwenden. Wählen Sie in den Voreinstellungen die Allow outside contentOption aus, um automatisch 2 Regeln für Sie hinzuzufügen. Nach diesen 2 benötigen wir eine weitere Satzkopfregel Access-Control-Allow-Originmit einem Wert von https://www.facebook.com. Klicken Sie nicht auf Schließen und kehren Sie zum Hauptmenü zurück.

  7. Der letzte Schritt ist das Ersetzen der FB-js-Datei durch Ihre geänderte Datei. Fügen Sie dazu eine Regel für URL -> URL hinzu. In der From:die Datei aus Schritt (1) hinzuzufügen. Als zusätzliche Anmerkung ändert sich dieser Link regelmäßig, da Facebook ihn alle 1-3 Tage aktualisiert. Sie müssen es auch ändern, wenn Sie feststellen, dass Videos wieder einfrieren. Sie können Schritt (1) folgen, um den neuen Link dafür zu erhalten. Jetzt müssen Sie im To:Feld Ihren Link auf die geänderte Datei setzen. Eine letzte Sache ist zu überprüfen, dass alle diese 3 Regeln auf gesetzt sind ON. Nun, Videos sollten wieder so funktionieren wie früher.

PS3: Die gespeicherten Erweiterungsregeln finden Sie hier . Sie müssen die Namen xyz.cound https://xyz.co/modified.jsdurch Ihre eigenen Namen ersetzen . Sie erscheinen jeweils 2 mal. Vergewissern Sie sich danach, dass die Dateiverbindung, die die enthält, disableDuplicatePlayingRequestkorrekt ist.

Sehr interessante Entdeckung, danke für das Debuggen! Haben Sie Facebook diese Ergebnisse gemeldet? Bram Vanroy vor 6 Jahren 0
Ich habe gerade einen Fehlerbericht eingereicht. Der letzte Fehlerbericht zu diesem Thema dauerte 10 Tage, um eine generische Antwort von ihnen zu erhalten. Ich habe wenig Vertrauen, dass dies alles tun wird, um diese Flagge für mein Profil zu ändern. Marius P. vor 6 Jahren 0
Könnten Sie einen Link zum Fehlerbericht geben? Dann kann ich es +1 geben. Ich bin froh, dass die Sache zumindest gefunden wurde. Ich akzeptiere und starte eine kleine Prämie, um Sie für Ihre Bemühungen zu belohnen. Bram Vanroy vor 6 Jahren 0
Der Fehlerbericht, den ich erstellt habe, kann scheinbar nicht weitergegeben werden. Aber Sie haben mich zum Nachdenken gebracht, also ging ich in die Community-Foren und fand andere Leute mit [demselben Problem] (https://www.facebook.com/help/community/question/?id=10209742651466393). Ich habe einen ähnlichen Bericht erstellt und diese Seite dort verlinkt. Sie können es sehen [hier] (https://www.facebook.com/help/community/question/?id=1707697659243716) Marius P. vor 6 Jahren 0
Können Sie mir bitte erklären, wie Sie diese Erweiterung verwenden und wie Sie das Skript ersetzen und eine angepasste Version laden können? Sardar_Usama vor 6 Jahren 0
Es ist eine längere Erklärung. Ich werde in den nächsten Tagen ein kurzes Tutorial dafür machen und es zu dieser Antwort hinzufügen. Marius P. vor 6 Jahren 0
@Sardar_Usama Ich habe die zusätzlichen Informationen hinzugefügt. Marius P. vor 6 Jahren 0
Ich schätze die Mühe. Ich habe einen Vorschlag. Es gibt eine Option zum Speichern der Regeln in der ResourceOverride-Erweiterung. Können Sie die Regeln speichern und uns direkt in Textform zur Verfügung stellen, damit wir sie kopieren und in die Erweiterung laden können? Die einzige Änderung im Text, die wir tun müssen, ist die Änderung der URL der Datei. Dadurch werden die Schritte 4, 5 und 6 gespeichert Sardar_Usama vor 6 Jahren 0
@Sardar_Usama Ich habe die gespeicherten Regeln hinzugefügt. Stellen Sie sicher, dass Sie die beiden vollständigen URLs und die anderen zwei Domänen in den Richtlinienregeln für Inhaltssicherheit ersetzen. Überprüfen Sie auch, ob die Haupt-FB-Datei korrekt ist, da sie häufig geändert wird. Marius P. vor 6 Jahren 0
Der Link zu Ihrer Community-Frage ist verschwunden. Wurde es entfernt / als gelöst markiert? Denn für mich ist das Problem verschwunden. Bram Vanroy vor 6 Jahren 1
@BramVanroy Ich kann immer noch auf den Link zugreifen, aber nur wenn ich angemeldet bin. Das bedeutet, dass die FB wahrscheinlich die Frage versteckt hat. Und ich habe das überprüft und sie haben auch das Flag disableDuplicatePlayingRequest aus meinem Profil entfernt. Ich brauche das Update jetzt auch nicht. Dies bedeutet, dass sie wahrscheinlich das Unglück der Community gelesen haben und beschlossen haben, den a / b-Test oder was auch immer es war, zu entfernen. Marius P. vor 6 Jahren 1
1
Sam

I had the same issue like yours but for me, even YouTube videos would stop playing midway.
To solve this i first installed VirtualBox and then Ubuntu 16.04. After installing and setting it up, I ran tcpdump (while watching a video on YouTube) and opened the .pcap file in WireShark.
Inspecting the packets, I found that my NIC was midway dropping packets for some weird reason even though the driver for the NIC was up to date.
But just to try it out, I reinstalled the driver and set up my network interface again.
I guess somehow it worked cause I haven't had that issue ever since.
Might wanna try it out!

Ich wünschte, das wäre hier der Fall. Ich habe es mit verschiedenen PCs, Macbooks, Netzwerken, ISPs und verschiedenen anderen Faktoren versucht. Überall dasselbe Es funktioniert, wenn ich nicht angemeldet bin, aber nach dem Anmelden fehlschlägt. Alle Tests zeigen auf die JS-Dateien von Facebook, die geladen werden, wenn ich als wahrscheinlicher Täter angemeldet bin. Ich habe bereits einige Zeit damit verbracht, zu debuggen, was genau passiert, aber die Minimierung des Codes lässt das Ganze länger dauern als bisher. Marius P. vor 6 Jahren 0
0
dtbnguyen

Ich denke nicht, dass Sie genug Probleme bei dem Versuch gefunden haben, dies weiter zu isolieren. Ich habe ähnliche Dinge in der Vergangenheit gesehen. Einige andere Dinge zum Anschauen:

  • Möglicherweise verursacht dies ein Proxy-Server-Upstream. Heutzutage gibt es viel mehr Caching, als Sie erwarten würden. Ich kenne jede Menge kleinerer Unternehmen, die Memcache, Nginx und Tintenfisch verwenden. andere Unternehmen, die kostspieligere und integrierte Proxy / WAN-Beschleunigungslösungen verwenden, wie BlueCoat und Riverbed; große IT-Unternehmen, die WAN-basierte Caching-Lösungen wie Akamai verwenden. Das ist wirklich nur die Spitze des Eisbergs. Wenn sie gut konfiguriert und funktionsfähig sind, sind sie vollständig transparent und können die Netzwerkleistung drastisch verbessern. Wenn sie jedoch nicht so gut funktionieren, können Sie am Ende wirklich seltsame Dinge sehen, die extrem schwer zu diagnostizieren sind. Der einzige Weg, um herauszufinden, ob es sich um einen Proxyserver handelt, besteht darin, den Proxyserver zu wechseln. neu konfigurieren oder versuchen, überhaupt keine zu verwenden. Wenn dies in Ihrem lokalen Netzwerk ist, ist dies leicht zu beheben. Wenn es sich außerhalb Ihres Netzwerks befindet, ist dies ein völlig anderes Thema. Ich habe mit Firmen zusammengearbeitet, bei denen wir massiv über internationale Netzwerke vorgedrungen sind, aber wir hatten immer noch Schwierigkeiten, Hilfe bei der Diagnose zu erhalten, ganz zu schweigen von der Bewältigung solcher Probleme
  • Es könnte sich auch um ein Netzwerkkonfigurations- oder Leistungsproblem handeln. Ich wechsle oft von Zeit zu Zeit die Netzwerke, was bedeutet, dass ich aus erster Hand weiß, mit was Sie sich befassen. In einigen Netzwerken puffert das Video nicht einmal, während andere es mir nicht erlauben, die Zeitmarke allein zu verschieben, usw. Die einzige Möglichkeit, wie ich damit umgehen kann, ist das Herunterladen von Videos vor dem Abspielen über VLC (reichlich von Tools wie Browsererweiterungen und Befehlszeilen-Dienstprogrammen wie youtube-dl). Dies bringt mich zu meinem nächsten Punkt. Idealerweise sollte eine Organisation über mehrere Backup-Verbindungen oder alternative ISPs (mit separaten Backbones) verfügen, falls Sie sich mit so etwas beschäftigen müssen. Wenn Sie jedoch nur einen Test durchführen möchten, können Sie einfach mit einer 3G / 4G-Verbindung testen sehen, ob es ' s konsistentes Verhalten für beide Verbindungen (oder versuchen Sie, ein System nach Hause zu bringen, um zu überprüfen, ob das Problem weiterhin besteht). Ich würde auch versuchen herauszufinden, ob es vielleicht mit Facebook selbst verlinkt war. Ist es beispielsweise auf größere Videos, kleinere Videos, Videos mit geringerer Qualität, Videos mit höherer Qualität, Videos, die wahrscheinlich in einem bestimmten Rechenzentrum gespeichert werden, beschränkt? Usw .. Um dies zu diagnostizieren, führen Sie einen Packet Tracer und dann einen Traceroute aus auf der IP-Adresse, um den Pfad herauszufinden. Verwenden Sie whois-Informationen, um Informationen zu geografischen Bereichen zu erhalten und auf ein bestimmtes Rechenzentrum einzugrenzen. Wenn dies zu schwierig ist, laden Sie das Video herunter, um die URL des Hosts zu erhalten, und führen Sie dann ein whois aus, um den geografischen Standort und das Rechenzentrum einzugrenzen.

https://www.torproject.org/download/download-easy.html.de

  • Sie sollten Folgendes beachten: Wenn Sie jemals ein Problem wie dieses diagnostizieren müssen, kann es schwierig sein, über die normalen Support-Linien mit jemandem in einer Firma wie Facebook in Kontakt zu treten. Es ist einfacher, wenn Sie jemanden kennen, der jemanden kennt usw. So können Sie den Frontline-Support umgehen, der manchmal Auftragnehmer sein kann, die nicht viel mehr wissen, als ihnen gesagt wird, und nicht wirklich alles kann so viel, weil das nicht ihre Aufgabe ist
  • Dies kann zum Teil auf das Caching zurückzuführen sein, aber in Wirklichkeit bündelt sich diese Art mit dem gesamten Leistungsaspekt des Problems
  • Ich habe auch gesehen, dass diese Art von Problem beim Umgang mit untergeordneter Hardware auftaucht. Ich weiß zum Beispiel, dass die Verwendung eines Atom-basierten Netbooks mit LinkedIn praktisch nicht lesbar ist, da es so stark von JavaScript-Code abhängt, der auf der Clientseite ausgeführt wird. Dasselbe Leistungsproblem tritt auch bei Videoseiten auf (die Zeitmarke kann nicht gepuffert oder verschoben werden). Dieses Problem existiert jedoch nicht bei einem Prozessor oberhalb von Core I3 ... Das heißt, Sie verwenden Windows 10, was bedeutet, dass das IT-Budget wahrscheinlich zu stark eingeschränkt wird
  • Da es durchaus möglich ist, dass es an der reinen Leistung liegt, würde ich auch keine Probleme bezüglich Softwaretreibern, Betriebssystem, Codecs und Softwarekonfiguration regeln. Ich würde versuchen, es so nah wie möglich auszuführen (was Software und Hardware angeht). Ich habe gesehen, dass Sie es versucht haben, aber ich würde auch prüfen, ob es andere optimierte oder aktualisierte Treiber gibt, Möglichkeiten, die Leistung des Betriebssystems zu steigern und so weiter ... Ich würde auch versuchen, an der Hardware herumzuspielen und auch zu versuchen, Teile von anderen Stellen des Netzwerks aus zu nibeln, um zu sehen, ob sich dies ändert
  • Wenn es um ein öffentliches Profil gegenüber einem privaten Profil geht, glaube ich, dass Sie die Dinge zu früh ausschließen können. Ich vermute, dass der Code zum Laden einer privaten Seite gegenüber einer öffentlichen Seite (aus Gründen der Personalisierung) unterschiedlich ist. Dies kann zu einer geringfügigen Leistungsabweichung führen. Durchsuchen Sie den Code und die Website. Beachten Sie, wie viel davon von JavaScript abhängig ist. Könnte meiner LinkedIn-Ausgabe etwas ähneln. Meine Vermutung ist, dass es sich um eine Kombination von Problemen handelt, einschließlich der oben genannten Punkte (wenn Sie Dinge debuggen möchten, öffnen Sie ein Browser-Entwickler-Debugging-Tool (Dragonfly in Opera ist ein gutes Beispiel). Es gibt Ihnen auch die Ladezeiten für alle Elemente wie die relative Größe und welcher Code tatsächlich auch geladen wird)
1) Ich habe es mit völlig anderen Netzwerken versucht, einschließlich Arbeits- / Heim- / Mobildaten. 2) Es konnte kein Netzwerkproblem sein, da alle öffentlichen Videos einwandfrei funktionieren, wenn ich mich gerade von meinem fb-Konto abmelden möchte Ich bin eingeloggt) 3) Ich habe bereits einen Fehlerbericht eingereicht und weiß leider niemanden, der dort arbeitet. 4) Ich habe alles im Browser-Cache geleert, die gleichen Ergebnisse plus Grund 2. Ich habe es auf verschiedenen Maschinen getestet. 5) Hardware ist Kein Problem, weil Grund 2. und ich mit i7 getestet haben. 6) Wir haben auch Vanilla-Betriebssysteme (Windows und Mac) getestet und es hat nicht funktioniert. Marius P. vor 6 Jahren 0
Weitere Informationen hinzugefügt, um die mögliche Diskrepanz zu erklären dtbnguyen vor 6 Jahren 0