我正在研究是否有可能(我敢肯定,我是说简单的方法)构建一个基于Java的客户端桌面应用程序来播放受DRM保护的视频流。
DRM:DASH CENC DRM1,PlayReady,Widevine Classic \ Modular,FairPlay。
VLCJ支持从内存输入的功能来实现自定义协议或DRM,但深入研究DRM规范似乎很痛苦。
有一个DOWNstream的Node.js开源项目Electron,可以帮助Widevine DRM。 article描述了Java和Electron集成(source),但我想在这种情况下这是偶然的复杂性。
以前,我没有面对视频流领域,也不想重新发明轮子,所以我的问题是:
谢谢。希望听到您的想法。
答案 0 :(得分:1)
我认为研究一下平台上DRM的提供方式可能有助于您理解各种选择,并让您思考如何解决您的解决方案。
DRM客户端功能(即驻留在手机,平板电脑或笔记本电脑等设备上的DRM功能,而不是DRM服务器端功能)通常由设备或操作系统供应商在生产设备或操作系统时内置/制造。对于某些设备上的某些DRM,也可以通过SDK添加它。
大多数DRM通过移动设备和平板电脑上的“本机”播放器以及PC,笔记本电脑等上的浏览器使用,因此这是通常可以支持的默认默认设置。智能电视和游戏机的功能更加多样,可以通过浏览器或本机运行,而不取决于设备。
最近,几乎所有的移动和平板电脑浏览器都增加了对基于浏览器的DRM的支持,但是笔记本电脑上的许多DRM仅限于浏览器,或者更具体地说,是CDM(内容解密模块)浏览器添加了特定于DRM的内容。 / p>
有些数字版权管理(DRM)在PC和笔记本电脑的浏览器之外受支持-例如,基于Windows的设备通常将以可被应用程序访问的方式支持PlayReady DRM。 Microsoft在此处提供有关此内容的更多信息:
在上面的链接中有一个不错的图表总结了不同的设备,我也将其复制到下面,以帮助解释:
虽然可能存在或正在开发PC或笔记本电脑,但我不知道在PC或笔记本电脑上有类似的Widevine或FairPlay支持。
因此,回到您的问题,大多数跨平台应用程序使用Javascript和浏览器技术在笔记本电脑和PC上进行DRM的原因实际上并不是语言问题,而是因为通过浏览器是唯一访问Java的方法。某些笔记本电脑和PC上的DRM功能。
对于Windows,您可以选择使用通用Windows平台API,但这仍然可能无法满足您的需求,并且仅针对Windows和PlayReady。