chromiumembedded / java-cef

Java Chromium Embedded Framework (JCEF). A simple framework for embedding Chromium-based browsers in other applications using the Java programming language.
https://bitbucket.org/chromiumembedded/java-cef
Other
655 stars 147 forks source link

video.js based encrypted videos not playing in jcef browser. #479

Open aakash52-commit opened 3 months ago

aakash52-commit commented 3 months ago

Describe the bug The videos that are encrypted using video.js library or netflix are not playing in JCEF Browser with 4032 undefined error.

To Reproduce Steps to reproduce the behavior:

  1. Go to https://www.netflix.com or any video that is encrypted using video.js
  2. Click on any video.
  3. Scroll down to the video
  4. See error that is to please visit chrome://settings/content/protectedContent and make sure "Sites can play protected content" in netflix and VIDEOJS: ERROR: (CODE:3 MEDIA_ERR_DECODE) 4032 - undefined in case of video.js protected video.

Expected behavior I expect the encrypted videos to play properly as the videos play in the google chrome browser. Widevine is not properly integrated. I need to get clarity how to integrate widevine with the jcef browser so that encrypted videos like netflix or video.js videos play without any interruption.

Screenshots image.

Versions (please complete the following information):

Additional context Does the problem reproduce with the JCEF simple or detailed sample application at the same version?

Does the problem reproduce with the CEF cefclient or cefsimple sample application at the same version?

Does the problem reproduce with Google Chrome at the same version? No the encrypted videos are playing fine in the google chrome.

Add any other context about the problem here. Coming to the problem, I am thinking that this is occurring due to the failure of widevine integration with my jcef browser. When I check chrome://media-internals in jcef browser and google chrome browser, in google chrome browser, the codecs capabilities are Capabilities: {"Audio Codecs":["aac","vorbis","flac","opus"],"Encryption Schemes":["CENC","CBCS"],"Session Types":["temporary","persistent-license"],"Video Codecs":{"av1":[],"h264":[],"vp8":[],"vp9":[]}}.

Where as in jcef browser, the codecs capabilities are Capabilities: {"Audio Codecs":["vorbis","flac","opus"],"Encryption Schemes":["CENC","CBCS"],"Session Types":["temporary","persistent-license"],"Video Codecs":{"av1":[],"vp8":[],"vp9":[]}}. There are one audio codec "aac" and one video codec "h264" missing. I think I need to add widevine somehow. Please explain how to proceed?