Attualmente sto cercando di utilizzare Android come endpoint Skype. A questo punto, ho bisogno di codificare il video in H.264 (poiché è l'unico formato supportato da Skype) e incapsularlo con RTP per far funzionare lo streaming.Uso MediaCodec per streaming H264
Apparentemente il MediaRecorder
non è molto adatto per questo per vari motivi. Uno è perché aggiunge le intestazioni MP4 o 3GP dopo che è finito. Un altro è perché al fine di ridurre al minimo la latenza, l'accelaration dell'hardware può tornare utile. Ecco perché mi piacerebbe utilizzare le recenti aggiunte di basso livello al framework, essendo MediaCodec
, MediaExtractor
, ecc.
Al momento, ho intenzione di lavorare come segue. La fotocamera scrive il suo video in un buffer. MediaCodec codifica il video con H264 e scrive il risultato su un altro buffer. Questo buffer viene letto da un encapsulator RTP, che invia i dati del flusso al server. Ecco la mia prima domanda: questo piano ti sembra fattibile?
Ora sono già bloccato con il primo passaggio. Poiché tutta la documentazione su Internet sull'uso della fotocamera fa uso di MediaRecorder
, non riesco a trovare un modo per memorizzare i dati grezzi in un buffer prima della codifica. addCallbackBuffer è adatto per questo? Qualcuno ha un link con un esempio?
Successivamente, non riesco a trovare molta documentazione su MediaCodec (dal momento che è abbastanza nuovo). Chiunque abbia un solido tutorial?
Infine: eventuali consigli sulle librerie RTP?
Grazie mille in anticipo!
So che questo commento è molto tardi (non sono sicuro se questo è consentito o meno), ma ora che sono passati 3 anni, è ancora rilevante o ci sono modi migliori per farlo ora? –