2012-01-12 10 views
8

Quello che sto tentando di fare è creare un'applicazione che aggiunge effetti ai video durante la registrazione. C'è un modo per avere un metodo di callback per ricevere il frame, quindi applicare un effetto ad esso e avere quello registrato. Al momento c'è un'applicazione su Android Market (Videocam Illusion) che afferma che è l'unica applicazione in grado di farlo. Qualcuno sa come funziona Videocam Illusion o ha alcuni link a possibili tutorial che descrivono l'elaborazione video per Android?Elaborazione del fotogramma video Android per fotogramma durante la registrazione

Questa è una domanda simile che è senza risposta:

Android preview processing while video recording

risposta

11

Purtroppo, (a meno che io sono a conoscenza di qualche altro metodo previsto dalle API) il modo in cui questo viene fatto sta usando un flusso diretto la fotocamera e manipolandola usando una sorta di codice nativo per modificare lo stream. Ho fatto qualcosa di simile prima quando stavo lavorando su un eyetracker - Quindi ti dirò come funziona in pratica.

  1. aprire un flusso usando l'NDK (possibilmente api, a seconda implementazioni)
  2. Modificare i byte del flusso - ogni fotogramma viene inviato come un pacchetto separato. Devi prendere ogni pacchetto dalla fotocamera e modificarlo. Puoi fare una sostituzione di colori o puoi tradurre. Puoi anche usare OpenGL per modificare completamente l'immagine aggiungendo cose come gli effetti di vetro.
  3. Appiattisci le immagini indietro
  4. invia l'immagine al controller di visualizzazione da visualizzare.

Una cosa che dovete essere consapevoli di è il carico e inviare dei pacchetti & immagini avvengono in circa 1/30 ° di secondo per ogni fotogramma. Quindi il codice deve essere estremamente ottimizzato.

+1

Grazie per l'informazione. – daveySET

+0

Mi piace il commento circa 1/30 di secondo. Noi programmatori di solito pensiamo al meglio o peggio. Questo ci permette di andare 'abbastanza bravi' e andare avanti, che è davvero importante tra i due. –