studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones java android video frame-rate

java - para - manual de programacion android pdf



¿Cómo obtener la velocidad de fotogramas del video en el sistema operativo Android? (1)

Quiero obtener la velocidad de fotogramas del video, pero no quiero usar FFMPEG, JAVACV lib. ¿Es posible obtener una velocidad de fotogramas de video en Android?

Leí KEY_FRAME_RATE dice que, "Específicamente, MediaExtractor proporciona un valor entero correspondiente a la información de velocidad de fotogramas de la pista, si se especifica y no es cero". pero no sé cómo usarlo?

si sabe cómo obtener la velocidad de fotogramas del video, responda aquí.


MediaExtractor extractor = new MediaExtractor(); int frameRate = 24; //may be default try { //Adjust data source as per the requirement if file, URI, etc. extractor.setDataSource(...); int numTracks = extractor.getTrackCount(); for (int i = 0; i < numTracks; ++i) { MediaFormat format = extractor.getTrackFormat(i); String mime = format.getString(MediaFormat.KEY_MIME); if (mime.startsWith("video/")) { if (format.containsKey(MediaFormat.KEY_FRAME_RATE)) { frameRate = format.getInteger(MediaFormat.KEY_FRAME_RATE); } } } } catch (IOException e) { e.printStackTrace(); }finally { //Release stuff extractor.release(); }

Nota: intente ejecutar el código anterior en el hilo de trabajo.

Actualización 1 ¿Qué es KEY_FRAME_RATE y puede ser opcional?

KEY_FRAME_RATE Agregado en API nivel 16 String KEY_FRAME_RATE Una clave que describe la velocidad de fotogramas de un formato de video en cuadros / seg. El valor asociado normalmente es un número entero cuando la plataforma usa el valor, pero los códecs de video también aceptan valores de configuración de flotante. Específicamente, MediaExtractor proporciona un valor entero que corresponde a la información de velocidad de cuadro de la pista si se especifica y no es cero. De lo contrario, esta clave no está presente. MediaCodec acepta valores flotantes y enteros. Esto representa la velocidad de cuadros operativos deseada si KEY_OPERATING_RATE no está presente y KEY_PRIORITY es 0 (en tiempo real). Para los codificadores de video, este valor corresponde a la velocidad de fotogramas prevista, aunque se espera que los codificadores admitan la velocidad de fotogramas variable en función de la marca de tiempo del búfer. Esta clave no se usa en los formatos de entrada / salida MediaCodec, ni en MediaMuxer.

Valor constante: "frame-rate"

Actualización 2 Código de verificación si para NPE si KEY_FRAME_RATE no está presente. Véase más arriba