2013-11-14 2 views
1

GPUImage 프로젝트 예제 중 하나 인 "SimpleVideoFilter"에서 "일시 중지/다시 시작"옵션을 구현하려고 시도했지만 지금까지 "일시 중지"문제를 제외하고는 계속 진행되었습니다. 나는 비디오를GPUImage 프레임 워크를 사용하여 비디오 일시 중지

문제는 비디오가 마지막 프레임과 "일시 중지"시간도 총 비디오 시간에 도착에 걸리면이다
- (void)pauseCameraCapture; 
{ 
    capturePaused = YES; } 

- (void)resumeCameraCapture; 
{ 
    capturePaused = NO; } 

..

정도 일시 정지 아래에 언급 된 코드를 사용하고 있습니다 예를 들어, 5 초 동안 녹화하고 10 초 동안 일시 중지 한 다음 다시 5 초 동안 녹화를 다시 시작하면 총 녹화 시간은 10 초가됩니다. 동영상을 재생하면 5 초 동안 재생되고 다음 10 초 동안 마지막 프레임에 고정됩니다 "일시 중지"다음 마지막 5 초를 다시 재생합니다.

내가 원하는 것은 내가 5 초 동안 기록하고 10 초 동안 멈추고 rec 5 초 동안 다시 녹음하면 10 분 녹음 만 녹음해야합니다.

이 문제가 검색되었지만이 문제를 해결할 수있는 항목을 찾을 수 없습니다.

답변

2

나는 오래된 질문이지만, 비슷한 작업을하고 있으며 GPUImage를 사용하여 멋진 솔루션을 발견했습니다. 이걸 찾은 사람은 project forked from GPUimage입니다. 여기서 movieWriter 클래스는 질문에 설명 된대로 비디오가 excat 방식으로 일시 중지 될 수있는 방식으로 변경되었습니다.

비디오를 일시 중지 할 때 movieWriter.paused=YES을 설정하고 비디오 녹화를 다시 시작할 때 movieWriter.paused=NO으로 설정하면됩니다. 여기서 movieWriter는 의 객체입니다. GPUImageMovieWriter

나를 위해 완벽하게 일했습니다. 앞으로 누군가를 도울 수 있기를 바랍니다.

+1

정말 아름답습니다. – barndog

2

GPUImageVideoCamera에서 [videoCamera pauseCameraCapture];으로 전화를 걸어 카메라에서 프레임 버퍼의 흐름을 중지 한 다음 GPUImageMovieWriter에서 [movieWriter finishRecording];으로 호출하여 첫 ​​번째 클립을 완료해야합니다.

그런 다음 [videoCamera resumeCameraCapture];으로 전화를 걸어 비디오 카메라를 마침내 다시 시작하면 movieWriter에서 새로운 URL에 쓰고 싶을 것입니다.

나중에 AVFoundation 도구 모음에서 좋아하는 기법으로 만든 개별 클립을 결합하고 완료된 작업을 저장하십시오.

코드를 많이 게시하지 않았기 때문에 내가하는 일에 대해 몇 가지 가정을하고 있습니다. 그래서 당신이하는 일에 대해 추측해야합니다. 귀하의 질문에 더 구체적인 내용이 도움이됩니다 ...