Мне удалось решить эту проблему после многих часов тестирования. Есть две вещи, которые мне нужно было изменить.
1) добавьте «точную» опцию при создании актива.
NSDictionary *options = @{AVURLAssetPreferPreciseDurationAndTimingKey:@YES};
AVURLAsset *videoAsset3 = [AVURLAsset URLAssetWithURL:clip3URL options:options];
2) не использовать
CMTime duration3 = [videoAsset3 duration];
используйте вместо
AVAssetTrack *videoAsset3Track = [[videoAsset3 tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
CMTime duration3 = videoAsset3Track.timeRange.duration;
Я узнал об этом после того, как установил синий цвет фона AVPlayer, затем заметил появление синих рамок, поэтому проблема заключалась в таймингах. После того, как я изменил настройки, указанные выше, все видео выровнялись при использовании:
AVMutableCompositionTrack *videoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo
preferredTrackID:kCMPersistentTrackID_Invalid];
[videoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, duration3)
ofTrack:videoAsset3Track
atTime:kCMTimeZero error:&error];