2011-08-17 14 views
6

¿Hay alguna manera de atravesar un archivo de video cuadro por cuadro? He intentado usar VideoView y he tenido un éxito menor. Puedo hacer que el video pase por los fotogramas clave, pero no por fotogramas individuales. Pensé que esta sería la configuración predeterminada, especialmente con la forma en que funciona la compresión de video. ¿Hay alguna manera de anular este comportamiento predeterminado o una configuración que puedo cambiar?Marco de video por marco buscando

Respuesta

5

El comportamiento predeterminado en el framework de medios Stagefright es buscar siempre el fotograma clave. (A diferencia del framework anterior - opencore cuyo comportamiento de búsqueda predeterminado era buscar el tiempo).

No se puede hacer cuadro por cuadro utilizando las API de MediaPlayer proporcionadas por Android.

Si realmente quiere poner en práctica la búsqueda de cuadro por cuadro a continuación, tendrá que utilizar una tercera parte marco multimedia como FFMPEG o tendrá que implementar su propio.

+0

Supongo que implementaré la mía y la compartiré. – Spidy

+0

Sí, me encontré con este problema también con cámaras de video y marcos y mostrando al procesar objetos en screan, finalmente fuimos a MJPG ya que teníamos un control más estricto de tiempo y framerates. – JPM

+0

¿Qué sucede si grabo el video de tal manera que cada fotograma es un fotograma clave? ;) – Moonlit

0

¿Has mirado MediaMetadataRetriever? Allí puede usar getFrameAtTime(long timeUs, int option) y devolver un Bitmap.

Dependiendo del uso, tal vez es lo que necesita.

+0

Tendré que intentarlo. Solo funcionará para medios locales (no para medios basados ​​en url) pero es un paso en la dirección correcta si funciona. – Spidy

+0

En caso de que no sabe todavía [MediaPlayer código fuente] (http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=media/java/android/media /MediaPlayer.java;hb=HEAD). 'getFrameAt' no se usa y está en desuso. Es una buena fuente para ver la implementación de MediaPlayer. Como dijo Ravi: puedes implementar el tuyo. – proxylittle