2015-07-27 2 views
3

Мы сталкиваемся с проблемами при попытке кэширования видео на Диспетчере AEM. Мы запускаем диспетчер 4.1.2 на HTTP-сервере Apache 2.2.Кэширование видео Возвращение 206 на диспетчере AEM, запущенном на сервере Apache

Видеообслуживаются правильно и работают во всех браузерах, однако они НЕ кэшируются при просмотре с Chrome/Firefox, однако они должным образом кэшируются при просмотре из IE. Разница между браузерами заключается в том, что когда пользователь открывает видео в IE, он сначала загружает полное видео, а затем начинает воспроизведение и, следовательно, возвращает 200 в качестве кода ответа. Когда chrome/firefox воспроизводит видео, он использует запрос диапазона, и все видео загружается браузером в нескольких запросах диапазона, возвращающих 206 в качестве кода ответа.

Это все, что я знаю до сих пор, и я подозреваю, что из-за частичных запросов, сделанных chrome/firefox, диспетчер не кэширует видео.

Любые указатели для решения этой проблемы были бы очень полезными!

+0

Я думаю, что это проблема поддержки Adobe относительно диспетчера. Не уверен, что вы можете добавить конфигурацию, поэтому 206 также будет кэшироваться, но по мере того, как файл загружается больше как поток, файл, вероятно, никогда не будет храниться на диспетчере в целом. Для видеороликов я все же предлагаю использовать выделенный потоковый сервер, у вас все еще есть видеокомпонент в CQ и просто ссылайтесь на поток по его URL-адресу. – Thomas

ответ

0

Однако мы лично пропустили кэширование видео на диспетчере, поскольку теперь мы используем CDN для кеширования видео, но если кто-то заинтересован в кешировании видео на диспетчере, вот предлагаемое решение, которое я еще не реализовал, но в теории должен работать.

Видео Кэширование работает на основе браузера Поведения: грузоотправитель используется для кэширования элементов, таких как изображения/страницы/видео и т.д., и есть определенные условия, при которых диспетчер кэширует содержимое, которое он обслуживает, один из которых является - Ответ Код должен быть 200. Теперь, когда видео воспроизводятся в разных браузерах, он использует другой подход для воспроизведения видео.

Когда видео воспроизводится с использованием Chrome и Firefox, для загрузки и воспроизведения видео используется стратегия частичного контента, то есть она отправляет запрос на сервер, чтобы получить только часть видео, чтобы быстро начать воспроизведение, и в этом случае он отправляет заголовок диапазона с запросом, который возвращает часть видео с кодом состояния 206 (успех с частичным контентом). Поэтому для воспроизведения видео браузер (Chrome и Firefox) выполняет множественный запрос диапазона, каждый из которых возвращает код состояния 206 и имеет часть видео, из-за чего видео не кэшируется при доступе через эти браузеры. Браузеру удается воспроизвести все видео, объединив эти части.

Теперь в случае IE поведение немного отличается. Вместо того, чтобы делать запросы на частичный диапазон, он делает запрос на загрузку полного видео сначала, и только после того, как все видео загружено, оно начинает воспроизводить видео. Таким образом, в этом случае сервер возвращает видеофайл с кодом состояния 200, который диспетчер видит в качестве кэшируемого и, следовательно, кэширует видео. Поэтому, когда видео будет воспроизводиться браузером IE, он будет кэшироваться из-за такого поведения.

Возможное решение: Так на основе поведения пояснялось выше, видео, когда играл с Chrome/Firefox не будет кэшировать на диспетчеру в то время как те же видео, когда играл с IE будет кэшировать. Теперь, если мы все еще хотим сделать кеш-видео, независимо от браузера, в котором он воспроизводится, мы должны высмеивать поведение IE запросов на загрузку видео, реализуя специальный фрагмент кода, называемый сценарием Cache Warming. Этот сценарий не изменит поведение браузера. Этот скрипт будет запущен сразу после того, как видео будет активировано от автора, что вызовет событие диспетчера флеша для этого видео, и мы поймаем это событие и запустим наш скрипт. Этот скрипт сделает запрос на загрузку полного видео с теми же заголовками, которые использует IE, то есть в свою очередь будет автоматически кэшировать видео на диспетчере. Итак, все, что мы делаем, - это сделать кеш-видео сразу после его публикации и не дожидаться его кэширования, когда он воспроизводится через браузер.

Смежные вопросы