FairPlay Streaming подробно

Автор: Николай СапуновОбновлено: август 202626 мин чтения
Содержание статьи +

TL;DR

FairPlay Streaming, сокращённо FPS, – это система Digital Rights Management (управления цифровыми правами) от Apple, единственный DRM, на котором говорят Safari, iOS, iPadOS, tvOS, watchOS и visionOS. Доставить премиальное видео на устройство Apple без FPS физически невозможно. Под капотом FPS шифрует ваш HTTP Live Streaming (HLS) контент по AES-128 в режиме CBC через схему cbcs стандарта ISO/IEC 23001-7 Common Encryption, а затем выполняет двухсообщенческий хэндшейк: устройство отправляет на ваш лицензионный сервер блоб Server Playback Context (SPC), сервер возвращает блоб Content Key Context (CKC) с контент-ключом, и этот ключ никогда не покидает Secure Enclave на современном устройстве. В 2026 году система вошла в третью большую ревизию: Apple FairPlay Streaming Server SDK 26, анонсированный на WWDC 2025 и обязательный с сентября 2026, переводит сертификат с RSA-1024 на RSA-2048, вводит SPC v3 с обязательной защитой целостности и ставит всех операторов на SDK 4 или SDK 5 на план миграции. Эта статья показывает, как система работает на проводе, почему cbcs наконец сделал мульти-DRM экономически разумным, что именно требует миграция на SDK 26 и какое место FPS занимает рядом с Widevine и PlayReady в той связке из двух или трёх DRM, которой кончает любой стриминговый продукт.

Почему это важно

Если вы продаёте платное видео и среди ваших зрителей есть хотя бы один iPhone, вы поставляете FairPlay Streaming. Safari не запускает Widevine Content Decryption Module, tvOS не понимает PlayReady, а нативный плеер iOS говорит только на одном DRM – FPS. Продакт-менеджер после этой статьи будет знать, почему «у нас Widevine» – никогда не достаточно для запуска OTT, и что именно процесс одобрения сертификата у Apple делает с календарём релиза (ревью по две недели и больше – норма 2026 года). Инженер уйдёт с проводным синтаксисом EXT-X-KEY, строкой keySystem для EME в Safari, API AVFoundation для iOS-приложения и четырьмя продакшен-багами, которые проявляются за неделю до запуска. Основатель, оценивающий риск пиратства, получит обоснованный ответ на вопрос «FPS сильнее Widevine L1?» – короткая версия: структурно – да, потому что ключи попадают в Apple Secure Enclave на любом устройстве с чипом A-series или M-series, и Apple никогда публично не разделяла уровни робастности, как Google делит L1/L2/L3; устройство либо запускает FPS, либо нет, а те, что запускают, делают это в той же кремниевой подсистеме, которая защищает Apple Pay.

Эта статья – третья из четырёхчастной DRM-серии: DRM 101: почему три системы и почему вы ставите все три – это столб, Common Encryption (CENC) подробно – это уровень упаковки, Widevine: L1, L2, L3 – сторона Google, а PlayReady подробно – сторона Microsoft. Эта статья – про Apple.

Что такое FairPlay Streaming на самом деле

До форматов на проводе – определение. FairPlay Streaming – это протокол Key Server Module (KSM), плюс клиентский SDK, плюс процесс получения деплой-сертификата. KSM – это часть, которую вы строите и эксплуатируете сами; она живёт за вашим существующим лицензионным эндпоинтом и говорит в формате запросов/ответов FPS. Клиентский SDK – это то, что Apple встраивает в каждую свою ОС – вы не встраиваете его сами, как веб-страница встраивает Widevine CDM. Деплой-сертификат – это документ, который Apple выдаёт вашей команде после ручного рассмотрения вашего стриминг-сервиса.

Из такой конструкции вытекают три вещи, которые формируют каждое FPS-решение, что примет ваша команда.

Во-первых, FPS-клиент – часть операционной системы, а не часть вашего приложения или веб-страницы. В вебе FairPlay Content Decryption Module (CDM) встроен в Safari и доступен только через вызов W3C Encrypted Media Extensions (EME) requestMediaKeySystemAccess со строкой key-system com.apple.fps.1_0 (старые варианты com.apple.fps.2_0, com.apple.fps.3_0 и неверсионированная com.apple.fps существуют для разных ревизий протокола; версионированная форма – продакшен-дефолт). В нативном приложении iOS или tvOS вы дотягиваетесь до FPS через AVContentKeySession – класс Foundation, появившийся в iOS 11 и заменивший старый путь через AVAssetResourceLoaderDelegate. В обоих случаях фактическая криптография происходит внутри кремния Apple, до которого ваш код не доходит.

