Pregunta

Estoy trabajando en una conferencia de video del proyecto.Estábamos usando el software de códec para codificar y decodificar de fotogramas de vídeo que va a hacer bien para resoluciones más bajas( hasta 320p).Tenemos planeado para nuestra aplicación para resoluciones más altas también de hasta 720p.Me enteré de que la aceleración de hardware de hacer este trabajo bastante bien.

Como el codec de hardware de la api de códecs Multimedia está disponible a partir de Jelly Bean en adelante me lo han utilizado para codificar y decodificar, y están trabajando bien.Pero mi aplicación es compatible a partir de 2.3 .Por lo que necesito un acelerado por hardware de decodificación de vídeo H. 264 marcos de 720p a 30fps.

En la investigación llegó a través de la idea de utilizar la OMX codec modificando el miedo escénico marco.Yo había leído que el decodificador de hardware H. 264 está disponible a partir de 2.1 y el codificador está ahí desde el 3.0.He pasado por muchos artículos y preguntas en este sitio y me confirmó que yo pueda seguir adelante.

Yo había leído sobre el miedo escénico de la arquitectura aquí -la arquitectura y aquí - stagefright cómo funciona

Y he leído sobre OMX codec aquí - uso-android-hardware-decodificador-con-omxcodec-en-ndk.

Estoy teniendo un inicio de problemas y algunas confusiones en su aplicación.Me gustaría tener algo de información sobre ella.

  1. Para el uso de la OMX codec en mi código debo construir mi proyecto con todo el árbol de código fuente de android o puedo hacer mediante la adición de algunos archivos de AOSP de la fuente(si sí, que todos).
  2. ¿Cuáles son los pasos desde cero que debo seguir para lograrlo.

Alguien puede darme una pauta en este

Gracias...

¿Fue útil?

Solución

El mejor ejemplo para describir la integración de OMXCodec en los nativos de la capa es la utilidad de línea de comandos stagefright como se puede observar aquí en GingerBread sí.Este ejemplo muestra cómo un OMXCodec se crea.

Algunos puntos a tener en cuenta:

  1. La entrada a OMXCodec debe ser modelado como un MediaSource y, por lo tanto, usted debe asegurarse de que su aplicación se encarga de este requisito.Un ejemplo de creación de un MediaSource basada en el origen se puede encontrar en record archivo de la utilidad como DummySource.

  2. La entrada al decodificador es decir, MediaSource debe proporcionar los datos a través de la read método y, por lo tanto, su aplicación debe proporcionar fotogramas individuales para cada read de la llamada.

  3. El decodificador puede ser creado con NativeWindow para el buffer de salida de la asignación.En este caso, si desea acceder al buffer de la CPU, probablemente, usted debe referirse a esta consulta para obtener más detalles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top