androidx / media

Jetpack Media3 support libraries for media use cases, including ExoPlayer, an extensible media player for Android
https://developer.android.com/media/media3
Apache License 2.0
1.72k stars 413 forks source link

Cant play Clearykey but working fine in JWplayer #1897

Open rbtvtelugu opened 4 days ago

rbtvtelugu commented 4 days ago

Version

Media3 main branch

More version details

No response

Devices that reproduce the issue

Oneplus 12

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

No

Reproduction steps

NA

Expected result

Media should play with provide url and clearkeys.

Actual result

Cant play media.

Media

Play URL: https://sundirectgo-live.pc.cdn.bitgravity.com/hd4/dth.mpd Keys: 52edde2c74eb4cf59b192c0d3f65e62f:19d646bb34f68cddcabf7db76a24138c

Bug Report

Playback error androidx.media3.exoplayer.ExoPlaybackException: Unexpected runtime error at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:685) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loopOnce(Looper.java:255) at android.os.Looper.loop(Looper.java:364) at android.os.HandlerThread.run(HandlerThread.java:67) Caused by: android.media.MediaCodec$CryptoException: selected encryption mode is not supported by the ClearKey DRM Plugin : ERROR_DRM_CANNOT_HANDLE cdm err: 0, oem err: 0, ctx: 0 ============================== Beginning of DRM Plugin Log ============================== 11-18 00:00:29.331 I No hidl drm factories found 11-18 00:00:29.332 E Failed to find passthrough drm factories 11-18 00:00:29.339 E uuid=[e2719d58a985b3c9 781ab030af78d30e] Failed to make drm plugin: 4 11-18 00:00:59.037 I No hidl drm factories found 11-18 00:00:59.038 E Failed to find passthrough drm factories 11-18 00:00:59.040 E uuid=[e2719d58a985b3c9 781ab030af78d30e] Failed to make drm plugin: 4 11-18 00:01:07.575 I No hidl drm factories found 11-18 00:01:07.576 E Failed to find passthrough drm factories 11-18 00:01:07.578 E uuid=[e2719d58a985b3c9 781ab030af78d30e] Failed to make drm plugin: 4 11-18 00:01:13.881 I No hidl drm factories found 11-18 00:01:13.882 E Failed to find passthrough drm factories 11-18 00:01:13.886 E uuid=[e2719d58a985b3c9 781ab030af78d30e] Failed to make drm plugin: 4 11-18 00:01:17.648 I No hidl drm factories found 11-18 00:01:17.649 E Failed to find passthrough drm factories 11-18 00:01:17.652 E uuid=[e2719d58a985b3c9 781ab030af78d30e] Failed to make drm plugin: 4 11-18 00:01:20.459 I No hidl drm factories found 11-18 00:01:20.461 E Failed to find passthrough drm factories 11-18 00:01:20.468 E uuid=[e2719d58a985b3c9 781ab030af78d30e] Failed to make drm plugin: 4 11-18 00:01:43.486 I No hidl drm factories found 11-18 00:01:43.487 E Failed to find passthrough drm factories 11-18 00:01:43.492 E uuid=[e2719d58a985b3c9 781ab030af78d30e] Failed to make drm plugin: 4 11-18 00:01:44.876 I No hidl drm factories found 11-18 00:01:44.877 E Failed to find passthrough drm factories 11-18 00:01:44.881 E uuid=[e2719d58a985b3c9 781ab030af78d30e] Failed to make drm plugin: 4 11-18 00:02:05.281 I No hidl drm factories found 11-18 00:02:05.283 E Failed to find passthrough drm factories 11-18 00:02:05.286 E uuid=[e2719d58a985b3c9 781ab030af78d30e] Failed to make drm plugin: 4 11-18 00:02:05.549 E Not implemented ============================== End of DRM Plugin Log ============================== at android.media.MediaCodec.native_queueSecureInputBuffer(Native Method) at android.media.MediaCodec.queueSecureInputBuffer(MediaCodec.java:3105) at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecBufferEnqueuer.doQueueSecureInputBuffer(AsynchronousMediaCodecBufferEnqueuer.java:240) at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecBufferEnqueuer.doHandleMessage(AsynchronousMediaCodecBufferEnqueuer.java:205) at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecBufferEnqueuer.access$000(AsynchronousMediaCodecBufferEnqueuer.java:47) at androidx.media3.exoplayer.mediacodec.AsynchronousMediaCodecBufferEnqueuer$1.handleMessage(AsynchronousMediaCodecBufferEnqueuer.java:96) at android.os.Handler.dispatchMessage(Handler.java:106)

icbaker commented 23 hours ago

Play URL: https://sundirectgo-live.pc.cdn.bitgravity.com/hd4/dth.mpd

This content throws an HTTP 403 error for me, so I'm not able to try and repro.

The error you've quoted suggests that the media you're trying to play is using an encryption mode that is not supported by your device, so I'm not sure this is a bug in ExoPlayer, but rather something that's not supported on your device.

It's possible that JWPlayer have their own clearkey decryption logic, which might explain how it works.

Aside: Clearkey is not a production suitable encryption scheme, it is inherently insecure and is only intended for testing DRM integrations.

rbtvtelugu commented 22 hours ago

Play URL: https://sundirectgo-live.pc.cdn.bitgravity.com/hd4/dth.mpd

This content throws an HTTP 403 error for me, so I'm not able to try and repro.

The error you've quoted suggests that the media you're trying to play is using an encryption mode that is not supported by your device, so I'm not sure this is a bug in ExoPlayer, but rather something that's not supported on your device.

It's possible that JWPlayer have their own clearkey decryption logic, which might explain how it works.

Aside: Clearkey is not a production suitable encryption scheme, it is inherently insecure and is only intended for testing DRM integrations.

Maybe country restrictions, please try after adding this header to the url "X-Forwarded-For":"49.40.8.179"

Play URL: https://sundirectgo-live.pc.cdn.bitgravity.com/hd4/dth.mpd Keys: 52edde2c74eb4cf59b192c0d3f65e62f:19d646bb34f68cddcabf7db76a24138c