2013-04-15 12 views
5

Mi è stato chiesto di visualizzare un flusso video (lo stream non è HTTP) in Android, lo stream è H.264 non elaborato che è registrato e codificato in un PC, e ottengo attraverso WIFI.Come utilizzare la classe MediaCodec per decodificare i flussi H.264

Quando viene visualizzato lo stream, è possibile utilizzare il decodificatore MediaCodec per decodificare il flusso e visualizzarlo?

risposta

0

Vedi le raccomandazioni codifica video here

1

Sì. Configurare MediaCodec come decodificatore "video/avc" e passare una superficie di uscita alla chiamata configure().

L'API MediaCodec è piuttosto di basso livello e non è disponibile molto codice di esempio. Potrebbe essere più semplice usare MediaPlayer.

Aggiornamento: C'è ora un sacco di codice di esempio here. La maggior parte utilizza le funzionalità di Android 4.3 (API 18), ma se non hai bisogno di o di input Surface su MediaCodec funzionerà su API 16.

+0

Ma, non riesco a trovare un modo per gestire H. 264 stream con MediaPlayer. Tutti gli ideali? – ljfxmu

+1

Lasciatemi fare un passo indietro. Qual è esattamente il formato: flusso elementare, PES, ...? MediaCodec accetta dati di flusso elementare, ma non accetta che sia un * stream *; richiede una serie di "unità di accesso", quindi se si tratta di un flusso elementare è necessario preservare o recuperare i confini del "pacchetto". È inoltre necessario assicurarsi che il primo buffer passato abbia le informazioni sul codec che desidera, che non sono attualmente documentate. La soluzione migliore potrebbe essere quella di convertire lo streaming sul lato PC in qualcosa che MediaPlayer può gestire. – fadden

Problemi correlati