Encryption 播放加密MP4

Encryption 播放加密MP4,encryption,mp4,mpeg-dash,Encryption,Mp4,Mpeg Dash,我正在制作一个(本地-多平台)视频保护应用程序,但我不知道什么是正确的解决方案,首先“加密->在硬盘上保存”,然后“从硬盘加载->解密->播放”加密视频。我读了有关MPEG-DASH和一些DRM的文章,发现了这个Bento4命令: mp4dash --encryption-key=000102030405060708090a0b0c0d0e0f:00112233445566778899aabbccddeeff --encryption-args="--property 1:ClearLeadFr

我正在制作一个(本地-多平台)视频保护应用程序,但我不知道什么是正确的解决方案,首先“加密->在硬盘上保存”,然后“从硬盘加载->解密->播放”加密视频。

我读了有关MPEG-DASH和一些DRM的文章,发现了这个Bento4命令:

mp4dash --encryption-key=000102030405060708090a0b0c0d0e0f:00112233445566778899aabbccddeeff --encryption-args="--property 1:ClearLeadFragments:10 --property 2:ClearLeadFragments:10" movie.mp4

但我不确定MPEG-DASH能否成为解决方案的一部分。

我该如何解决这个问题?

在谷歌上搜索了很多次后,我在这里找到了答案:

我用openGL+FFMPEG编写了自己的视频播放器,可以播放mp4和 使用着色器解密GPU中的每个帧。我还尝试了 另一种可能的解决方案,例如使用 VLC。(VLC在处理 溪流)和雅达雅达雅达

另外一个解决方案是使用4个mediaelements(WPF)和实际视频 实际上被分成4个区域,每个区域都被旋转,因此 无法查看视频。一旦你将视频加载到4 mediaelements,您可以映射出要显示的部分,然后 同时将其旋转回来。但老实说,MediaElement是不好的

然而,我最终完全同意罗曼所说的。我制作了DirectShow 使用mp4splitter、ffdshow、videorenderer和我修改的 MP4拆分器源过滤器。阅读发生在 BaseSplitter/AsyncReader.cpp(只需修改SyncRead函数) mp4splitter使用

如果您想自己实现它,只需使用MPC-HC项目 并根据需要修改过滤器。我花了一些时间四处走动 DirectShow的概念,但一旦你理解了它,它就会变得很棒 武器


HLS+S3+CloudFront+MediaConvert+VideoJS。

您似乎缺少基本的功能。否则,我无法理解为什么您会选择使用针对互联网流媒体优化的格式(您似乎希望在本地环境中工作)。基于ffmpeg的解决方案应该很容易实现,可以从aes加密流播放。谷歌一点。警告:当您假定攻击者有权访问您的内存时,您的任务可能会变得复杂。我不确定这些攻击在实践中是如何被反击的,但即使是像keepass这样的好密码管理器也需要很多额外的代码才能更安全@sascha我有足够的逆向工程知识,我知道通过转储一个进程来获取内存内容是可能的。但是,如果您在多帧中解密和加载内容(而不是将完整的明文文件放入内存),则转储和合并它会非常困难。那么,您可以提供哪种文件格式(而不是mpeg)或解决方案?您可以使用任何格式(可能应该支持流媒体),只需使用ffmpeg进行加密。自己用谷歌搜索有什么困难?获得第一步的最大最小值为1。