PlayReady DRM на iOS: можете ли вы скопировать дешифрованное видеоизображение в свой собственный контекст GL?

Кто-нибудь имел опыт использования Microsoft PlayReady Client SDK на iOS?

PlayReady Client SDK для iOS - используется для разработки приложений с поддержкой PlayReady, использующих собственные API-интерфейсы iOS. Этот SDK можно использовать для реализации защиты PlayReady для форматов мультимедиа, которые изначально поддерживает iOS, таких как HLS, прямое воспроизведение и воспроизведение по запросу MPEG- DASH, Smooth Streaming и HLS-контента, а также различные функции PlayReady.

И если да, то вы тоже

  • возможность получить ссылку на расшифрованный буфер данных / пикселей
  • возможность получить указатель на идентификатор текстуры, показывающий расшифрованное видеоизображение
  • или нашли другой способ получения доступа к визуальным носителям для отображения их в собственном контексте GL?

Вариант использования будет заключаться в потоковой передаче зашифрованных аудиовизуальных мультимедиа из сети на устройство iOS, их дешифрование и использование дешифрованных данных для создания изображений, которые затем отображаются на текстуре OpenGL.

Почему PlayReady, а не FairPlay?

Похоже, что после того, как вы используете FairPlay, единственный способ отобразить ваш защищенный видеоконтент - это использовать AVPlayerLayer. Похоже, что на сегодняшний день нет способа извлечь защищенный FairPlay носитель HLS из API Apple, чтобы, например, отобразить его на текстуре OpenGL в трехмерном пространстве.

/questions/11973459/fairplay-streaming-vyizov-copypixelbufferforitemtime-dlya-avplayeritemvideooutput-vozvraschaet-znachenie-null/11973472#11973472

2 ответа

Решение

Я никогда не использовал PlayReady Client SDK для iOS, но, насколько я понимаю, у вас не должно быть доступа ни к одному из них.

PlayReady Client SDK поставляется с готовым к использованию компонентом MediaPlayerController, унаследованным от MPMediaPlayback, Вы должны использовать этот компонент для воспроизведения защищенного контента (поддерживает только H.264 и AAC). Насколько я понимаю, этот компонент уже обрабатывает загрузку, дешифрование, декодирование и рендеринг контента (он также обеспечивает просмотр). Я не знаю ни одного низкоуровневого API, представленного в PlayReady iOS SDK, который бы давал вам доступ непосредственно к буферам расшифровки. Я также недостаточно разбираюсь в воспроизведении медиафайлов на iOS, чтобы сказать вам, можно ли MPMediaPlayback унаследованный компонент.

Низкоуровневый доступ к дешифрованию доступен только в том случае, если вы используете комплект переноса PlayReady напрямую, но для этого требуется совершенно иная лицензия, и вам потребуется создать собственный порт PlayReady для iOS. Набор для переноса PlayReady больше предназначен для производителей микросхем и устройств, а не для разработчиков приложений, и порты должны соответствовать рекомендациям по надежности PlayReady.

Ответ определенно должен быть "нет", иначе DRM не справился бы со своей работой очень хорошо!

К сожалению, если бы вы могли получить необработанные данные, было бы довольно легко сохранить копию файла.

Обратите внимание, что в случае, если это поможет вам, некоторые ОС позволят вам применять фильтры и преобразования к зашифрованному фрейму. Я недостаточно знаком с iOS в этой области, но на Android это определенно возможно.

Другие вопросы по тегам