Видео Facebook замирает, когда я меняю положение времени

1581
Bram Vanroy

У меня странная проблема с видео в Facebook. Я могу запускать видео совершенно нормально, но если я пропущу, скажем, с 0.10 до 0.30, видео остановится: оно просто не продолжит воспроизведение. Я не сталкивался с проблемой на других видео платформах, таких как YouTube, и мой

Я погуглил проблему, но нашел только незначительно связанные проблемы. Я попробовал следующее:

  • Пробовал другие браузеры, но у всех есть эта проблема. (Chrome, Edge, Firefox.)
  • Отключены все плагины для браузера
  • Отключено аппаратное ускорение для браузера
  • Переустановил браузер
  • Переустановил ОС (Windows 10 Pro, 64 бит): чистая установка, без обновления

Как видите, меня это очень раздражает, даже настолько, что я отформатировал свою полную настройку, и даже это не сработало . Поскольку это происходит в разных браузерах, мне интересно, является ли это проблемой Windows, проблемой обновления Windows или проблемой Facebook. Я не нашел никого с такой же проблемой, поэтому я заблудился. Любая помощь?

Обновление : на сегодня, 25 июня 17 года, проблема исчезла для меня.

3
У меня такая же ошибка, как и у вас. Мне показалось интересным, что я могу заставить его работать, если я выйду из Facebook. Чтобы проверить, вы можете открыть общедоступный URL-адрес видео в окне браузера, где вы не вошли (или инкогнито). Все еще не нашли исправления для ситуации. Может быть, это частичное развертывание с Facebook. Marius P. 6 лет назад 2
Вы пробовали очистить кеш браузера? перед входом в фаббук? и я имею ввиду как и весь кеш Nalaurien 6 лет назад 0
Мы сделали. Это никак не связано с кешем. Это происходит на любом браузере / ПК, на который мы заходим с нашими пользователями. Marius P. 6 лет назад 1
Вы можете попробовать установить хороший пакет кодеков. Мой любимый это [K-Lite Codec Pack] (https://www.codecguide.com/download_kl.htm). harrymc 6 лет назад 0
@harrymc Я не буду устанавливать пакет кодеков для чего-то такого базового, как видео на Facebook. Он должен работать с любым браузером из коробки, и это работает для многих людей. Только не для меня или Мариуса П. Bram Vanroy 6 лет назад 0
Вы можете удалить пакет позже, но плохой кодек может быть объяснением того, что это происходит во всех браузерах. harrymc 6 лет назад 0
@harrymc Как можно решить проблему с кодеками, если я просто выйду из Facebook, а затем открою то же видео без входа? Как я уже говорил, я пробовал на разных машинах, включая Mac. Таким образом, кодек может быть исключен. Marius P. 6 лет назад 2
@BramVanroy Тем временем я нашел обходной путь. Если вы приостановите видео, а затем измените время, вы можете продолжить его воспроизведение. Немного шатко, но, по крайней мере, так мы можем изменить время. Marius P. 6 лет назад 0
На сегодня, 25 июня 17 года, проблема исчезла для меня. Bram Vanroy 6 лет назад 0

3 ответа на вопрос

5
Marius P.

После нескольких часов отладки я нашел виновника. Похоже, что это был действительно частичный тест на развертывание / AB с Facebook.

Точнее, это был флаг с именем disableDuplicatePlayingRequest от VideoPlayerExperiment, который загружается в исходный код страницы вашего профиля. Если для него установлено значение, trueнеобходимо приостановить воспроизведение видео перед сменой времени, иначе оно будет зависать / зависать.

Что касается решения, то здесь нет простого. Похоже, он используется в замыканиях, поэтому нет простого способа его изменить. По крайней мере из того, что я видел / тестировал.

Единственный способ, которым я смог обойти это, - это заменить https://www.facebook.com/rsrc.php/v3iTQQ4/yd/l/fb_LT/JTeC8QI2Wlf.js( позже редактировать : имя / местоположение скрипта часто меняются, я добавил учебник, чтобы найти правильный) скрипт из Facebook и загрузить с его помощью настроенную версию скрипта. расширения, которое обходит проверку из файла:if (c('VideoPlayerExperiments').disableDuplicatePlayingRequest && this.isState('playing')) return;

Если кто-то заинтересован в расширении, оно называется Resource Override, но его не так просто использовать. Вам нужен сервер для размещения измененного файла js и несколько правил заголовка для обхода CORS и CSP.

PS Я создал вопрос сообщества здесь, чтобы получить ответы от Facebook. Любой может помочь, проголосовав (или на мобильный телефон) вопрос.

PS2: Хорошо, поэтому, чтобы действительно решить эту проблему, вам нужно использовать Chrome и выполнить следующие шаги:

  1. Зайдите на FB и войдите. Найдите во всех источниках js флаг disableDuplicatePlayingRequest . Если вы не знаете, как это сделать, вы можете использовать этот учебник

  2. После того, как вы нашли файл, который содержит его, используйте {}кнопку (Pretty Print), а затем скопируйте все содержимое из файла в текстовый редактор. Перейти к строке, которая имеет что-то вроде if (c('VideoPlayerExperiments').disableDuplicatePlayingRequest && this.isState('playing')) return;и удалить или прокомментировать это. Теперь вам нужно сохранить этот файл и загрузить его на сервер. Я не могу поделиться своим файлом, так как FB может посчитать это нарушением условий, поэтому вам придется сделать это самостоятельно. Запомните публичный доступ к файлу.

  3. Установите расширение переопределения ресурсов из хранилища Chrome

  4. Откройте параметры расширения. Во вкладке URL введите*facebook.com*

  5. Добавьте правило изменения заголовков. Во For:входе https://www.facebook.com*. Теперь иди в Edit headers. Мы будем работать только с заголовками ответов, поэтому обязательно используйте только второй раздел. Добавьте 2 установленных правила заголовка для Content-Security-Policyи X-Content-Security-Policy. Теперь нам нужно добавить ваш сервер в существующую политику, которую использует FB. Для этого вернитесь на страницу facebook и перейдите на вкладку Dev Console> Network. Выберите один из запросов файла .js. В заголовках ответов вы увидите content-security-policy. Скопируйте все это после :текстового редактора. Это должно начаться с default-src.... Теперь найдите blob:;script-srcи добавьте домен, который вы используете для размещения вашего файла js. Например xyz.comили*.xyz.com(если вы используете поддомен). Обязательно оставляйте пробелы до и после него, чтобы он не влиял на существующую строку политик. Теперь используйте эту новую строку и поместите ее в 2 поля значения из набора полей заголовка из расширения. Они оба должны быть идентичны. Теперь нам нужно еще одно заданное правило заголовка Access-Control-Allow-Originсо значением *. Нажмите на близко, чтобы вернуться в главное меню.

  6. Добавьте еще одно правило изменения заголовков. На этот раз мы будем использовать его для вашего домена, чтобы убедиться, что у вас там тоже есть нужные заголовки. В For:поле введите точную ссылку, чтобы ваш измененный файл был доступен в сети. Предпочтительный https. Использование http или локального файла может вызвать проблемы. Теперь перейдите в раздел изменения заголовков правила. Мы также будем использовать здесь раздел ответов. В настройках обязательно выберите Allow outside contentопцию, чтобы она автоматически добавила 2 правила для вас. После этих 2 нам нужно еще одно правило заголовка set Access-Control-Allow-Originсо значением https://www.facebook.com. Не нажимайте кнопку «Закрыть» и возвращайтесь в главное меню.

  7. Последний шаг - фактически заменить файл FB js вашим измененным файлом. Для этого добавьте правило для URL -> URL. В From:добавить файл из стадии (1). В качестве дополнительного примечания, эта ссылка будет периодически меняться, потому что Facebook имеет тенденцию обновлять ее каждые 1-3 дня. Вам также необходимо изменить его, когда вы заметите, что видео снова начнет зависать. Вы можете следовать шагу (1), чтобы получить новую ссылку для него. Теперь в To:поле нужно поставить ссылку на измененный файл. И последнее, что нужно проверить, чтобы все эти 3 правила были установлены ON. Вот и все, видео должно работать снова, как раньше.

PS3: Вы можете найти сохраненные правила расширения здесь . Вам нужно заменить имена xyz.coи https://xyz.co/modified.jsимена своими. Каждый из них появляется 2 раза. После этого убедитесь, что ссылка на файл, который содержит, disableDuplicatePlayingRequestявляется правильной.

Очень интересная находка, спасибо за отладку! Вы сообщили об этих результатах в Facebook? Bram Vanroy 6 лет назад 0
Я отправил отчет об ошибке только сейчас. Последнее сообщение об ошибке по этой теме заняло 10 дней, чтобы получить общий ответ от них. Я мало верю, что этот сделает все, чтобы изменить этот флаг для моего профиля. Marius P. 6 лет назад 0
Не могли бы вы дать ссылку на сообщение об ошибке? Тогда я могу +1 это. Я счастлив, что причина по крайней мере найдена. Я приму и начну небольшую награду, чтобы наградить вас за ваши усилия. Bram Vanroy 6 лет назад 0
Кажется, я не могу поделиться отчетом об ошибке, которую я создал. Но вы заставили меня задуматься, поэтому я пошел на форумы сообщества и нашел других людей с [той же проблемой] (https://www.facebook.com/help/community/question/?id=10209742651466393). Я создал аналогичный отчет и связал эту страницу там. Вы можете увидеть это [здесь] (https://www.facebook.com/help/community/question/?id=1707697659243716) Marius P. 6 лет назад 0
Не могли бы вы объяснить, как использовать это расширение и как заменить этот скрипт и загрузить настроенную версию? Sardar_Usama 6 лет назад 0
Это более длинное объяснение. Я сделаю короткий урок для него в ближайшие дни и добавлю его к этому ответу. Marius P. 6 лет назад 0
@Sardar_Usama Я добавил дополнительную информацию. Marius P. 6 лет назад 0
Я ценю усилия. У меня есть предложение. Существует возможность сохранения правил в расширении ResourceOverride. Можете ли вы сохранить правила и предоставить нам напрямую в виде текста, который мы могли бы скопировать вставить и загрузить их в расширение? Единственное изменение в тексте, которое нам нужно сделать, - это изменить URL-адрес файла. Это сохранит шаги 4,5 и 6 Sardar_Usama 6 лет назад 0
@Sardar_Usama Я добавил сохраненные правила. Обязательно замените 2 полных URL и 2 других домена в правилах политики безопасности содержимого. Также проверьте, что основной файл FB правильный, потому что они часто меняют его. Marius P. 6 лет назад 0
Ссылка на вопрос вашего сообщества исчезла. Был ли он удален / помечен как решенный? Потому что для меня проблема исчезла. Bram Vanroy 6 лет назад 1
@BramVanroy Я все еще могу получить доступ к ссылке, но только если я вошел в систему. Это означает, что FB, вероятно, скрыл вопрос. И я проверил, и они удалили флаг disableDuplicatePlayingRequest из моего профиля, так что теперь мне не нужно это исправление. Это означает, что они, вероятно, прочли недовольство сообщества и решили удалить тест a / b или что-то еще. Marius P. 6 лет назад 1
1
Sam

У меня была такая же проблема, как и у вас, но для меня даже видео на YouTube перестали воспроизводиться на полпути.
Чтобы решить эту проблему, я сначала установил VirtualBox, а затем Ubuntu 16.04. После установки и настройки я запустил tcpdump (во время просмотра видео на YouTube) и открыл файл .pcap в WireShark .
Осматривая пакеты, я обнаружил, что мой сетевой адаптер сбрасывал пакеты на полпути по какой-то странной причине, хотя драйвер для сетевого адаптера был обновлен.
Но просто чтобы попробовать, я переустановил драйвер и снова настроил сетевой интерфейс.
Я думаю, как-то это сработало, потому что у меня не было этой проблемы с тех пор.
Могу попробовать это!

Я бы хотел, чтобы это было здесь. Я пробовал использовать разные ПК, MacBook, сети, интернет-провайдеров и ряд других факторов. То же самое везде. Это работает, когда я не вошел в систему, но не прошел после того, как я вошел в систему. Все мои тесты указывают на файлы Facebook JS, которые загружаются, когда я вошел в систему, как вероятные виновники. Я уже потратил некоторое время на отладку того, что именно происходит, но их минимизация кода заставляет все это занимать больше времени, чем до сих пор. Marius P. 6 лет назад 0
0
dtbnguyen

Я не думаю, что вы учли достаточно проблем, пытаясь изолировать это дальше. Я видел подобные вещи в прошлом. Некоторые другие вещи, чтобы смотреть на:

  • возможно, что прокси-сервер вверх по течению может быть причиной этого. В настоящее время кеширования намного больше, чем вы ожидаете. Я знаю кучу небольших компаний, использующих такие вещи, как memcache, nginx и squid; другие компании, использующие более дорогие и интегрированные решения Proxy / WAN Acceleration, такие как BlueCoat и Riverbed; крупные ИТ-компании, использующие решения для кэширования на основе WAN, такие как Akamai. На самом деле это только вершина айсберга ... Когда они настроены и работают хорошо, они полностью прозрачны и могут существенно повысить производительность сети. Однако, когда они работают не так хорошо, вы можете увидеть действительно странные вещи, которые чрезвычайно сложно диагностировать, такие как эта. Единственный способ выяснить, идет ли речь о прокси-сервере, это попытаться изменить свой прокси-сервер, переконфигурировать его или пытаться не использовать его вообще. Если это в вашей локальной сети, это легко исправить. Если это за пределами вашей сети, это совсем другая проблема. Раньше я работал с фирмами, где мы продвигали огромную колею через международные сети, но мы все еще изо всех сил пытались получить помощь в диагностике, не говоря уже о преодолении таких проблем, как этот
  • это также может быть проблема с конфигурацией сети или производительностью. Я часто переключаю сети время от времени, что означает, что я знаю из первых рук, с чем ты имеешь дело. В некоторых сетях видео даже не буферизуется, в то время как другие не позволяют мне перемещать маркер времени в одиночку и т. Д. Единственный способ, которым я могу с этим справиться, - это предварительно загрузить видео до его воспроизведения через VLC (много из инструментов, таких как расширения браузера и утилиты командной строки, такие как youtube-dl). Это подводит меня к следующему пункту. В идеале организация должна иметь несколько резервных подключений или альтернативных интернет-провайдеров (с отдельными магистралями) на случай, если вам придется иметь дело с чем-то вроде этого, но если вы просто хотите проверить, я думаю, что вы могли бы просто обойтись тестированием с подключением 3G / 4G к посмотрим, будет ли это s согласованное поведение между обоими соединениями (или попробуйте привести систему домой, чтобы проверить, существует ли проблема по-прежнему). Я также попытался бы выяснить, было ли это возможно связано с самим Facebook. Например, ограничено ли оно большими видео, видео меньшего размера, видео низкого качества, видео высокого качества, видео, которые могут храниться в определенном центре обработки данных, и т. Д. ... Для диагностики запустите трассировщик пакетов, а затем запустите трассировку. на IP-адрес, чтобы выяснить путь. Используйте информацию whois, чтобы получить информацию о географической области и сузить ее до определенного центра обработки данных. Если это слишком сложно, загрузите видео, чтобы получить URL-адрес хоста, а затем запустите whois, чтобы сузить географическое положение и центр обработки данных.

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

  • Одна вещь, которую вам нужно отметить, это то, что если вам когда-либо понадобилось диагностировать такую ​​проблему, как это, может быть трудно связаться с кем-то в фирме, такой как Facebook, через обычные линии поддержки. Будет проще, если вы знаете кого-то, кто знает кого-то и т. Д. Таким образом, вы можете обойти поддержку, которая иногда может быть подрядчиком, который не знает намного больше, чем то, что ему говорят, и не может сделать все так много, потому что это не их работа
  • отчасти это может быть связано с кэшированием, но на самом деле я думаю, что этот вид связывает себя с целым аспектом проблемы, связанным с производительностью.
  • Я также видел этот тип проблемы, возникающей при работе с оборудованием ниже среднего. Например, я знаю, что использовать один нетбук на базе Atom с LinkedIn практически невозможно, потому что он так сильно зависит от кода JavaScript, который выполняется на стороне клиента. Та же проблема с производительностью существует и на видео сайтах (нельзя буферизовать или перемещать маркер времени). Эта проблема не существует ни на чем выше процессора на базе Core I3, хотя ... Тем не менее, я вижу, что вы используете Windows 10, что означает, что маловероятно, что ваш ИТ-бюджет слишком ограничен
  • поскольку вполне возможно, что это может быть связано с необработанной производительностью, я бы не стал регулировать вопросы, касающиеся драйверов программного обеспечения, операционной системы, кодеков и конфигурации программного обеспечения. Я бы попытался запустить его настолько близко, насколько смогу (с точки зрения программного и аппаратного обеспечения), которое, как я видел, вы пробовали, но я бы также посмотрел, есть ли другие более оптимизированные или обновленные драйверы там. способы повышения производительности операционной системы и т. д. Я также попытался бы поиграться с аппаратным обеспечением, а также попытаться каннибализировать детали из других мест в сети, чтобы посмотреть, что это изменит.
  • если дело доходит до публичного или частного профиля, я думаю, вы слишком рано исключаете это. Я предполагаю, что код для загрузки личной страницы по сравнению с общедоступной страницей отличается (по причинам персонализации). Это может привести к небольшому расхождению в производительности. Посмотрите код и сайт. Обратите внимание, насколько это зависит от JavaScript. Может быть несколько похоже на мою проблему LinkedIn. Я предполагаю, что это комбинация проблем, включая перечисленные выше пункты (если вы хотите отладить что-то еще, откройте инструмент отладки для разработчика браузера (хороший пример - Dragonfly in Opera). Он также даст вам время загрузки для всех элементов как относительный размер и какой код на самом деле загружается)
1) Я пробовал в совершенно разных сетях, включая данные о работе / дома / с мобильных устройств. 2) Это не могло быть проблемой в сети, потому что, если я просто выйду из своей учетной записи fb, все общедоступные видео будут работать идеально (те же видео, которые не работают, если Я вошел в систему) 3) Я уже отправил отчет об ошибке и, к сожалению, я не знаю никого, кто там работает 4) Я опустошил все в кеше браузера, те же результаты, плюс причина 2. и я тестировал на разных машинах 5) Аппаратное обеспечение не проблема, потому что причина 2. и я протестировал с i7 6) Мы также тестировали на ванильных операционных системах (Windows и Mac), и это не сработало. Marius P. 6 лет назад 0
Добавлены еще некоторые вещи, чтобы объяснить возможное несоответствие dtbnguyen 6 лет назад 0

Похожие вопросы