我正在制作一个(本地 - 多平台)视频保护应用但我不知道什么是正确的解决方案首先“加密 - >保存硬盘“然后”加载来自HDD-> decrypt->播放“加密视频。
我读到了关于MPEG-DASH和一些DRM并发现了这个Bento4命令:
mp4dash --encryption-key=000102030405060708090a0b0c0d0e0f:00112233445566778899aabbccddeeff --encryption-args="--property 1:ClearLeadFragments:10 --property 2:ClearLeadFragments:10" movie.mp4
但我不确定MPEG-DASH是否可以成为解决方案的一部分。
我该如何解决这个问题?
答案 0 :(得分:1)
HLS + S3 + CloudFront + MediaConvert + VideoJS。
答案 1 :(得分:0)
在google上进行了多次搜索后,我在这里找到了@erti-chris-eelmaa的答案:
我使用openGL + FFMPEG编写自己的Videoplayer,可以播放mp4和 使用着色器解密GPU中的每个帧。我也尝试过 另一种可能的解决方案,例如使用网络服务器传输 VLC。 (VLC在处理时提供某种加密/解密功能 溪流)和yada yada yada。
另一种解决方案是使用4个媒体元素(WPF)和实际视频 实际上分为4个区域,每个区域都旋转了 视频无法观看。将视频加载到4后 mediaelements,你可以找出你想要展示的部分和 也将它旋转回来。但说实话,MediaElement很糟糕。
然而,我最终完全接受了RomanR所说的话。我建立了DirectShow 使用mp4splitter,ffdshow,videorenderer和我修改过的图形 mp4splitter sourcefilter。阅读发生在 BaseSplitter / AsyncReader.cpp(只修改SyncRead函数)即可 mp4splitter使用。
如果您想自己实施,只需使用MPC-HC项目 并根据需要修改过滤器。我花了一些时间才能到处走走 DirectShow概念,但一旦你理解了它,它就会变得很棒 武器。