DECODE VIDEO ACCELERATO DI HARDWARE per H.264 in Android prima della gelatina
-
21-12-2019 - |
Domanda
Sto lavorando su un progetto di videoconferenza. Stavamo utilizzando il codec del software per codifica e decodifica dei fotogrammi video che faranno bene per risoluzioni inferiori (fino a 320p). Abbiamo pianificato di supportare la nostra applicazione per risoluzioni più elevate anche fino a 720p. Sono venuto a sapere che l'accelerazione hardware farà questo lavoro abbastanza bene.
Poiché il codec multimediale dell'API del codec hardware è disponibile da Jelly Bean in avanti l'ho usato per codificare e decodificare e stanno funzionando bene. Ma la mia applicazione è supportata da 2.3. Quindi ho bisogno di avere un decodificatore video accelerato hardware per fotogrammi H.264 di 720p a 30 fps.
La ricerca è arrivata nell'idea di utilizzare OMX Codec modificando il palcoscenico Fright Framework.i ha letto che il decodificatore hardware per H.264 è disponibile da 2.1 e encoder è lì da 3.0. Ho passato molti articoli e domande fornite in questo sito e ha confermato che posso andare avanti.
Avevo letto l'architettura della paura del palcoscenico qui -Architecture e qui- stagefright Come funziona
e ho letto su OMX Codec qui- Android-hardware-decodificatore-con-omxcodec-in-ndk .
Sto avendo un problema di partenza e alcune confusioni sulla sua implementazione. Vorrei avere alcune informazioni su di esso.
- .
- Per l'utilizzo di OMX Codec nel mio codice dovrei costruire il mio progetto con l'intero albero di origine Android o posso fare aggiungendo alcuni file da ASOND SOURCE (se sì quale ALL).
- Quali sono i passi da zero che dovrei seguire per raggiungerlo.
qualcuno può darmi una linea guida su questo
Grazie ...
Soluzione
Il miglior esempio per descrivere l'integrazione di OMXCodec
in Native Layer è l'utilità della riga di comando stagefright
come è possibile osservare qui in GingerBread
stesso. Questo esempio mostra come OMXCodec
viene creato .
- .
-
L'ingresso a
OMXCodec
deve essere modellato comeMediaSource
e quindi, è necessario assicurarsi che la tua applicazione gestisca questo requisito. Un esempio per la creazione di una fonte basata suMediaSource
può essere trovata in File di utilitàrecord
comeDummySource
. -
L'ingresso al decodificatore I.e.
MediaSource
dovrebbe fornire i dati tramite il metodoread
e quindi, la domanda dovrebbe fornire singoli fotogrammi per ogni chiamataread
. -
Il decodificatore potrebbe essere creato con
NativeWindow
per l'assegnazione del buffer di uscita. In questo caso, se si desidera accedere al buffer dalla CPU, dovresti probabilmente fare riferimento a Questa query per maggiori dettagli.