video - 播放加密的视频

标签 video encryption playing

接下来我要做的是:
我们需要保护视频内容(对其进行加密)并能够播放它。

棘手的是,我们不想立即将所有内容加载到内存中并在那里解密(尽管这也是一种选择)

本质上是在寻找一种解决方案,使我们能够播放HDD中加密的视频内容,从而只有我们的APPLICATION才能播放该视频。

但是它应该逐块读取文件(因为如果要处理2GB的文件,则不应一次将其全部加载到内存中)。

请让我们知道,有什么可能的方法?


SilverLight4 DRM-好的,这看起来是合理的解决方案,足以满足我们的需求。但是,PlayReady SDK的价格约为30,000美元,我们不想使用SilverLight。大概是C#或C ++
我们有一个好主意,就是将大视频文件拆分为单独的加密视频文件(如序列),然后加载每个文件(“块”)以直接对其进行存储/解密并从内存中播放(并在序列文件之间交替),这似乎是最简单的一种,而且可能是真正可以完成的一种。但是,哪些库可以播放memoryStream中的视频文件?我相信VLC应该能够做到。
另一个想法是只获取未压缩的AVI,逐帧处理视频,修改每个帧(以某种方式对其进行加密),现在,当我们播放视频时,我们重新处理内存中的帧并将其解密。
仅处理一个特定的编解码器并为其编写自定义解决方案-实际上,这听起来很酷,但恐怕这将花费我们太多时间,但请务必告知我们这种方法
另一个使用VLC播放来自本地主机的加密流(例如APPLICATION正在将加密的HDD文件流式传输到localhost:800 / BLAHBLAH),并且同一应用程序具有VLC控制以解密该加密流。我们仍然不知道HDD上的文件是否也可以实际加密(因此用户将无法在其他播放器上播放该文件),另外VLC是GPL,对我们不利。

最佳答案

播放管道通常是插入在一起的一组组件。在DirectShow中,API之一是最流行的一种,它使用阅读器,分离器,编解码器,后处理和表示部分(称为过滤器),并且整个过程都在回放。可以用您自己的替代品代替阅读器,该替代品可以读取加密的内容并即时解码。它可以很容易地按需解码,无需解码整个2GB块即可例如获得第一帧或缩略图。

只需要钩住阅读器部分,您就可以自由选择加密方法,自定义算法,众所周知的API或外部库之一。

我仍然认为这种方式和其他方式(至少是其他大多数方式)无法确保您无法保证编码内容无法逆转。其他人仍然可以进入管道并从那里获取解码的内容。如果您很高兴这至少需要复杂性和丰富的实现经验,那么这种加密将非常有效。

关于video - 播放加密的视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7316729/

相关文章:

objective-c - 检查 NSURL 的 UTI/文件类型

Java RSA 加密不断生成无法解密的输出?

c# - 使用c#加密数据并使用openssl api解密数据,为什么解密数据末尾有很多垃圾填充?

php - 创建基于电子邮件的加密密码重置功能

swift - 为什么声音不播放?

android - 播放一些声音后,媒体播放器无法播放声音

android - 使用 javacv 像在 vine 中一样点击进行记录

video - FFmpeg 大输入帧

javascript - 如何在 fabricJS 中使用 canvas.loadFromJSON 加载视频

wpf - 如何在WPF中向媒体元素(Windows Media Player)添加自定义可视化