Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Play DRM (Widevine) encrypted stream with NGINX based VOD Packager #4318

Closed
nochev opened this issue Sep 15, 2021 · 8 comments
Closed

Play DRM (Widevine) encrypted stream with NGINX based VOD Packager #4318

nochev opened this issue Sep 15, 2021 · 8 comments

Comments

@nochev
Copy link
Contributor

nochev commented Sep 15, 2021

What do you want to do with Hls.js?

I'm trying to play DRM (Widevine) encrypted stream produced by NGINX-based VOD Packager with latest (1.0.10) version of HLS.js. I'm using the following config in HLS.js:
{ autoStartLoad: false, debug: true, emeEnabled: true, widevineLicenseUrl: 'https://license.webvideocore.net/player.php' } and this is the test stream. The player is fetching segments but they are not playable (also noticed that widevine license URL is not fetched at all).

What have you tried so far?

I tried playing the stream in alternative players. Here are the links to demo pages of bitmovin and shaka players where this stream is playing without any issues. Is there anything that is still not supported for Widevine in HLS.js or I'm missing some additional config. Any help is appreciated.

@nochev nochev added Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. Question labels Sep 15, 2021
@nochev
Copy link
Contributor Author

nochev commented Nov 16, 2021

@tchakabam can you please give some suggestions here?

@phillipseamore
Copy link
Contributor

Related #3726

@robwalch robwalch added this to DRM (needs prioritization) in Release Planning and Backlog Mar 12, 2022
@robwalch robwalch added the DRM label Aug 17, 2022
@robwalch robwalch added Need sample stream and removed Needs Triage If there is a suspected stream issue, apply this label to triage if it is something we should fix. labels Sep 23, 2022
@robwalch
Copy link
Collaborator

Sample stream is no longer available.

There is a new branch available for testing DRM support which you can check out here:
feature/drm-fairplay-key-system

@nochev
Copy link
Contributor Author

nochev commented Sep 26, 2022

Sample stream is no longer available.

There is a new branch available for testing DRM support which you can check out here: feature/drm-fairplay-key-system

The SSL certificate was expired. Sample stream is working now.

@nochev
Copy link
Contributor Author

nochev commented Sep 27, 2022

@robwalch I confirm that in the new branch feature/drm-fairplay-key-system everything is working as expected. What is the ETA to be merged in master?

@robwalch
Copy link
Collaborator

Hi @nochev,

Thanks for taking a look and for providing the sample stream. These changes are slated for v1.3.0 which has an expected release date of October 18th:
https://github.com/video-dev/hls.js/milestone/50

@robwalch robwalch mentioned this issue Sep 28, 2022
3 tasks
@WINOFFRG
Copy link

Hey, @nochev I was just going through some past issues related to one I am looking one. Just an off-topic question if you can answer, Who is your DRM Provider in the above Shaka Player sample you shared? It looks like a proxy server to me.

https://license.webvideocore.net/player.php

I am actually looking into some way to get DRM Protection for my videos without paying any cost, As I have got MS Azure subscription, But I don't want to host content on their platform, But just utilize their DRM Service, Or maybe any other idea like your self hosted soln?

robwalch added a commit that referenced this issue Dec 15, 2022
* Add support for com.apple.fps keySystem

* Improve support for DRM key-systems and key handling
Resolves #2833 #2737 #4318 #4538

* Update README `licenseXhrSetup` example

* Update api-extractor markdown

* Attach CDM on start when even when initial fragments do not have a key associated with them

* Handle expired key status correctly

* Map key-sessions by key ID and log key ID more often than URI

* Support "clear-lead" key-session creation without new config

* Emit and handle FRAG_PARSING_ERROR from transmuxers (#5018)

* Emit and handle FRAG_PARSING_ERROR from transmuxers
Related to #5011
* Switch levels on Key and Fragment parsing errors or escalate to fatal error

* Route all key-system errors to `onFragmentOrKeyLoadError`

* Populate EMEKeyError.err for better demo error logging

* Remove `useEmeEncryptedEvent` and mark `widevineLicenseUrl` as deprecated in API.md

* Add support for EXT-X-SESSION-KEY tags (for key-system access on manifest loaded)
#4927

* Throw before licenseXhrSetup if key was removed

* Make key session promise chain more consice

* Stop on fatal key system errors

* Only request access to key-systems for keys matching those found in the config one at time (to avoid gaining access to WV and PR on Edge)

* Modify key-system helpers so that it's easier to support additional key-system strings

* Add undocumented `generateRequest` ("Content ID") filter

Co-authored-by: Vincent Valot <vincent.valot@bedrockstreaming.com>
@robwalch
Copy link
Collaborator

robwalch commented Jan 4, 2023

Closing this as v1.3.0 is in beta. Please file new issues against the latest (pre-)release if you find any.

@robwalch robwalch closed this as completed Jan 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

No branches or pull requests

4 participants