Html 实现类似netflix的媒体播放器,防止截图和视频捕获

Html 实现类似netflix的媒体播放器,防止截图和视频捕获,html,drm,video-player,netflix,Html,Drm,Video Player,Netflix,有没有办法阻止用户截屏或截取您的视频文件的屏幕?类似于Netflix实现它的方式。每当我们试图点击屏幕时,它就会返回一个黑屏。我只需要一些正确方向的起点。谢谢 编辑:它与DRM更相关。Netflix已经在实施这一技术,因此肯定有办法解决这一问题。Netflix和类似服务对其内容进行加密,并使用DRM系统管理解密密钥,并将其共享给授权用户 不同的平台将使用不同的播放器和可能不同的DRM类型——广义而言,对于主要系统,苹果设备和浏览器使用fairPlay,Windows设备和浏览器使用PlayRea

有没有办法阻止用户截屏或截取您的视频文件的屏幕?类似于Netflix实现它的方式。每当我们试图点击屏幕时,它就会返回一个黑屏。我只需要一些正确方向的起点。谢谢
编辑:它与DRM更相关。Netflix已经在实施这一技术,因此肯定有办法解决这一问题。

Netflix和类似服务对其内容进行加密,并使用DRM系统管理解密密钥,并将其共享给授权用户

不同的平台将使用不同的播放器和可能不同的DRM类型——广义而言,对于主要系统,苹果设备和浏览器使用fairPlay,Windows设备和浏览器使用PlayReady,谷歌设备和浏览器使用Widevine

当您在n个不同的设备上运行上述其中一个设备的浏览器时,它会变得稍微复杂一些,但一般规则是,如果支持,浏览器供应商将决定使用哪个DRM(并非所有设备上的所有浏览器都支持DRM)

如果您想使用DRM服务,您需要联系各个DRM供应商或使用多个DRM供应商或服务供应商

您还可以使用一种不太安全的加密,这种加密对于大多数商业内容所有者来说是不可接受的,但对于您的案例来说可能已经足够好了—AES加密或带DASH的Clearkey

这些设备不太安全,但有时足以满足某些需求

您可以使用ffmpeg和openssl创建AES加密的HLS流-ffmpeg文档()包括以下示例脚本:

#/垃圾箱/垃圾箱
基本URL=${1:-'.}
openssl rand 16>file.key
echo$BASE_URL/file.key>file.keyinfo
echo file.key>>file.keyinfo
echo$(openssl rand-hex 16)>>file.keyinfo
ffmpeg-f lavfi-re-i testsrc-c:v h264-hls_标志删除_段\
-hls_key_info_file file.keyinfo out.m3u8
您还可以使用mp4Box()创建基本的clearkey破折号加密:

MP4Box-crypt drm_file.xml movie.mp4-out movie_encrypted.mp4

drm信息包含在drm_file.xml中,并在上面的链接中进行了说明


在播放器方面,几乎所有的主要播放器,如通过EME的网络上的BitMovin和JWPlayer,安卓本地的ExoPlayer等,都将支持DRM和加密播放。只要它们配置正确,并能解决您提到的“黑屏”效应,它们就可以作为检测加密内容的标准配置。

Netflix使用加密媒体扩展(EME),这似乎不是该问题的重复。这个问题是关于禁用视频截图的,它更具体,也更容易回答(如下面的答案所示)。投票重新开放。Widevine通过三个安全级别对内容进行加密:L1、L2和L3。只有L1可以屏蔽屏幕截图,不是吗?实际上通常只使用L1和L3-L1与硬件相连,通常包括安全的媒体路径,L3是基于软件的解决方案。功能不断发展,因此很难确定,从一个设备到另一个设备的行为可能不同,甚至在同一设备上的不同应用程序上也可能不同。此时,L3上的屏幕截图通常不可用。您需要一些js来切换到L1还是自动选择?@est-设备上的DRM安装将“知道”是L1、L2还是L3,并在请求许可证时告知DRM服务器。谢谢。是否可以通过编程确保内容仅在L1级别提供?如何用javascript检查它?