HbbTV-Association / ReferenceApplication

MIT License
79 stars 32 forks source link

PlayReady not playing with Edge on Windows 10 #38

Closed jpiesing closed 2 years ago

jpiesing commented 3 years ago

Playback with PlayReady isn't working with Edge on Windows 10. It might be my PC but I wonder if it's the same issue as #37 or something else?

juhajoki commented 3 years ago

Please try from https://refapp.hbbtv.org/testing/catalogue/, tasks 2.2 or 2.7 - the ones with correct https links seem to work better. This finding points to the same issue as in #37 .

Perhaps we need to move to https across the board and check all the links and references.

jpiesing commented 3 years ago

It just hangs with the little rotating pattern in the middle. image

juhajoki commented 3 years ago

Issue and discussion related to this from the DASH.js issue tracker: https://github.com/Dash-Industry-Forum/dash.js/pull/3517#issuecomment-829010657

Murmur commented 3 years ago

EdgeChromium must have made changes how GPU+CPU environment is trusted. I have two Win10 PCs where EdgeLegacy played playready but fails on EdgeChromium release. Same two machines run fine Chrome+Firefox+widevine and EdgeChromium+widevine streams.

My most recent Win10 laptop is running fine both EdgeChromium+playready and EdgeChromium+widevine.

I have tried various flags in EdgeChromium, open edge://flags/ tabsheet.

Some of the angle backends break both widevine and playready, some does not let playready Laurl invoked at all, some let playready laurl invocation but then demuxer error is raised, some let widevine work fine.

None of the options fix playready playback problems on my two older Win10 boxes. Use edge://edge-urls to list internal addresses, such as edge://gpu to validate hardware acceleration and drm status.

Dashjs reference player(win10) is internally prioritizing Playready first then Widevine and other systems.

bobcampbell-resillion commented 3 years ago

As discussed, its not especially clear above if "vanilla" Edge/Win10/Playready can be made to work, and if not, why not?

Looking again the comment:

My most recent Win10 laptop is running fine both EdgeChromium+playready and EdgeChromium+widevine.

Suggests it is, but we don't know why it might not on some other instances?

We would expect that it should "just work" without having to go into the guts of the browser and set special flags, as its surely likely MS would prioritise their own stack, so we need some back up results to confirm across machines it does work.

I just tried /testing with my Edge/Win10 laptop, selected MSE/EME mode, and some streams work, some didn't - but I think its intermittent...

2.1 - spinner - didn't play... 2.1.1 played 1st time, not a second time when I went back later... 2.1.2 - spinner - didn't play... 2.2 played, then at a later point, it didn't... 2.3 played, but didn't see any subtitles - went back to turn them to 'fin' - and second time just had the spinner for ages... 2.4 played, but didn't see any subtitles (are there any in the video??) ..etc...

bobcampbell-resillion commented 3 years ago

/production didn't seem to work at all - no stream would start playing...

2.3 issued an "error getting subtitles file" which may explain the lack of any when it did play in /testing?

jpiesing commented 3 years ago

/production didn't seem to work at all - no stream would start playing...

Did the mixed content fixes ever get deployed to /production? If not then that would explain why nothing worked.

Murmur commented 3 years ago

I took a test on an old HPStream7 Win10 tablet, without updating most recent EdgeChromium. EdgeChromium 92.0.902.78 (32bit), Win10 Home 21H1 19043.1165 (32bit win on 64bit Atom) -> refapp playready worked.

EdgeChromium 92.0.902.84 (32bit), Win10 Home 21H1 19043.1165 (32bit win on 64bit Atom) -> refapp playready stopped working, machine cold reboot did not help.

If test a vanilla nightly/dashjs demo player then playready works. It's DashJS 4.x release with quite extensive changes to DRM handlers. Why Edge minor version went from ok->failed is a mystery. I test a refapp with nightly dashjs library and study if need more attributes in a protection data object. self.player.setProtectionData({ "com.microsoft.playready": { .... } });

Murmur commented 2 years ago

My old Win10/EdgeChromium 93.0.961.52 browser. edge://flags

Override software rendering list = enabled
Choose ANGLE graphics backend = D3D11
PlayReady DRM for Windows 10  = enabled
Widevine DRM = disabled
Skia API for compositing = enabled

Dashjs nighthly is sometimes playing Playready and Refapp/Playready content but not always. Restarting MSEdge may help or not, need more testing.

bobcampbell-resillion commented 2 years ago

Hi, what more needs to be done to resolve this? are you looking for input from IITF members? If so please explain what to do...

juhajoki commented 2 years ago

Now content playback is working. Windows 10 21H2 Edge 98.0.1108.43 RefApp Staging, assets with Playready protection

Further notes about Playready playback with different security settings and platforms, #41