有没有办法阻止用户截取屏幕截图或捕获视频文件的屏幕?类似于Netflix如何实现它的东西。每当我们尝试点击屏幕时,它都会返回黑屏。我只需要在正确的方向上找到一些起点。谢谢!编辑:它与DRM更相关。 Netflix已经实现了它,因此肯定会有一些解决方法。
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和加密播放。这些应该作为标准检测加密内容,只要它们配置正确,并将照顾您提到的“黑屏”效果。