2012-07-24 23 views
7

Voglio criptare video al volo che cattura la videocamera Android. Quindi ho bisogno di dire ad Android MediaRecorder per scriverlo flusso video sul mio CipherOutputStream. Il problema è il metodo MediaRecorder.setOutputFile() accetta solo FileDescriptor e non è possibile ottenere il descrittore di file crittografico da CipherOutputStream.Cifra video al volo dalla telecamera Android

Quindi la mia domanda è: come posso neanche emulare FileDescriptor ricevere scrive i dati e fare la crittografia manualmente o in qualche modo convincere MediaRecorder per lo streaming video in CipherOutputStream.

+1

Non penso sia possibile: http://stackoverflow.com/questions/9257364/modifying-fileinputstream-for-mediaplayer-setdatasource –

risposta

4

È possibile utilizzare LocalServerSocket e LocalSocket per implementare ciò che si desidera.

LocalServerSocket che fornisce la FileDescriptor via LocalServerSocket.getFileDescriptor()

  1. Iniziare una LocalServerSocket.
  2. Avviare un oggetto LocalSocket e connettersi a LocalServerSocket.
  3. Richiamare LocalServerSocket.accept() per accettare la connessione da LocalSocket.
  4. Una volta stabilita la connessione, è possibile ottenere FileDescriptor da LocalServerSocket.
  5. Ogni byte che la fotocamera scrive su LocalServerSocket può essere recuperato da LocalSocket.getInputStream(), è possibile utilizzare un ciclo for per ottenere il flusso di byte e scrivere su CipherOutputStream.

Ricordarsi di inserire tutti i passaggi in una nuova discussione.

Ho usato queste API per creare un processore di streaming immediato con la fotocamera come sorgente di streaming.

Spero che questo aiuti.

+0

Esiste un formato multimediale con cui questo funziona? MP4 ad esempio, MediaRecorder si aspetta un accesso casuale a FileDescriptor - vuole scrivere l'atomo di moov all'inizio del file, che 1) non funziona con il FileDescriptor derivato da socket e 2) non funzionerebbe con CipherOutputStream . – Mark

+0

L'MP4 non funziona a causa della posizione casuale di moov/mdat. Ho testato il formato di file di streaming come funziona M2TS, e penso che anche altri formati di file in streaming dovrebbero funzionare. – yrulee

Problemi correlati