我正在制作一个(本地-多平台)视频保护应用程序,但我不知道什么是正确的解决方案,首先“加密->保存在硬盘上”,然后“从硬盘加载->解密->播放”加密视频。
我读到了MPEG-破折号和一些DRM,并找到了这个Bento4命令:
mp4dash --encryption-key=000102030405060708090a0b0c0d0e0f:00112233445566778899aabbccddeeff --encryption-args="--property 1:ClearLeadFragments:10 --property 2:ClearLeadFragments:10" movie.mp4但我不确定MPEG-破折号能否成为解决方案的一部分。
我怎么才能解决这个问题?
发布于 2016-10-07 13:51:15
在谷歌上搜索了很多次之后,我在这里找到了@erti-chris-eelmaa的答案:
我用openGL+FFMPEG编写了自己的视频播放器,它可以播放mp4并使用着色器解密GPU中的每一个帧。我还尝试了另一种可能的解决方案,例如使用VLC从VLC服务器上流。(VLC在处理流时提供某种加密/解密),以及yada yada yada。 还有一个解决方案是使用4个媒体元素(WPF),而实际的视频实际上被分成4个区域,每个区域被旋转,因此视频是不可见的。一旦您将视频加载到4个媒体元素中,您就可以绘制出要显示的部分,并将其旋转回来。但老实说,MediaElement是坏的。 然而,我最终完全按照RomanR说的话结束了。我使用DirectShow、ffdshow、视频浏览器构建了mp4splitter图,并对mp4splitter源代码进行了修改。读取发生在mp4splitter使用的BaseSplitter/AsyncReader.cpp (只需修改mp4splitter函数)中。 如果您想自己实现它,只需使用MPC项目和修改过滤器,您喜欢。我花了一些时间来理解DirectShow的概念,但是一旦你理解了它,它就成为了伟大的武器。
https://stackoverflow.com/questions/39893780
复制相似问题