从Android摄像头即时加密视频

Ale*_*yan 8 java encryption android file-descriptor android-camera

我想加载Android摄像头捕获的视频.所以我需要告诉android MediaRecorder将视频流写入我的CipherOutputStream.问题是MediaRecorder.setOutputFile()方法只接受,FileDescriptor并且无法从CipherOutputStream获取加密文件描述符.

所以我的问题是如何模拟FileDescriptor接收数据写入并手动进行加密或以某种方式说服MediaRecorder流视频CipherOutputStream.

小智 5

您可以使用 LocalServerSocket 和 LocalSocket 来实现您想要的。

LocalServerSocket 通过 LocalServerSocket.getFileDescriptor() 提供 FileDescriptor

  1. 启动一个 LocalServerSocket。
  2. 启动一个 LocalSocket 对象并连接到 LocalServerSocket。
  3. 调用 LocalServerSocket.accept() 以接受来自 LocalSocket 的连接。
  4. 建立连接后,您可以从 LocalServerSocket 获取 FileDescriptor。
  5. 相机写入 LocalServerSocket 的每个字节都可以从 LocalSocket.getInputStream() 中检索,您可以使用 for 循环来获取字节流并写入 CipherOutputStream。

请记住将所有步骤放入一个新线程中。

我使用这些 API 以相机作为流源创建动态流处理器。

我希望这有帮助。