저는 AVFoundation 프레임 워크를 사용하고 있습니다. 3 개의 비디오를 추가하여 단일 비디오로 병합하려고하지만 문제는 3 개의 비디오를 추가 할 수 없다는 것입니다. AVMutableComposition을 사용하여 추가 할 수있는 비디오의 수를 알고 싶습니다. 2 개 이상의 비디오를 추가 할 수 있습니까? 어떤 도움이 필요합니까? videoAsset2.duration, 이미 그 시점에서 비디오를 가질 수있다 :AVMutableComposition이 4 개의 비디오 트랙을 추가 할 수 없습니다.
다음은 atTime에서 세 번째 비디오를 추가하려는
/////////////////////////////////////////////
// Add video tracks 1 to mutable compositon//
/////////////////////////////////////////////
let firstTrack = compostion.addMutableTrackWithMediaType(AVMediaTypeVideo, preferredTrackID: Int32(kCMPersistentTrackID_Invalid))
do{
try firstTrack.insertTimeRange(CMTimeRangeMake(kCMTimeZero, videoAsset1.duration),
ofTrack: videoAsset1.tracksWithMediaType(AVMediaTypeVideo)[0], atTime: kCMTimeZero)
}
catch{
print("failed to add first track")
}
print("Time to add 1 track\(CMTimeGetSeconds(videoAsset1.duration))")
/////////////////////////////////////////////
// Add video tracks 2 to mutable compositon//
/////////////////////////////////////////////
let secondTrack = compostion.addMutableTrackWithMediaType(AVMediaTypeVideo, preferredTrackID: Int32(kCMPersistentTrackID_Invalid))
do{
try secondTrack.insertTimeRange(CMTimeRangeMake(kCMTimeZero, videoAsset2.duration),
ofTrack: videoAsset2.tracksWithMediaType(AVMediaTypeVideo)[0], atTime: videoAsset1.duration)
}
catch{
print("failed to add second track")
}
print("Time to add second track\(CMTimeGetSeconds(videoAsset2.duration))")
/////////////////////////////////////////////
// Add video tracks 3 to mutable compositon//
/////////////////////////////////////////////
let thirdTrack = compostion.addMutableTrackWithMediaType(AVMediaTypeVideo, preferredTrackID: Int32(kCMPersistentTrackID_Invalid))
do{
try thirdTrack.insertTimeRange(CMTimeRangeMake(kCMTimeZero, videoAsset3.duration), ofTrack: videoAsset3.tracksWithMediaType(AVMediaTypeVideo)[0], atTime: videoAsset2.duration)
}
catch{
print("failed to add third track")
}
고마워요, 좋은 답변입니다. 하지만 난 이전에 이것을 해결했습니다. 이것은 나의 실수였습니다. – varinder