Впервые приложение ExoPlayer было представлено на презентации в Linaro Connect 2014, до этого о нем никому не доводилось слышать. Исходный код был доступен на Github, но для тестирования UHD с поддержкой H265, HDCP 1.x, HDCP 2.x в сочетании с PlayReady & Widevine DRM пришлось скачать уже готовое приложение ExoPlayer.apk.
Таким образом приложение было установлено на Android ТВ-бокс Beelink GT1, в который включен только базовый Widewine Level 3 DRM и конечно же нет поддержки HDCP.
В приложении есть 9 разделов с различными вариантами тестирования видео и защиты DRM:
- YouTube Dash
- Widevine Dash Policy Tests (GTS) – Widevine с HDCP или без него, с защитой видео и без
- Widevine HDCP Capabilities Tests – Без HDCP, HDCP 1.0, HDCP 1.1, HDCP 2.0, HDCP 2.1, HDCP 2.2 и HDCP без цифрового вывода
- Widevine Dash MP4, H264 – Разные разрешения (SD, HD, UHD) для четкого и безопасного видео
- Widevine Dash WebM, VP9
- Widevine Dash MP4, H.265
- SmoothStreaming – Высокая скорость или Высокая скорость (PlayReady)
- HLS – Мастер плейлиста Apple , список воспроизведения медиа Apple TS , метаданные Apple ID3 и т.д…
- Misc – Различные аудио и видео форматы и кодеки (MKV, FLV, Google Play видео…)
Первым делом были проведены несколько тестов без HDCP, которые хорошо работают без требования безопасности данных. Widevine Secure SD (MP4, H.265) будет работать нормально, а вот Widevine Secure HD и UHD будут показывать только черный экран со звуком, так как Level 1 DRM не поддерживается устройством.
Затем тестировался Widevine HDCP 2.2 и как это не странно видео стало воспроизводиться… Позже оказалось, что HDCP не сразу начинает тормозить, а только после длительного просмотра видео, а с HDCP 2.2 видео остановилось после 9 секунд, так как Beelink не получил лицензию на свой ТВ-бокс.
В приложении есть как автоматическое тестирование так и ручное, при котором можно запустить каждый тест по отдельности. Но это будет полезно только, если вы заинтересованы в поддержке схем защиты от копирования на вашем Android устройстве.
Если вы используете устройство работающее на базе Amlogic, то используя некоторые команды вы можете проверить поддержку HDCP:
- Показать с каким протоколом HDCP 2.x или HDCP 1.x работает сейчас телевизор:
1 2 |
cat /sys/class/amhdmitx/amhdmitx0/hdcp_mode 22 |
22 = HDCP2, 11 = HDCP1, off = HDCP не включен в данный момент
- Проверка статуса аутентификации HDCP:
1 2 |
cat /sys/module/hdmitx20/parameters/hdmi_authenticated 1 |
1= аутентификация ок, 0 = ошибка аутентификации.
- HDCP ключи для устройства:
1 2 |
cat /sys/class/amhdmitx/amhdmitx0/hdcp_lstore 22 |
00 = нет ключа HDCP , 14 = имеет ключ HDCP1, 22 = имеет ключ HDCP2
- Проверка версии HDCP поддерживаемой телевизором:
1 2 |
cat /sys/class/amhdmitx/amhdmitx0/hdcp_ver 14 |
22 = Телевизор поддерживает HDCP2, 14 = Телевизор поддерживает HDCP1
- Отключение защиты HDCP:
1 |
echo "-1" > /sys/class/amhdmitx/amhdmitx0/hdcp_mode |
Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.