Во-вторых, Apple не публикует уровни безопасности устройств. Google делит устройства Widevine на L1, L2 и L3 – см. нашу статью Widevine: L1, L2, L3. Apple – нет. Устройство либо поддерживает FPS, либо нет, и каждое поддерживающее устройство делает это с одной и той же моделью доверия: ключи попадают в Secure Enclave (выделенный сопроцессор, который также хранит токены Apple Pay и шаблоны Touch ID / Face ID), расшифровка сэмплов происходит в аппаратуре, а декодированные кадры идут на дисплей через ограниченный CoreMedia-путь Apple. Не существует «FPS L3», который работал бы в софтовой памяти, как desktop Chrome запускает Widevine L3. Отчасти поэтому контент, защищённый FPS, стримится в 4K HDR на Mac, в то время как Widevine на том же Mac в Chrome упирается в 720p.

В-третьих, деплой-сертификат требует ручного одобрения Apple. Вы подаёте заявку через портал FairPlay Streaming credentials, Apple проверяет ваш стриминг-сервис, и только после этого ваша команда получает доступ к созданию сертификата в Apple Developer Portal. Каждая команда держит не более двух FPS-сертификатов одновременно, и с сентября 2026 года Apple не выдаст новый SDK 26-сертификат, пока один из этих слотов не освободится. Apple Developer Forums полны жалоб 2025 года на ревью длительностью более двух с половиной недель; закладывайте это в календарь релиза заранее, не пытайтесь пробежать впритык.

Рисунок 1. Трёхсторонняя цепочка доверия. Apple выпускает сертификат и контролирует устройство; вы запускаете KSM и упаковщик; Secure Enclave устройства посредничает в диалоге.

Протокол на проводе: SPC и CKC

Запрос FairPlay-лицензии – это обмен двумя сообщениями. Оба сообщения с точки зрения плеера – непрозрачные бинарные блобы; только ваш Key Server Module и FPS CDM устройства понимают содержимое. Документ FairPlay Streaming Overview (публичный PDF Apple, на который опирается любая реализация) описывает имена сообщений и общую структуру; побайтовая грамматика – в FairPlay Streaming Server SDK, который распространяется под NDA.

Сообщение 1 – Server Playback Context (SPC). Когда плеер встречает зашифрованный сегмент, он просит FPS CDM сгенерировать SPC. CDM собирает воедино идентификатор ключа контента (KID, переносимый в теге EXT-X-KEY, который мы разберём ниже), 16-байтный анти-replay-nonce, хеш целостности тела SPC, идентификационный пейлоад устройства и сессионный ключ – и затем шифрует весь набор открытым ключом из вашего FPS-сертификата. Зашифрованный результат – это SPC. Плеер base64-кодирует его и POST-ит на ваш лицензионный URL.

Сообщение 2 – Content Key Context (CKC). Ваш Key Server Module получает SPC, расшифровывает его своим закрытым ключом (половина FPS-сертификата, которой Apple не видит) и с помощью Apple-овского SDK:

  1. Проверяет хеш целостности SPC и nonce против вашего окна защиты от повторов.
  2. Извлекает запрошенный KID и находит фактический контент-ключ в вашей БД.
  3. Применяет бизнес-правила – авторизован ли пользователь, разрешена ли политика контента этому классу устройств, не истекло ли арендное окно, находится ли пользователь в разрешённой географии.
  4. Если все правила прошли, просит SDK завернуть контент-ключ (плюс опциональные параметры аренды и принуждения HDCP) в CKC, зашифрованный сессионным ключом, который пришёл вместе с SPC.

CKC возвращается к плееру, плеер передаёт его FPS CDM, CDM разворачивает контент-ключ внутри Secure Enclave, и начинается расшифровка. Ключ никогда не виден в обычной памяти приложения – ни в процессе браузера, ни в адресном пространстве вашего iOS-приложения, ни на шине GPU.

