2011-08-30 16 views
15

Ho costruito un semplice lettore multimediale utilizzando ffmpeg su Android 2.2. L'hardware è un processore 1GHz basato su corte corte-a8, 512 MB di RAM. Sto ottenendo basse prestazioni, circa 15 FPS per 800x600 video mp4. Ho un paio di domande su come migliorare le prestazioniFFMPEG con supporto codec hardware

  • Come posso utilizzare i codec hardware disponibili sul mio dispositivo di destinazione. Come posso configurare ffmpeg per utilizzare i decodificatori hardware disponibili? La GPU o il driver grafico devono esporre alcune API standard come OpenMax IL per questo?

  • Quali sono le opzioni che dovrebbero essere abilitate quando si costruisce ffmpeg in modo che possa essere ottimizzato per il mio hardware di destinazione? Qualcosa di simile: --cpu=cortex=a8 --extra-cflags="-mfpu=neon" ...

Ho già guardato intorno alla rete, ma non riuscivo a trovare le risposte che sto cercando. Spero che qualcuno mi possa consigliare su questo.

Grazie in anticipo!

+0

Qual è l'hardware? Modello esatto del lettore multimediale stesso e dei chip utilizzati (a8 è il core della CPU, è necessario sapere quali media core/GPU/acceleratori ci sono sul SoC o sulla scheda madre) – osgx

+0

L'hardware utilizza il processore ZiiLABS ZMS-08 Media che credo H.264, WMV, MPEG4, MPEG2, Adobe Flash, XVid, DivX ... codec – mctma

+1

È un lettore multimediale standard Zii basato su ffmpeg? L'hardware di decodifica video sembra essere molto personalizzato, ed è improbabile che ffmpeg supporti questo hw. – osgx

risposta

3

Ci deve essere un codice specifico in libav/ffmpeg adattato all'hardware. In questo momento posso vedere il supporto per alcuni decoder HW e hardware con driver che espongono le API VPAPI o VDPAU (per lo più NVidia).

L'hardware non sembra supportato in modo nativo dallo stock libavcodec drivers. È possibile ottenere una decodifica accelerata se è possibile ottenere le patch di origine su libavcodec o i driver che espongono una delle API di accelerazione di decodifica supportate.

In altre parole, si dovrebbe chiedere al provider HW.

Problemi correlati