9

나는 여러 클립을 병합하고iOS 비디오 편집 - iOS 4 AVFoundation 클래스를 사용하여 두 개의 비디오 파일을 하나로 병합 할 수 있습니까?

그렇게 '비디오 소목'같은 애플 리케이션이 있습니다 AVMutableCompositionTrack 등, AVFoundation 클래스 - AVURLAsset, AVMutableComposition를 사용하여 다른 후 하나를 추가하여 하나의 영상을 만들 수 있습니다 알고 있습니다.

내가하고 싶은 일은 2 개의 비디오를 나란히 놓는 것입니다.

내 응용 프로그램 아이디어 - SelfInterviewer 도둑질하지 마십시오 :

우선 기록 비디오 카메라 1 서 전면 사용에 직면 프레임 왼쪽. 그런 다음 비디오 2가 오른쪽에 있습니다. 비디오 1에서는 질문을하고 비디오 2에서는 대답합니다.

병합 할 때 나 혼자서 인터뷰하는 것처럼 보입니다.

나는 iOS에서 실행 가능성이 거의 확실하다고 확신하고 싶다.

또 다른 서버 측 솔루션에 관심이 있습니다. 두 개의 비디오를 업로드하고 동일하게 수행하십시오. 나는 어도비 초연이 그것을 할 수 있다고 생각한다. 그들이 공개 API를 가지고 있는지 확실하지 않습니다.

아이디어가 있으면 감사하겠습니다.

감사합니다.

+0

이 해결책이 있습니까? –

답변

9

예는이 비디오를 병합 할 수 있습니다 : 설정 시작 시간 0
2에서 AVMutableComposition에
1. 모두의 자산 추가를 변환이 예 규모에서 트랙을 변환 바람직하다.

- (void) mergeVideos{ 
    ///... after getting hold or your assets....firstAsset, secondAsset 

    AVMutableComposition* mixComposition = [AVMutableComposition composition]; 

    AVMutableCompositionTrack *firstTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo 
                     preferredTracfirst:kCMPersistentTracfirst_Invalid]; 
    [firstTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, firstAsset.duration) 
         ofTrack:[[firstAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] 
         atTime:kCMTimeZero error:nil]; 

    AVMutableCompositionTrack *secondTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo 
                     preferredTracfirst:kCMPersistentTracfirst_Invalid]; 

    [secondTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, secondAsset.duration) 
         ofTrack:[[secondAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] 
          atTime:kCMTimeZero error:nil];  

    [secondTrack setPreferredTransform:CGAffineTransformMakeScale(0.25f,0.25f)]; 

    //... export video here... 

} 
+0

고마워, 나는 그것을 밖으로 시도 할 것입니다. 불행하게도, 나는 새로운 대답에 대해 투표 할 수 없습니다. – Naga

+0

하지만 addMutableTrackWithMediaType : preferredTracfirst : API가 존재하지 않습니다. API addMutableTrackWithMediaType : preferredTrackID :가 존재합니다. API addMutableTrackWithMediaType : preferredTrackID 자체로 시도하고 내 보낸 비디오의 첫 번째 비디오 만 가져옵니다. – spd

+0

늦게 답장을 드려 죄송합니다. 당신은 2 대신 MutableComposition tract를 하나 사용해야합니다. – Splendid

2

내가 메신저 같은 일을하려고이 링크를 발견,하지만 나를 위해 그 나란히하지, 다른 비디오의 비디오 정상은, 당신은이 링크

하여 같은 일을 할 수 Video Manipulation