2012-04-27 2 views
16

저는 iPhone을 장면 캡처 용 카메라로 사용할 프로젝트를 진행하고 있습니다. 레코딩 할 때 우리는 (기본적으로 지원되는) 30fps가 아닌 @ 60fps를 레코딩해야합니다. 그래서 iPhone 4S 하드웨어가 720p @ 60fps를 지원할 때 (이 기능을 구현할 수있는 휴대 전화를 탈옥하는 경우) 앱을 개발하고 있습니다.iPhone 앱에서 60fps 캡처

아무도 iOS의 Objective-C에서이 작업을 수행하는 방법을 알고 있습니까? 오늘 저는 jailbroken이 아닌 전화기에서 60fps를 기록 할 수있는 앱을 보았습니다 (slopro). 조언이나 조언을 많이 주시면 감사하겠습니다.

+3

을 실행하는 경우

케이크/IT

* 59을 먹는다? 좋은 연구 후에 좋은, 중복되지 않는 질문이 보인다. OP는 어디서부터 시작해야할지 모르지만 적어도 그가 찾고있는 것은 가능하며 탈옥되지 않은 휴대 전화의 다른 앱에서도 이미 수행되었다고합니다. – Krishnabhadra

+1

예, 명확히하기 위해, 나는 본때를 보여주고 싶지 않다. 저기 아이폰 (TimeFreeze, slopro)에 대한 일부 슬로우 모션 애플 리케이션이 있습니다. 그래서 나는 그것이 가능하다는 것을 안다. – Michel

답변

7

어쩌면 이러한 관련, 전에이 시도하지 않은 : (videoMaxFrameDuration 설정에 필요한) AVCaptureConnection Class Reference

  • CMTime Reference에서

  • +0

    좋아, 나는 그것을 살펴볼 것이다.아무도이 속성에 대해 지원되는 최대 값이 무엇인지를 알고 있습니까? – Michel

    +0

    나는 내 대답에서 (Mac OS 용) 몇 가지 잘못된 링크를 제공하는 것으로 나타났습니다. 죄송합니다. 잘못된 것을 제거했습니다. – Hailei

    +0

    안녕하세요, 누구나이 행운이 있었나요? – Odrakir

    15

    일부 후 이 대답은 두 부분으로 나누어 져 있습니다 :

    방법으로 설정 프레임 기간으로, 초당 60 프레임

    아이폰 4S/5.1에 AVCaptureSessionPreset1280x720에서 프레임을 캡처 :

    connection.videoMinFrameDuration = CMTimeMake(1, 60);* 
    connection.videoMaxFrameDuration = CMTimeMake(1, 60); 
    

    당신에게 안정, 슈퍼 부드러운 캡처를 제공합니다.

    어떻게 프레임을 캡처하는 것은 모두가 아주 잘 초당 60 프레임
    @ 파일로 프레임을 캡처하지만, 아마도 당신이 그들을 유지하려는.
    Brad가 주석에 언급했듯이 파일에 파일을 쓰는 것도 다른 이야기입니다. 슬프게도, 내가 시도한 구성에 상관없이 AVAssetWriter을 통해 프레임을 인코딩하면 캡처 된 속도가 관찰 된 ~ 37fps로 떨어지고 alwaysDiscardsLateVideoFrames으로 바이올린을 사용하지 않아도 변경 될 수 있습니다. 그러나이 방법에서는 모든 단일 프레임이 AVFoundation에서 앱으로 복사 된 다음 다시 되돌아갑니다. 이는 버스에 대해 매우 무의미하고 매우 유용합니다. 다행히도 AVFoundation에는이 왕복을 제거하는 클래스가 있습니다 : AVCaptureMovieFileOutput.

    AVFoundation이 글을 쓰면 iPhone4S는 프레임 + 오디오를 60fps *로 .mov 파일로 캡쳐하고 인코딩 할 수 있습니다 (~ 25 % CPU).

    60fps 비디오 캡처는 훌륭한 기능이지만, AVCaptureMovieFileOutput은 많은 재미를 없앴습니다 (예 : GL 쉐이더를 사용한 실시간 효과, 프레임 손실없이 시작/정지 녹화). 당신은 여전히이 질문은 폐쇄 될 투표 이유를 모르겠어요 아이폰 OS 5.0.1

    +0

    나는 60FPS (실제로 위의 코드에서 59 대신 60을 사용할 수 있음) iPhone 4S에서 작동하지만 새로운 (Retina) iPad는 아니지만 640x480 또는 1080p가 아닌 720p 프리셋에서만 작동합니다. AVAssetWriter가 내 구현을 유지할 수 있도록 비디오를 640x480으로 다운 샘플링해야했지만 59.87FPS (처음에는 몇 프레임 떨어 뜨림)로 영화를 캡처하고 녹화 할 수있었습니다. 오디오 녹음 및 전체 720p 프레임을 사용하여 37FPS로 기록했습니다. –

    +0

    iOS 5.0.1에서 59fps가 저에게 맞는 유일한 속도 인 것 같습니다. 나는 더 많은 테스트를 한 후에 대답을 업데이트 할 것이다. –

    +0

    내 테스트는 5.1에 있었고,'CMTimeMake (1,60)'이 거기서 광고하는대로 배달되었습니다. 이것이 정확하게 문서화되지 않았다는 점을 감안할 때, 포인트 업데이트간에 차이가있을 수 있습니다. –