1

我正在调查是否有可能(我相信它是,我的意思是简单的方法)构建一个基于 Java 的客户端桌面应用程序来播放受 DRM 保护的视频流。

DRM:DASH CENC DRM1、PlayReady、Widevine Classic\Modular、FairPlay。

VLCJ支持从内存输入功能来实现自定义协议或 DRM,但它看起来像一个痛苦的挖掘 DRM 规范。

有一个适用于Electron的 Node.js 开源项目DOWNstream ,它可以帮助处理 Widevine DRM。这篇文章描述了 Java 和 Electron 的集成(来源),但我想在这种情况下它是偶然的复杂性。

以前我没有面对视频流域,我不想重新发明轮子,所以我的问题是

  • 似乎没有“纯”Java 实现。为什么?因为格式战?安全问题?
  • 你碰巧知道任何简单的方法(DalvikVM 支持 Widevine 开箱即用)来创建应用程序而不涉及像 JS 这样的“浏览器技术”吗?

谢谢你。我很高兴听到你的想法。

4

1 回答 1

2

我认为查看平台上如何提供 DRM 可能会帮助您了解选项并让您考虑如何处理您的解决方案。

DRM 客户端功能,即驻留在手机或平板电脑或笔记本电脑等上的 DRM 功能,与 DRM 服务器端功能相反,通常由设备或 OS 供应商在生产/制造设备或 OS 时内置。对于某些设备上的某些 DRM,也可以通过 SDK 添加它。

大多数 DRM 是通过移动设备和平板电脑中的“本机”播放器以及 PC、笔记本电脑等上的浏览器使用的,因此这是您通常可以依赖的通常默认设置。智能电视和游戏机更加多样化,可以通过浏览器或本地设备,具体取决于设备。

最近,几乎所有的移动和平板电脑浏览器都添加了对基于浏览器的 DRM 的支持,但笔记本电脑上的许多 DRM 仅限于浏览器,或者更具体地说,添加了特定于 DRM 的 CDM(内容解密模块)浏览器。

在 PC 和笔记本电脑上的浏览器之外支持 DRM - 例如,基于 Windows 的设备通常会以应用程序可以访问的方式支持 PlayReady DRM。微软在这里提供了更多关于此的信息:

在上面的链接中有一个很好的图表总结了不同的设备,我在下面也复制了它,因为它有助于解释:

在此处输入图像描述

我不知道 PC 或笔记本电脑上有类似的 Widevine 或 FairPlay 支持,尽管可能存在或正在开发中。

因此,回到您的问题,大多数跨平台应用程序在笔记本电脑和 PC 上使用 Javascript 和浏览器技术进行 DRM 的原因并不是真正的语言问题,而是因为通过浏览器是访问 DRM 功能的唯一方法一些笔记本电脑和个人电脑。

对于 Windows,您可以选择使用通用 Windows 平台 API,但这可能仍然无法满足您的需求,并且是 Windows 和 PlayReady 特定的。

于 2019-12-06T11:13:16.300 回答