Después de algún retoque, esta respuesta se ha dividido en dos partes:
cómo capturar fotogramas a 60 fps
El AVCaptureSessionPreset1280x720 en el iPhone4s/5.1, con duraciones marco establecido a:
connection.videoMinFrameDuration = CMTimeMake(1, 60);*
connection.videoMaxFrameDuration = CMTimeMake(1, 60);
le da una captura estable, muy suave.
Cómo capturar imágenes en un archivo @ 60fps
La captura de fotogramas está muy bien, pero se supone que desea mantenerlas.
Como señaló Brad en los comentarios, escribir esos cuadros en un archivo es otra historia. Lamentablemente, independientemente de las configuraciones que intenté, la codificación de los marcos a través de AVAssetWriter
causó que la tasa de captura cayera a los ~ 37 fps observados y ninguna cantidad de manipulación con alwaysDiscardsLateVideoFrames
podría cambiarla. Sin embargo, en este enfoque, cada fotograma se copia de AVFoundation a su aplicación, y luego de vuelta, lo cual es bastante inútil y muy desgastante para el bus. Afortunadamente, AVFoundation
tiene una clase que elimina este viaje redondo: AVCaptureMovieFileOutput
.
Si deja que AVFoundation
le escriban, el iPhone4S puede capturar y codificar cuadros + audio en un archivo .mov a 60 fps * sin perder un ápice (~ 25% de CPU).
Aunque la captura de video a 60 fps es una gran característica, no puedo evitar sentirme un poco decepcionado ya que AVCaptureMovieFileOutput
descarta muchas cosas divertidas (por ejemplo, efectos en tiempo real con sombreadores GL, grabación de inicio/detención sin pérdida de fotogramas).
torta/comerlo
* 59 si todavía está ejecutando IOS 5.0.1
No sé por qué esta pregunta se votó a ser cerrado? Parece una buena pregunta no duplicada después de una buena investigación. Seguro que el OP no sabe por dónde empezar, pero al menos dice que lo que está buscando es posible y ya lo han hecho otras aplicaciones en teléfonos que no tienen jailbreak. – Krishnabhadra
Sí, para aclarar, no quiero Jailbreak. Existen algunas aplicaciones de cámara lenta para iPhone (TimeFreeze, slopro). Entonces sé que es posible. – Michel