目前我使用的是javax.crypto.cipher库的AES/CBC加密,但是我发现它有点太慢了。解密一个10分钟的.mp4视频文件需要45s-1m。
有没有更好的方法在Android上做到这一点?我环顾四周,发现了一些关于openssl的帖子,但它真的快得多吗?
任何链接,有用的帖子和/或评论都将非常感谢。
发布于 2015-06-30 04:06:01
使用流而不是文件解密。如果您流式传输视频,则只需在需要时执行视频解密即可。如果您使用CTR或CBC模式,您甚至可以跳到流中的特定位置,尽管这需要一些额外的技巧才能实现。
将解密留给默认提供程序应该是首选,但您当然可以使用本机解密库来加快速度。
发布于 2015-09-15 15:40:17
愿意在开始播放之前解密整个视频会使用户暴露于明显的延迟。您应该考虑使用流媒体架构。
典型的设计包括javax.crypto.CipherInputStream类和本地http实例。SDK中没有针对http服务器的类,您必须实现自己的类,或者寻找类似于LocalSingleHttpServer的现有库。
看起来是这样的:
mServer = new LocalSingleHttpServer();
mServer.setCipher(myGetCipher());
mServer.start();
path = mServer.getURL(path);
mVideoView.setVideoPath(path);
mVideoView.start();https://stackoverflow.com/questions/31122526
复制相似问题