2012-07-03 9 views
6

He buscado para encontrar que SDK no es compatible con el zoom digital de entrada o salida, tienes que hacerlo de forma indirecta. La forma en que encontré en stackoverflow es transformar el AVCaputureVideoPreviewLayer mientras grabo, y hacer el proceso posterior de transformación correspondiente al video de salida (mi idea actual es usar AVMutableVideoCompositionLayerInstruction's transformar la función de rampa).ios zoom digital para grabación de video. cómo implementar de manera eficiente?

El problema es cómo se puede registrar todo el curso continuo de la actividad de zoom del usuario, lo que creo que puede ser una serie de comportamientos muy complejos de acercamiento y alejamiento Quiero decir, por ejemplo, diseño un control deslizante para el usuario controle el zoom, el usuario puede mantener el control deslizante 4x lentamente (digamos los últimos 3 segundos) y, sin soltar el control deslizante, alejar rápidamente a 2X (digamos los últimos 0,5 segundos), tengo que registrar todos estos cambios de acuerdo con la línea de tiempo.

Realmente siento este complejo de discos, además también debe garantizar que no le cueste demasiado recursos para mantener un buen rendimiento del proceso de grabación de video. O cualquier otra forma de implementación de zoom digital? Agradecido a cualquier ayudante!

Respuesta

1

Puede transformar AVCaputureVideoPreviewLayer durante la grabación y usar el valor de zoom para manipular los marcos en el delegado AVCaptureVideoDataOutput. El método delegado captureOutput:didOutputSampleBuffer:fromConnection: se puede usar para procesar cuadros de video. Consulte la documentación de AVFoundation AVFoundation documentation, Captura de medios> Procesamiento de marcos de video.

Cuestiones relacionadas