encrypt video

Настройки по умолчанию для DRM-систем

Введение

Вы можете настроить глобальные свойства выдаваемых лицензий для разных DRM-систем, которые будут применяться ко всем лицензиям вашего проекта. Для этого сообщите нам о свойствах, которые желаете настроить, и мы вам поможем. Для сложных сценариев рекомендуем реализовать CAS-сервис.

Если вы планируете использовать глобальные свойства совместно с собственной реализацией CAS-сервиса, следует учитывать, что переопределения свойств из CAS имеют больший приоритет по сравнению с глобальными свойствами.

Далее названия свойств, если не указано иное, приведены в соответствии с официальной документацией. Нестандартные свойства, которых нет в официальной документации, отмечены звездочкой.

Содержание статьи:

Widevine #

Настройки воспроизведения для пользователей с определенными характеристиками устройства #

allow_unverified_platform #

Определяет, разрешено ли использовать лицензию на платформах, признанных Widevine отозванными из-за недостаточной поддержки всех спецификаций. По умолчанию — true. При установке в false лицензия не будет выдана. Не рекомендуется изменять этот параметр без особой необходимости.

override_device_revocation #

Определяет, разрешено ли использовать лицензию на устройствах, признанных Widevine отозванными из-за недостаточной поддержки спецификации. По умолчанию — true. При установке в false лицензия не будет выдана. Не рекомендуется изменять этот параметр без особой необходимости.

Настройки уровней защиты #

security_level #

Уровень защиты лицензии с данным ключом от 1 до 5 по классификации EME (в скобках значение по классификации Widevine), который определяет, как будет происходить расшифровка ключа и декодирование медиа. 1 (L3) — расшифровка ключа выполняется на программном уровне, 2 (L3) — декодирование медиа выполняется на программном уровне, 3 (L2) — расшифровка ключа выполняется на аппаратном уровне, 4 (L1) — декодирование медиа выполняется на аппаратном уровне, 5 (L1) — расшифровка ключа и декодирование медиа выполняются на аппаратном уровне. Для уровней 3-5 предполагается, что устройства и приложения клиентов поддерживают выполнение операций в доверенной среде исполнения (TEE, Trusted Execution Environment) — специальной безопасной среде исполнения программ, работающей изолированно от операционной системы. По умолчанию уровень защиты равен 1. Рекомендуется использовать как можно более высокое значение этого параметра. Если клиентское устройство не поддерживает заданный уровень защиты, то воспроизведение будет невозможно.

hdcp #

Уровень защиты HDCP для лицензий. Доступные значения: HDCP_NONE (без HDCP, значение по умолчанию), HDCP_V1 (клиентское устройство должно поддерживать HDCP_V1), HDCP_V2 (клиентское устройство должно поддерживать HDCP 2.0), HDCP_V2_1 (клиентское устройство должно поддерживать HDCP 2.1), HDCP_V2_2 (клиентское устройство должно поддерживать HDCP 2.2), HDCP_V2_3 (клиентское устройство должно поддерживать HDCP 2.3), HDCP_NO_DIGITAL_OUTPUT (видеоконтент нельзя ретранслировать на другие видеоустройства, воспроизведение разрешено только непосредственно на экране клиентского устройства).

disable_analog_output #

Запрет вывода видеосигнала по аналоговым интерфейсам для данного ключа. Если true, то вывод запрещен. Если false, то вывод разрешен. По умолчанию false.

hdcp_srm_rule #

Определяет, возможна ли выдача лицензии для данного ключа, если клиентское устройство не поддерживает сообщения о возможности обновления системы (SRM). По умолчанию равно HDCP_SRM_RULE_NONE. При установке этого параметра равным CURRENT_SRM — данный ключ нельзя будет использовать на устройствах без поддержки обновлений SRM. Не рекомендуется изменять этот параметр без особой необходимости.

cgms_flags #

Определяет, должно ли клиентское устройство поддерживать CGMS. Доступные значения: CGMS_NONE (значение по умолчанию), COPY_FREE, COPY_ONCE, COPY_NEVER. Этот параметр НЕ указывается, если предполагается воспроизведение в браузерах на десктоп-устройствах. Не рекомендуется указывать и/или изменять этот параметр без особой необходимости.

quality_to_security_level_mapping* #

Задает соответствие между качествами контента и уровнями защиты лицензии. Для каждого из качеств SD, HD, UHD1, UHD2, AUDIO можно назначить security_level — уровень защиты лицензии, который будет применяться к ключу с данным качеством. Эти уровни защиты будут применены ко всем ключам шифрования внутри проекта. Для более тонкой настройки следует использовать собственную реализацию CAS-сервиса. Если для какого-то из качеств не назначен security_level, он полагается равным 1 (минимальный возможный уровень). Обратите внимание, что для запаковки и воспроизведения контента с несколькими ключами следует использовать v2-роуты: /v2/speke, /v2/keyservice/contentkey/get — запаковка, /v2/widevine — воспроизведение.

Пример использования — видео с 4 видеодорожками с лейблами SD, HD, UHD1, UHD2 и 1 аудиодорожкой с лейблом AUDIO, уровень защиты лицензии Widevine L3 для видеодорожки стандартного качества и аудиодорожки, и Widevine L1 для всех остальных:

{"SD": 1, "AUDIO": 1, "HD": 5, "UHD1": 5, "UHD2": 5}

Пример использования — видео с 2 видеодорожками с лейблами SD и HD и 1 аудиодорожкой с лейблом AUDIO, уровень защиты лицензии Widevine L1 для видеодорожки повышенного качества и Widevine L3 для остальных:

{"SD": 1, "HD": 5, "AUDIO": 1}

что эквивалентно

{"HD": 5}

Настройки длительности доступа к воспроизведению #

can_persist #

Если значение установлено true, то сгенерированная лицензия может быть сохранена на клиентском устройстве, что позволяет воспроизводить защищенный контент в режиме офлайн. По умолчанию false.

can_renew #

Если значение установлено true, то лицензия может быть продлена позднее. По умолчанию false.

license_duration_seconds #

Количество времени в секундах, в течение которого лицензия действительна с момента получения. 0 (по умолчанию) — без ограничений.

playback_duration_seconds #

Количество времени в секундах, в течение которого лицензия действительна после начала воспроизведения. 0 (по умолчанию) — без ограничений. Применяется только при can_persist = true, в противном случае игнорируется.

rental_duration_seconds #

Количество времени в секундах, в течение которого можно начать использовать лицензию. 0 (по умолчанию) — без ограничений. Применяется только при can_persist = true, в противном случае игнорируется.

soft_enforce_playback_duration #

Определяет, будет ли продолжено воспроизведение контента при истечении лицензии во время просмотра. По умолчанию — false (воспроизведение контента будет сразу же остановлено). При установке этого параметра равным true воспроизведение контента продолжится до первой остановки воспроизведения.

soft_enforce_rental_duration #

Определяет, будет ли продолжено воспроизведение контента при начале его воспроизведения после количества времени, равного rental_duration_seconds. По умолчанию — true (будет продолжено). При установке этого параметра равным false — воспроизведение будет запрещено.

time_shift_limit_seconds #

Сдвиг начала действия лицензии в секундах. 0 (по умолчанию) — сдвиг отсутствует.

Fairplay #

Настройки воспроизведения для пользователей с определенными характеристиками устройства #

force_offline_key_tllv #

Указывает на структуру офлайн-лицензии. По умолчанию true. Если вам нужно поддерживать старые устройства на iOS (до 11.0), установите это значение равным false.

Настройки уровней защиты #

hdcp #

Уровень защиты HDCP для лицензий. Доступные значения: 0, 1, 2. 0 — отсутствие HDCP, 1 — HDCP Type 0, 2 — HDCP Type 1.

Настройки длительности доступа к воспроизведению #

persistence_is_allowed #

Если значение установлено true, то сгенерированная лицензия может быть сохранена на клиентском устройстве, что позволяет воспроизводить защищенный контент в режиме офлайн. По умолчанию — false.

persistence_duration #

Количество времени в секундах, в течение которого офлайн-лицензия может быть активирована. Иными словами, это количество времени, в течение которого нужно начать воспроизведение. 0 (по умолчанию) — без ограничений. Применяется только при persistence_is_allowed = true, в противном случае игнорируется.

playback_duration #

Количество времени в секундах, в течение которого лицензия действительна после воспроизведения. 0 (по умолчанию) — без ограничений. Применяется только при persistence_is_allowed = true, в противном случае игнорируется. Если этот период времени истек во время воспроизведения, видео будет играть до первой остановки.

rental_duration #

Работает аналогично persistence_duration, но применяется только для онлайн-лицензий.

lease_duration #

Количество времени в секундах, в течение которого лицензия действительна с момента получения. 0 (по умолчанию) — без ограничений. Не применяется с persistence_is_allowed = true. Если этот период времени истек во время воспроизведения, видео будет остановлено немедленно. Используется для сложных сценариев использования (например, возобновляемые лицензии). Для подробностей рекомендуем ознакомиться с руководством Fairplay.

Playready #

Настройки уровней защиты #

security_level #

Принимает одно из двух значений 2000 (по умолчанию) или 3000. 2000 — расшифровка ключа и декодирование медиа выполняются на программном уровне. 3000 — расшифровка ключа и декодирование медиа выполняются на аппаратном уровне.

Настройки длительности доступа к воспроизведению #

can_persist #

Если значение установлено true (по умолчанию), то сгенерированная лицензия может быть сохранена на клиентском устройстве, что позволяет воспроизводить защищенный контент в режиме офлайн.

license_duration_seconds #

Количество времени в секундах, в течение которого лицензия действительна с момента получения. 0 (по умолчанию) — без ограничений.

playback_duration_seconds #

Количество времени в секундах, в течение которого лицензия действительна после начала воспроизведения. 0 (по умолчанию) — без ограничений. Применяется только при can_persist = true, в противном случае игнорируется.

grace_period_seconds #

Количество времени в секундах, в течение которого офлайн-лицензия может быть активирована. Иными словами, это количество времени, в течение которого нужно начать воспроизведение. 0 (по умолчанию) — без ограничений. Применяется только при can_persist = true, в противном случае игнорируется.

↑ Наверх
Оставьте заявку

если вас заинтересовал наш сервис или есть вопросы

Напишите нам