Самое полезное предложение в этой статье – следующее. KSM никогда не видит контент-ключ в открытом виде на пути к устройству. Ваш KSM держит контент-ключ в открытом виде (вы зашифровали им видео на этапе упаковки), но при отдаче передаёт его Apple-овскому SDK, и SDK заворачивает ключ под сессионный, per-session, per-device ключ, прежде чем тот уйдёт с вашего сервера. Атакующий, перехвативший CKC на проводе, не сможет извлечь контент-ключ, не сломав также сессионный, а сессионный жил ровно один этот ответ и для одного этого устройства.

Анонс SDK 26 меняет три части обмена:

  • SPC v3 – добавляет явный Protocol Version UUID, поле SHA-256 хеша сертификата вместо SHA-1 из SDK 4 и обязательную проверку целостности. Старые устройства продолжают говорить SPC v1 и v2; ваш KSM автоматически определяет версию по заголовку SPC.
  • RSA-2048 сертификаты – заменяют дефолтный RSA-1024 из SDK 4. Каждый SDK 26-сертификат, что Apple выдаёт начиная с сентября 2026, – это RSA-2048.
  • Дефолтные бизнес-правила – SDK теперь поставляется с эталонной реализацией наиболее частых бизнес-правил (HDCP, арендные окна, длительности lease), так что автор KSM стартует с рабочей базы, а не с пустого файла.
Рисунок 2. Хэндшейк SPC/CKC – пять шагов от «встречен зашифрованный сегмент» до «расшифрованный кадр на экране».

HLS-манифест: как FairPlay живёт внутри `.m3u8`

FairPlay-защищённый HLS-манифест выглядит почти так же, как обычный. Два отличия – дополнительный тег EXT-X-KEY и конкретный метод шифрования.

Минимальный синтаксис для одной FPS-защищённой ленты:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://12345-67890-abcde",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
#EXTINF:6.0,
segment0.m4s
#EXTINF:6.0,
segment1.m4s
...
#EXT-X-ENDLIST

Пять атрибутов, которые стоит знать наизусть:

  • METHOD=SAMPLE-AES – указывает плееру использовать сэмплевое шифрование (шифруются только медийные сэмплы; контейнерные боксы, таймстампы и параметры кодека остаются в открытом виде, чтобы плеер построил презентационный таймлайн без ключа). Если сегменты – фрагментированный MP4 (CMAF), схема шифрования – cbcs из ISO/IEC 23001-7:2023 – AES-128 в режиме CBC с паттерном 1:9 (один зашифрованный блок из 16 байт, затем девять незашифрованных блоков по 16 байт, затем повтор). Если сегменты – MPEG-TS, тот же метод SAMPLE-AES маппится в старый Apple-овский формат MPEG-2 Stream Encryption, описанный на архивной странице MPEG-2 Stream Encryption Format.
  • URI="skd://..." – схема skd: – это Apple-овский сигнал, что это FairPlay-ключ. Непрозрачная строка после skd:// – ваш контент-ный KID; плеер передаёт её сквозь себя в FPS CDM и в ваш KSM без изменений. Опциональный суффикс :<IV> несёт Initialization Vector прямо в URI, если вы не хотите отправлять его внутри entitlement-сообщения.
  • KEYFORMAT="com.apple.streamingkeydelivery" – задаёт идентификатор формата ключа. Это магическая строка, которую ищет плеер; любое другое значение (или отсутствие тега) означает, что FPS не подключится.
  • KEYFORMATVERSIONS="1" – единственное допустимое значение в 2026.
  • #EXT-X-VERSION:6 – SAMPLE-AES требует HLS-протокола версии 5 или выше; версия 6 – минимум, поддерживающий fMP4-сегменты. HLS Authoring Specification, ревизия 2025-09, требует fMP4 (CMAF) для нового контента; MPEG-TS поддерживается только для устаревшего ингеста.

Обычный манифест 2026 года несёт два тега EXT-X-KEY рядом – один для FairPlay и один для пары Common Encryption Widevine / PlayReady, чтобы те же самые сегменты могли расшифровываться Apple-устройством через FPS-строку и Widevine- или PlayReady-устройством через CENC-строку. Жёсткое требование Apple cbcs-only означает, что байты под капотом зашифрованы в режиме cbcs, который Widevine и PlayReady поддерживают с 2018 года. Эпоха двойной упаковки (одни сегменты в cenc AES-CTR для Widevine/PlayReady, другие в cbcs для FPS) закончилась около 2020-го; в 2026 один CMAF-актив кормит все три DRM.

#EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://kid-uuid",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
#EXT-X-KEY:METHOD=SAMPLE-AES,URI="data:text/plain;base64,...",KEYFORMAT="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",KEYFORMATVERSIONS="1"

Первый тег включает FairPlay; второй несёт Widevine pssh-пейлоад как data: URI под UUID-ом системы Widevine. Плеер выбирает строку, которая совпадает с его key system.

Рисунок 3. Зашифровать один раз, расшифровать трижды. Схема `cbcs` сделала single-encode мульти-DRM продакшен-дефолтом.

Persistent-лицензии и оффлайн-воспроизведение

Релиз iOS 10 в 2016 году добавил persistent-лицензии FairPlay, чтобы пользователь мог скачать фильм по Wi-Fi дома и посмотреть его в самолёте. Apple называет фичу Dual Expiry Windows, и схема заслуживает того, чтобы её знать – каждый арендный продукт её касается.

Когда пользователь запускает скачивание, ваш KSM выдаёт CKC с двумя полями длительности:

  • Storage duration – максимальное время валидности лицензии до начала воспроизведения, считается от момента, когда устройство её сохранило. Классический пример аренды – 30 дней: у пользователя есть 30 дней, чтобы реально начать смотреть, иначе лицензия автоматически становится недействительной.
  • Playback duration – максимальное wall-clock время валидности после начала воспроизведения. Классический пример – 48 часов от первого кадра.

Объединённое окно из двух чисел – 30 дней начать и 48 часов досмотреть – это ровно та модель «арендовал, смотришь в течение 48 часов», которую использует каждый крупный OTT. KSM выдаёт один CKC в момент скачивания; устройство хранит его; первое воспроизведение запускает внутренние часы, которые ведёт устройство и контролирует ОС. Приложение не может продлить окно воспроизведения, не сходив на сервер за свежим CKC.

Практическое ограничение, о котором стоит сказать в вашем KSM: iOS-приложению недоступен API запроса оставшегося времени persistent-лицензии. Ваше приложение должно само трекать timestamp начала воспроизведения, сохранять его и сравнивать со своей копией playback duration, чтобы показывать «осталось 47 часов» в UI. AVPersistableContentKeyRequest возвращает блоб лицензии, но не её оставшийся срок – это часто упоминаемая проблема на Apple Developer Forums.

Миграция на SDK 26

Анонс FairPlay Streaming Server SDK 26 на WWDC 2025 задал срок миграции – сентябрь 2026. Каждая команда, поставляющая платное видео на устройства Apple, должна либо подтвердить, что SDK 5 ещё приемлем для её аккаунта, либо перенести имеющийся сертификат на SDK 26. Четыре практических изменения:

1. Экономика слотов под сертификаты. Каждая команда держит не более двух FPS-сертификатов одновременно. Команда, у которой оба слота заняты SDK 4.x или SDK 5.x, не может выпустить новый SDK 26-сертификат, пока Apple не очистит один. Очистка – ручная и идёт через тот же канал Apple Developer Support, что и оригинальный запрос; закладывайте две–четыре недели на круг в продакшен-миграциях.

2. RSA-2048 повсюду. Сертификаты SDK 4 – RSA-1024; SDK 26 – RSA-2048. Ваш KSM должен подгружать оба, определять версию сертификата по SPC и отвечать в соответствующем формате CKC. Эталонный KSM от Apple (теперь поставляется на Swift и Rust) делает это; самописный KSM из 2018 года – нет.

3. Защита целостности SPC v3. Устройства SDK 26 шлют SPC v3, который содержит обязательное поле integrity-hash, и ваш KSM должен его проверять до обработки запроса. KSM, который молча игнорирует незнакомое поле, будет молча принимать подделанные SPC от SDK 26-устройств; эталонный KSM SDK 26 отклоняет такие SPC с определённым кодом ошибки. Прогоните фаззинг по новому коду пути до миграции.

4. Несколько сертификатных бандлов в одном KSM. До SDK 26 KSM держал один сертификат на «эмитента». Новый SDK позволяет KSM обслуживать несколько сертификатных бандлов одновременно – это важно, если оператор запускает несколько брендов (например, родительский OTT плюс пара тонких бандлов) под разными аккаунтами Apple Developer. Один инстанс KSM, несколько бандлов, меньше серверов.

