Widevine DRM - Ошибка при запросе нескольких ключей DRM на FireTV

В своем приложении я использую exoplayer для воспроизведения видеопотоков DASH. Потоки защищены DRM с помощью WIDEVINE. Мой DashManifest имеет несколько ключей. Один ключ для SD и один ключ для HD потока. Когда я запускаю видео на FireTV, я получаю такую ​​ошибку:

xoPlayerImplInternal: Playback error. com.google.android.exoplayer2.ExoPlaybackException at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.shouldWaitForKeys(MediaCodecRenderer.java:896) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:783) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:606) at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518) at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:135) at android.os.HandlerThread.run(HandlerThread.java:61) Caused by: com.google.android.exoplayer2.drm.DrmSession$DrmSessionException: android.media.MediaDrm$MediaDrmStateException: Failed to get key request: DRM vendor-defined error: -2998 at com.google.android.exoplayer2.drm.DefaultDrmSession.onError(DefaultDrmSession.java:422) at com.google.android.exoplayer2.drm.DefaultDrmSession.onKeysError(DefaultDrmSession.java:417) at com.google.android.exoplayer2.drm.DefaultDrmSession.postKeyRequest(DefaultDrmSession.java:368) at com.google.android.exoplayer2.drm.DefaultDrmSession.doLicense(DefaultDrmSession.java:300) at com.google.android.exoplayer2.drm.DefaultDrmSession.acquire(DefaultDrmSession.java:162) at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.acquireSession(DefaultDrmSessionManager.java:558) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:935) at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:522) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:589) at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518) at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:135) at android.os.HandlerThread.run(HandlerThread.java:61)

Я понятия не имею, что не так с этим устройством или моей конфигурацией. Может кто-нибудь объяснить мне, что именно означает Failed to get key request: DRM vendor-defined error: -2998?


person dudi    schedule 21.02.2019    source источник


Ответы (1)


Эта ошибка обычно связана с ошибками конкретного устройства, которые, к сожалению, часто требуют от поставщика устройства предоставления информации и исправлений.

Об этом конкретном случае также сообщалось на форумах Amazon (возможно, это также отчет вас или ваших коллег): https://forums.developer.amazon.com/questions/187540/error-by-requesting-drm-keys-1.html

Вы можете видеть там, что проблема, кажется, даже специфична для определенного поколения устройств FireTV.

Я думаю, вам было бы полезно присоединиться и отслеживать этот разговор, поскольку поставщик устройств часто уделяет приоритетное внимание проблемам, которые затрагивают несколько человек.

Кроме того, несколько ключевых примечаний могут вообще не иметь отношения к проблеме, но есть несколько разных интерпретаций того, как это следует обрабатывать в ExoPlayer, и есть открытая проблема (на момент написания) с несколькими клавишами и автономное воспроизведение, которое содержит очень хороший обзор (в основном некоторые реализации предполагают, что сервер DRM вернет все ключи, даже если запрошена только одна дорожка, и это не обязательно правильное предположение): https://github.com/google/ExoPlayer/issues/3872#issuecomment-367274776

person Mick    schedule 21.02.2019
comment
Спасибо за ваш ответ. Вопрос, который вы публикуете, был задан мной. Как видите, я так и не получил ответа от очень слабой службы поддержки Amazon. Другая проблема, которую вы мне публикуете, немного отличается. Я пытаюсь получить ключи DRM для онлайн-трансляции, а не для офлайн-потока. Stacktracke немного отличается от моего - person dudi; 21.02.2019
comment
Я знаю, что эта ошибка очень специфична для устройства, но я пойму, что здесь происходит и почему я получаю эту ошибку на этом устройстве. - person dudi; 21.02.2019
comment
@dudi Проблема возникла при postKeyRequest к плагину DRM на устройстве. У подключаемого модуля DRM есть некоторые проблемы с созданием полезной нагрузки для запроса лицензии. Возникла ли проблема с выбором HD-контента? Или для трека SD и HD? Это могло быть связано с правилами использования Widevine и возможностями устройства. - person Jason Zong; 24.05.2021