播放加密的MP4

问题描述 投票:-2回答:1

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

我读到了MPEG-DASH和一些DRM,并发现了这个Bento4命令:

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

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

How can I solve this?
encryption mp4 mpeg-dash
1个回答
0
投票

在google上进行了多次搜索之后,我在这里找到了@erti-chris-eelmaa的答案:

Playing encrypted video

我使用openGL + FFMPEG编写了我自己的Videoplayer,它可以播放mp4并使用着色器解密GPU中的每个帧。我还尝试了另一种可能的解决方案,例如使用VLC从网络服务器流式传输。 (VLC在处理流时提供某种加密/解密)和yada yada yada。

另外一个解决方案是使用4个媒体元素(WPF),实际视频实际上被分成4个区域,每个区域都被旋转,因此视频不可见。将视频加载到4个媒体元素后,您可以确定要显示的部分并将其旋转回来。但老实说,MediaElement很糟糕。

然而,我最终完全符合RomanR的说法。我使用mp4splitter,ffdshow,videorenderer构建了DirectShow图形,并修改了mp4splitter sourcefilter。读取发生在mp4splitter使用的BaseSplitter / AsyncReader.cpp(只是修改SyncRead函数)中。

如果您想自己实现它,只需使用MPC-HC项目并根据需要修改过滤器。我花了一些时间来解决DirectShow概念,但是一旦你理解了它,它就变成了伟大的武器。

© www.soinside.com 2019 - 2024. All rights reserved.