nginx 将DRM添加到现有HLS

qyswt5oh  于 2023-01-20  发布在  Nginx
关注(0)|答案(1)|浏览(212)

对于我目前正在进行的项目,我有一个编码服务器,它使用ffmpeg将mp4文件转换为HLS播放列表,然后将片段和m3u8文件复制到存储服务器,并根据需要通过nginx提供负载平衡服务。
摆在我面前的要求是实现屏幕截图保护。像一个人一样,在谷歌上搜索一下,我发现如果我在视频内容中添加DRM保护,实际上是可能的。
然而,我自己无法弄清楚的是:

  1. DRM是我自己就可以做的事情还是我需要在某个地方购买DRM密钥?第三方DRM提供商是一个要求还是只是让事情更容易?
    1.我可以添加DRM保护到已经创建的HLS播放列表吗?或者我需要重新编码一切?我发现一些教程使用bento4与DRM,但他们大多是由DRM供应商,所以他们解释了如何集成DRM与他们的服务。我可以运行DRM使用我的基础设施和密钥,没有第三方服务?我应该吗?
    如果有人能给我指出正确的方向,那将是最有益的。例如如何将简单的MP4文件转换成在iOS上的Safari中播放时无法截图的HLS。
    谢谢
f4t66c6m

f4t66c6m1#

理论上,您可以构建自己的DRM,但在实践中,您最有可能使用三个主要DRM中的一个,因为它们集成到浏览器和设备中,特别是对于屏幕截图防护,如果设备/浏览器支持,则将现有集成到设备的安全媒体路径中。以防止屏幕截图(尽管它们都不能防止某人用单独的相机或设备拍摄屏幕)。
您可以直接与DMR提供商Google Widevine、Apple FairPlay或Microsoft PlayReady合作,或者,可能更容易,至少在最初,您可以从第三方多DRM提供商获得多DRM服务。
你当然可以添加DRM到现有的HLS播放列表中,而不需要重新编码,但是你必须加密,这通常意味着重新打包。
您可以尝试使用开源打包器(如Shaka Packager),看看哪种最适合您:https://shaka-project.github.io/shaka-packager/html/tutorials/drm.html
这包括您可以使用的测试widevine凭据:https://shaka-project.github.io/shaka-packager/html/tutorials/widevine.html#widevine-test-credential

相关问题