Cómo obtener la velocidad de fotogramas de vídeo en Android OS?
Quiero obtener la velocidad de fotogramas del vídeo, pero no quiero usar FFMPEG, JAVACV lib. Es que es posible obtener la velocidad de fotogramas de vídeo en android?
He leído KEY_FRAME_RATE dice que, "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." Pero no sé cómo usarlo?
- Crear video desde imágenes
- Android: Vista de vídeo: cómo reproducir un video en un bucle
- Cómo reproducir vídeos en android desde la carpeta de activos o la carpeta en bruto?
- Buscando FFmpeg Wrappers para Android
- Android: ¿Puedo recortar un video en radio de aspecto a pantalla completa?
Si sabes cómo obtener la velocidad de fotogramas del vídeo, responde aquí.
- Android Camera PreviewCallback no se llama en 4.1
- Android reproducir película dentro del archivo de expansión
- Eventos VideoView onTouch: pausar / reanudar vídeo y mostrar / ocultar MediaController y ActionBar
- Apertura de vídeo RTSP en VideoView
- Android: reproducir muchos videos simultáneamente
- ¿Es posible escribir metadatos en medios de video en Android?
- Reproducción de un video descargado Error: 1, -2147483648
- ¿Cómo transmitir vídeo directamente entre dvr (servidor) y el teléfono móvil con android (cliente)?
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 subproceso de trabajo.
Actualización 1 ¿Qué es KEY_FRAME_RATE y puede ser opcional
KEY_FRAME_RATE Se agregó en el nivel 16 del API String KEY_FRAME_RATE Una clave que describe la velocidad de fotogramas de un formato de vídeo en frames / sec. El valor asociado es normalmente un entero cuando el valor es utilizado por la plataforma, pero los códecs de vídeo también aceptan valores de configuración de flotador. 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. De lo contrario, esta clave no está presente. MediaCodec acepta tanto valores flotantes como enteros. Esto representa la velocidad de fotogramas operativa deseada si KEY_OPERATING_RATE no está presente y KEY_PRIORITY es 0 (tiempo real). Para codificadores de vídeo, este valor corresponde a la velocidad de fotogramas deseada, aunque se espera que los codificadores soporten velocidad de fotogramas variable basada en la marca de tiempo del búfer. Esta clave no se utiliza en los formatos de entrada / salida de MediaCodec ni en MediaMuxer.
Valor constante: "frame-rate"
Actualizar 2 Comprobar código si para NPE si KEY_FRAME_RATE no está presente. Véase más arriba
- Ejecutar aplicaciones de Android en el dispositivo de hardware de Android Studio por USB
- Vida útil de una variable estática en Android