В стационарном состоянии миграция не разрушительна – старые устройства продолжают говорить старыми версиями SPC, эталонный KSM SDK 26 принимает SPC v1–v3 одновременно. Разрушительность – административная: очистка слотов, запрос одобрения деплоя, переподписание цепочки доверия.

Где FairPlay стоит рядом с Widevine и PlayReady

Продакшен-карта 2026 года простая, и её стоит держать в виде таблицы.

КритерийFairPlayWidevinePlayReady
ВладелецAppleGoogleMicrosoft
Обязателен дляiOS, iPadOS, tvOS, macOS Safari, watchOS, visionOSAndroid, браузеры на Chromium, Chromecast, Android TVWindows-приложения, Edge Legacy, Xbox, многие Smart TV на Tizen / webOS
КонтейнерHLS (CMAF или MPEG-TS)DASH (CENC) или HLS (CMAF, CBCS)DASH (CENC) или HLS (CMAF)
Схема CENCтолько cbcscenc или cbcscenc или cbcs
EME key systemcom.apple.fps.1_0 (также 2_0, 3_0)com.widevine.alphacom.microsoft.playready
Публичные уровни безопасностиНе публикуются; доверие – Secure EnclaveL1 / L2 / L3 публикуютсяSL150 / SL2000 / SL3000 публикуются
Получение сертификатаРучное одобрение Apple, ревью ~2 неделиСамостоятельно через Widevine partner portalРучное через программу лицензирования Microsoft
Persistent / оффлайнДа – Dual Expiry Windows с iOS 10Да – persistent-license session typeДа – non-persistent и persistent
Минимальный SDK 2026SDK 26 (сентябрьский cutover 2026)Modular Widevine 5.x (с 2014)PlayReady 4.5 (Smart TV) / 4.6 (Edge)

Практическая пара, которую ставит любой OTT-продукт, – Widevine + FairPlay как двухDRM-минимум: вместе они покрывают весь Chrome, Firefox, Edge-Chromium, Safari, Android, iOS, Smart TV на Android TV и Apple TV. PlayReady добавляется, когда аудитория включает Smart TV на Tizen / webOS в 4K (там путь PlayReady SL3000 – единственный, что раскрывает UHD), консоли Xbox или Windows-нативные приложения со строгими студийными контрактами. См. статью Common Encryption (CENC) подробно, чтобы понять, как все три сидят в одном зашифрованном CMAF-файле.

Рисунок 4. Трёх-DRM-сравнение, которое каждая продуктовая команда печатает и вешает над столом.

Числовой пример: пропускная способность лицензионного сервера

Пусть OTT-продукт запускается с 50 000 одновременных зрителей на пике. Каждый зритель забирает один CKC в начале сессии и обновляющий CKC примерно раз в 24 часа непрерывного просмотра (большинство продуктов конфигурирует session-keys с потолком в 24 часа). Пик – это одна виртуальная виртуальная-секунда лицензионного трафика на новый логин плюс медленный фон обновлений.

Выдача одной сессии: 1 разбор SPC + 1 расшифровка RSA-2048 + 1 сборка CKC + 1 подпись RSA-2048 ≈ 8 мс CPU на современном ядре Xeon. Параллельная ёмкость на ядро при 100% утилизации:

1 ядро × 1000 мс / 8 мс на лицензию = 125 лицензий / сек

Запуск с 50 000 зрителями и 10-минутным окном прогрева – это ~50 000 SPC за 600 секунд, или 83 SPC/сек в среднем с 3× пиковым всплеском в 250 SPC/сек, когда аудитория со второго экрана одновременно жмёт «играть» в начале live-события.

Чтобы переварить 250 SPC/сек с запасом 50%:

250 SPC/сек × 1.5 / 125 SPC/(сек·ядро) = 3 ядра

Одного четырёхъядерного инстанса KSM хватает на 50 000-зрительское событие с запасом. Два инстанса за балансировщиком – на отказоустойчивость. Лицензионный сервер почти никогда не является узким местом запуска стриминга; календарь выдачи сертификата – является.

Типичные ошибки (и как их поймать до продакшена)

