实现像媒体播放器一样的netflix,防止截图和视频捕获

时间:2017-10-09 15:12:02

标签: html drm video-player netflix

有没有办法阻止用户截取视频文件或截取视频文件的屏幕?类似于Netflix如何实现它的东西。每当我们尝试点击屏幕时,它都会返回黑屏。我只需要在正确的方向上找到一些起点。谢谢! 编辑:它与DRM更相关。而且Netflix已经实现了它,因此肯定会有一些解决方法。

1 个答案:

答案 0 :(得分:3)

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

不同的平台将使用不同的播放器和可能不同的DRM类型 - 一般来说,对于主要系统,Apple设备和浏览器使用fairPlay,Windows设备和浏览器使用PlayReady和Google设备,浏览器使用Widevine。

当你从上面的一个设备上运行浏览器时,它会变得有点复杂,但是一般的规则是浏览器供应商将决定支持哪个DRM(不是所有的浏览器)在所有支持DRM的设备上。

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

您还可以使用安全性较低的加密技术,这种加密技术对于大多数商业内容所有者来说是不可接受的,但对于您的情况来说可能已经足够了 - AES加密或明确使用DASH。

这些并不安全,但有时足以满足某些需求。

您可以使用ffmpeg和openssl创建AES加密的HLS流 - ffmpeg文档(http://ffmpeg.org/ffmpeg-all.html#Options-34)包含此示例脚本:

#!/bin/sh
BASE_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_flags delete_segments \
  -hls_key_info_file file.keyinfo out.m3u8

您还可以使用mp4Box(https://gpac.wp.imt.fr/mp4box/encryption/common-encryption/)创建基本的clearkey DASH加密:

  

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

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

在播放器方面,几乎所有主要播放器,如网络上的BitMovin和JWPlayer,通过EME,Android本机上的ExoPlayer等都支持DRM和加密播放。这些应该作为标准检测加密内容,只要它们配置正确,并将照顾您提到的“黑屏”效果。