INTEGRITY Документация

Проблемы с видео MP4 в iOS и Safari

Если трафик проходит через Cloudflare, Safari на устройствах с macOS и iOS может не загружать видеофайлы MP4.

Эта проблема возникает потому, что Safari обрабатывает HTTP range запросы иначе, чем другие браузеры, особенно в том, как он обрабатывает ETags при потоковом воспроизведении видео.

Safari и устройства на iOS используют HTTP-запросы диапазона (Range requests) для поддержки видеофункций, таких как переход к определённому моменту воспроизведения и возобновление прерванных загрузок.

Когда уровень кэширования Cloudflare обрабатывает такие range-запросы со слабыми ETag, Safari может полностью отклонить закэшированный ответ, из-за чего видео не загружается или отображается черным экраном.

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

1. Создайте правило для строгих ETag-заголовков

Создайте cache rule которое применяется ко всем файлам MP4, помечает их как пригодные для кеширования и включает настройку Respect Strong ETags.

  1. На панели управления Cloudflare перейдите к разделу Cache Rules страницу.

    Перейдите в Cache Rules ↗
  2. Выберите Создать правило > Cache Rules.

  3. Введите описательное название правила в Название правила.

  4. В Когда входящие запросы совпадают… разделе создайте фильтр, применяемый ко всем файлам MP4, например URI Full Wildcard *.mp4.

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

  6. Выберите + Add Setting для Respect strong ETags и включите переключатель.

  7. Выберите Последняя как Расположите на.

2. Создайте правило обхода кеша

Создайте ещё одно правило кеширования, которое применяется ко всем файлам MP4 и полностью пропускает кеш.

  1. На панели управления Cloudflare перейдите к разделу Cache Rules страницу.

    Перейдите в Cache Rules ↗
  2. Выберите Создать правило > Cache Rules.

  3. Введите описательное название правила в Название правила.

  4. В Когда входящие запросы совпадают… разделе создайте такой же фильтр для файлов MP4, например URI Full Wildcard *.mp4.

  5. Выберите Bypass cache в Допустимость кеширования раздел.

  6. Выберите Последняя как Расположите на.

Почему важен этот порядок

Первое правило сохраняет строгие ETags для файлов MP4, что удовлетворяет требованиям Safari к обработке запросов диапазона. Второе правило обходит кеш, поэтому Cloudflare перенаправляет запросы диапазона на исходный сервер вместо того, чтобы отдавать кешированные ответы с потенциально несовпадающими ETags.

Первое правило должно располагаться выше второго в списке Cache Rules.