55

Я страдал от этого месяцами, возможно, даже годами, и до сих пор не имею ни малейшего понятия о причине.

Допустим, я открываю видео на YouTube в Chrome, как в « Мыслях Джейми Хайнмана» о проектировании и создании с использованием САПР, плеер сразу же остановит воспроизведение после рекламы и начнет буферизацию. Как только у него есть 10 секунд буферизации, он продолжит воспроизведение и снова остановится после 10 секунд воспроизведения.

Собственная рекомендация Googles в подобных случаях заключается в том, чтобы приостановить видео и дождаться его полной буферизации, но когда я приостанавливаю видео, оно никогда не будет полностью буферизовано. В лучшем случае он загрузит пару секунд видео, а затем вообще прекратит буферизацию.

Напротив, когда я одновременно открываю одно и то же видео в Firefox, воспроизведение будет не только идеальным, но если я сделаю паузу, оно будет полностью буферизовано. Вот сравнение:

Это видео в Chrome. Я открыл его и остановил его на отметке 0:05 и оставил его загруженным около минуты. Мы можем увидеть результат в панели инструментов:
YouTube видео в Chrome

Вот то же видео после того же периода в Firefox:
YouTube видео в Firefox

Еще пару минут спустя, и видео полностью буферизируется в Firefox, в то время как ситуация в Chrome остается неизменной.

В этой ситуации оба браузера использовали Flash Player (очевидно, Chrome использует его встроенную реализацию).

В чем причина такого поведения и как я могу это исправить?

1 ответ1

47

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

Тире воспроизведения

Из того, что я понимаю, основной проблемой является реализация YouTube динамической адаптивной потоковой передачи по HTTP. Насколько я могу судить, здесь работают как серверные, так и клиентские реализации. Статья в Википедии, на которую ссылаются выше, говорит:

YouTube Google экспериментировал с поддержкой MPEG-DASH на стороне сервера. Google Chrome поддерживает его на стороне клиента. Однако реализация этой функции привела к серьезному ухудшению воспроизведения видео из-за различных ошибок, таких как случайное затенение параметров качества видео и невозможность их выбора без многократного обновления страницы.

Что звучит очень знакомо.

Решение

В настоящее время очень популярным подходом к решению этой проблемы является использование расширения YouTubeCenter , которое доступно для самых разных браузеров.

Это позволяет отключить воспроизведение тире, но также отмечает:

Обратите внимание, что при отключении функции воспроизведения тире, 480p и 1080p будут недоступны. Это из-за недавнего изменения YouTube.

Отключение воспроизведения тире

Чтобы отключить воспроизведение тире, просто откройте меню настроек:

И снимите соответствующий флажок на странице игрока:

В результате видео будут загружаться максимально быстро и полностью.

Обратите внимание, что YouTubeCenter по умолчанию удаляет рекламу. Если вы хотите поддерживать ваши любимые каналы YouTube, обязательно отключите эту функцию.


Оригинальный ответ:

Отключение внутреннего Flash плагина Chrome

Похоже, это снова случай отладки резиновой утки ...

После публикации я подумал, что, возможно, стоит проверить, могу ли я просто отключить встроенный Flash-плеер в Chrome, и посмотреть, даст ли это эффект. Этот процесс описан в справке Adobe Flash Player.

  1. Загрузите установщик последней версии Flash Player от Adobe и установите его.

  2. Зайдите в chrome://plugins/ .

  3. Нажмите кнопку « Подробности» , чтобы развернуть сведения об отдельных плагинах:

    Менеджер плагинов Chrome

  4. Там должно быть 2 записи для Adobe Flash Player. Одна - встроенная версия в Chrome, другая - обычная установка. Отключить встроенный.

    Внутренний плагин Flash Player

    Вы легко узнаете внутренний, так как он находится в папке PepperFlash каталоге установки Chrome.

  5. Теперь поведение кеширования должно быть идентичным поведению, наблюдаемому в Firefox.

Обратите внимание, что отключение встроенной версии Flash обычно не рекомендуется.

Использование расширения SmartVideo

Алекс указал на расширение под названием SmartVideo. Это расширение дает вам больше контроля над поведением буферизации в Chrome.

Я проверил это некоторое время и очень доволен результатами. В частности, опция « Гарантировать, что видео буферизуются, даже если они приостановлены, влияет на нежелательное поведение, как описано в моем вопросе».

Он имеет несколько преимуществ по сравнению с отключением PepperFlash. Прежде всего, это дает довольно много вариантов, которые я даже не имел в виду раньше. Например, запретить YouTube автоматически воспроизводить видео.

Использование PepperFlash также является преимуществом при использовании нескольких мониторов. Если у вас полноэкранное видео на одном экране и другое окно Chrome на втором, фокусировка на втором окне Chrome будет по-прежнему сохранять полноэкранное видео на переднем плане. Напротив, если вы используете внешний Flash-плеер, фокусировка второго окна Chrome приведет к появлению панели задач перед полноэкранным видео.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .