iOS Video Editing - Возможно ли объединить (рядом друг с другом, не один за другим) два видеофайла в один, используя классы iOS 4 AVFoundation?
Я знаю, что вы можете объединить несколько клипов и создать одно видео, добавляя один за другим, используя классы AVFoundation - AVURLAsset, AVMutableComposition, AVMutableCompositionTrack и т. Д.
Есть такие приложения, как "Video-Joiner", которые делают это.
Я хочу сопоставить 2 видео.
Идея моего приложения - SelfInterviewer, пожалуйста, не кради:)
Сначала я записываю видео 1, используя фронтальную камеру, которая стоит слева от кадра. Тогда видео 2 стоит направо. В видео 1 задайте вопрос, а в видео 2 я отвечу.
Когда я сливаюсь, это должно выглядеть так, как будто я сам допрашиваю.
Я почти уверен, что это неосуществимо в iOS, просто хотел подтвердить.
Кроме того, если это не пойдет, меня заинтересуют любые решения на стороне сервера - загрузите два видео и выполните то же самое. Я думаю, что премьера Adobe может сделать это. Не уверен, что у них есть публичный API.
Ценю любые идеи.
Благодарю.
2 ответа
Да можно объединить 2 видео:
1. Добавьте оба ресурса в AVMutableComposition в момент начала 0.
2. Установите предпочтительное Преобразование для дорожек, в этом примере преобразование масштаба.
- (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...
}
Я нашел эту ссылку, когда я пытаюсь сделать то же самое, но для меня это не бок о бок, его видео вверху другого видео, Вы можете сделать то же самое по этой ссылке