9

Yo sabía que se podía combinar varios clips y crear un solo vídeo añadiendo una tras otra usando AVFoundation classes- AVURLAsset, AVMutableComposition, etc. AVMutableCompositionTrackEdición de video con iOS: ¿es posible fusionar (uno al lado del otro, uno detrás de otro) dos archivos de video en uno usando las clases de AVFoundation de iOS 4?

Hay aplicaciones como 'video-Joiner' que haga eso.

Lo que quiero hacer es juntar 2 videos.

Mi idea app - SelfInterviewer favor no robar :)

Primero grabar vídeo 1 utilizando frontal frente a la cámara De pie de izquierda a la estructura. Luego el video 2 parado a la derecha. En el video 1 hago una pregunta y en el video 2 respondo.

Cuando me fusiono, debería aparecer como si estuviera siendo entrevistado por mí mismo.

Estoy casi seguro de que no es factible en iOS, solo quería confirmarlo.

Además, si es un no ir, estaría interesado en cualquier solución del lado del servidor: suba los dos videos y logre lo mismo. Creo que Adobe Premiere puede hacerlo. No estoy seguro de si tienen alguna API pública.

Apreciar cualquier idea.

Gracias.

+0

¿Encontró una solución para esto? –

Respuesta

9

Sí, es posible fusionar 2 videos:
1. Añadir los activos a un AVMutableComposition en la hora de inicio 0.
2. Ajuste el preferido Transformar a las pistas, en este ejemplo la escala de transformar.

- (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

gracias, lo intentaré. Lamentablemente, no puedo votar sobre la respuesta ya que soy nuevo en SO. – Naga

+0

Pero, addMutableTrackWithMediaType: preferredTracfirst: API no existe. Solo la API addMutableTrackWithMediaType: preferredTrackID: existe. Intenté con la API addMutableTrackWithMediaType: preferredTrackID y solo obtengo el primer video del video exportado. – spd

+0

Lo siento por la respuesta tardía. Deberías usar un tramo de Composición mutable en lugar de dos. – Splendid

2

me encontré con este enlace cuando estoy tratando de hacer lo mismo, pero para mí no es al lado del otro, la parte superior de vídeo de otro vídeo, puede hacer lo mismo por este enlace

Video Manipulation

Cuestiones relacionadas