«Подводный камень: запрос FPS-сертификата после фиксации даты запуска. Ручное ревью деплой-кредов Apple в 2026 идёт две недели и больше, и это окно не стартует, пока ваша команда не подала описание стриминг-сервиса, удовлетворяющее правилу Apple «сервис для конечного потребителя». Сторонние агентства, действующие от лица владельца контента, явно отклоняются. Главная причина сдвига запуска OTT – «закажем FPS-серт в спринте 4». Заказывайте в спринте 1.»
«Подводный камень: неправильная EME key-system строка в Safari. FPS CDM в Safari зарегистрирован только под com.apple.fps.1_0 (2_0 и 3_0 зарезервированы под будущие апгрейды протокола – текущая продакшен-поверхность – это 1_0). Неверсионированная com.apple.fps работает в некоторых версиях Safari и молча падает в других, причём проявляется это как MEDIA_ERR_SRC_NOT_SUPPORTED в консоли браузера с ошибкой -42676 на KSM – что отправляет дебаггера гоняться за сервером, когда фикс – одна строка в EME-конфиге плеера.»
«Подводный камень: оставить MPEG-TS-сегменты для FPS-only в 2026. HLS Authoring Specification (ревизия 2025-09) требует fMP4 (CMAF) для нового контента; MPEG-TS поддерживается только для архивного воспроизведения. Команды, которые держат MPEG-TS-only origin, «потому что Apple-устройства его играют», получают форкнутый пайплайн упаковки на первом же мульти-DRM-контракте. Один раз выбирайте CMAF + cbcs.»
«Подводный камень: считать, что успешный разбор SPC означает довольное устройство. CKC должен включать правильный HDCP-флаг, правильные значения арендной длительности, правильные lease-биты и (для SDK 26) правильное поле подтверждения целостности SPC v3. Устройство, получившее синтаксически валидный CKC с неверными полями политики, либо молча упадёт на 480p, либо вообще откажется играть – в зависимости от бита. Продакшен-уровень KSM прогоняет ежедневный smoke-тест по флоту физических Apple-устройств именно потому, что отказы – молчаливые.»

Где здесь Фора Софт

Мы выпускаем FairPlay-защищённые OTT-, телемедицинские, e-learning и surveillance-продукты на Apple-платформах с 2015 года – с момента релиза модульной FPS-архитектуры – на iOS, iPadOS, tvOS, macOS и visionOS. Деньги приносит не код KSM – эталонные реализации Apple хороши – а хореография запроса сертификата с Apple, dual-DRM CMAF-упаковка, что позволяет одному origin кормить FPS плюс Widevine плюс PlayReady с одной кодировки, интеграция iOS-приложения с AVContentKeySession, UX оффлайн-аренды с persistent-лицензиями и dual-window expiry и device-by-device QA-матрица по поколениям Apple silicon. Мы делаем эти вещи по умолчанию, а не как опцию.

Ключевые выводы

  • FairPlay Streaming – единственный DRM, на котором говорят Apple-устройства; либо вы его поставляете, либо вы не поставляете на Safari, iOS, tvOS, macOS и visionOS.
  • FPS использует AES-128 CBC (схема cbcs из ISO/IEC 23001-7) поверх HLS, с двухсообщенческим хэндшейком SPC/CKC между устройством и Key Server Module.
  • Apple не публикует уровни безопасности; каждое FPS-устройство якорит ключи в Secure Enclave, доверие – бинарное «FPS или не FPS».
  • Миграция на SDK 26 (2026) переводит сертификаты на RSA-2048, делает целостность SPC v3 обязательной и запускает cutover с SDK 4 / SDK 5 в сентябре 2026.
  • Persistent-лицензии используют Dual Expiry Windows (storage-duration плюс playback-duration) для классической модели «арендовал на 30 дней, смотришь 48 часов».
  • Упаковка cbcs сделала single-encode мульти-DRM продакшен-дефолтом; один CMAF-актив кормит FPS, Widevine и PlayReady.
  • Ручное ревью деплой-кредов Apple занимает две недели и больше – запрашивайте сертификат в спринте 1, а не в спринте 4.

Что почитать дальше

CTA

Поговорить со стриминг-инженером – спланировать запуск FairPlay-защищённого OTT с нашей командой. · Посмотреть кейсы – продакшен-OTT, телемедицина и e-learning в портфеле Фора Софт. · Скачать чек-лист развёртывания FairPlay Streamingодностраничный справочник по запросу сертификата, миграции на SDK 26, путям EME и AVContentKeySession и четырём ошибкам, которые доходят до продакшена.

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.