2012-07-03 1 views
6

sdk가 디지털 확대/축소를 지원하지 않는다는 것을 알아 내기 위해 간접적으로 검색해야합니다. Stackoverflow에서 발견 된 방법은 기록하는 동안 AVCaputureVideoPreviewLayer을 변환하고 출력 비디오에 대응하는 변환 사후 프로세스를 수행합니다 (현재의 아이디어는 AVMutableVideoCompositionLayerInstruction's 변환 램프 기능을 사용합니다.).비디오 녹화를위한 디지털 줌. 효율적으로 구현하는 방법?

문제는 사용자의 확대/축소 동작을 모두 기록 할 수 있다는 것입니다. 매우 복잡한 확대/축소 동작을 시끄럽게 생각할 수 있습니다. 예를 들어, 사용자를 위해 슬라이더를 디자인했습니다. 줌을 제어하면 사용자는 슬라이더 줌을 4 배 느리게 (마지막 3 초) 누르고, 슬라이더를 놓지 않고 빠르게 2 배로 축소하면 (마지막 0.5 초) 타임 라인에 따라이 모든 변경 사항을 기록해야합니다.

나는 정말이 레코드 컴플렉스를 느낀다. 또한 비디오 레코딩 프로세스의 매끄러운 성능을 유지하는 데 너무 많은 리소스가 들지 않는다고 보장해야한다. 또는 다른 방법으로 디지털 줌을 구현할 수 있습니까? 도우미에게 감사드립니다!

답변

1

녹음 중에 AVCaputureVideoPreviewLayer을 변형하고 zoomvalue를 사용하여 AVCaptureVideoDataOutput 대리자의 프레임을 조작 할 수 있습니다. 대리자 메서드 captureOutput:didOutputSampleBuffer:fromConnection:은 비디오 프레임을 처리하는 데 사용할 수 있습니다. AVFoundation 설명서 AVFoundation documentation, 미디어 캡처> 비디오 처리 프레임을 참조하십시오.

관련 문제