2011-06-02 14 views
11

Podemos recortar imágenes. ¿Podemos recortar videos?Recortar videos en iOS

+0

hola, ¿encuentras alguna respuesta? Necesito implementar el mismo – SriPriya

+0

@Priya. Lo siento, no recibí ninguna respuesta. En espera de pista o sugerencia del experto – Anand

+0

gracias, si encontré alguna, le informaré – SriPriya

Respuesta

7

Como el video es una colección de imágenes, puede recortar todos los fotogramas desde el video y después de crear un nuevo video. guía AVFoundation describen algunas tareas: Putting it all Together: Capturing Video Frames as UIImage Objects Después de esto, los cultivos de imágenes y escritura de vídeo

Puede usar un escritor activo para producir un archivo de película de QuickTime o un archivo MPEG-4 de los medios de comunicación tales como tampones de muestra o aún imágenes.

Ver para más detalles AV Foundation Framework

+0

Gracias por responder. El enlace que proporcionó es realmente bueno. Al usar CMSampleBuffer, obtengo imágenes pero cómo convertirlas en video. – Anand

+0

El enlace "Poniéndolo todo junto ..." ya no funciona, existe un nuevo enlace, u otro tutorial que alguien puede proporcionar – iqueqiorio

+0

@beryllium link no funciona tan downvoted. sin duda, tu respuesta es correcta. – KDeogharkar

0

que no es tan simple como imágenes

pero podría ser tan fácil como la especificación correcta del vídeo, pero no hay suficiente información.

en la configuración de decodificación, puede manipular los píxeles de vídeo por la geometría, es decir, anamórfico, exprimido, estirado y también jugador/configuración del navegador, la ventana de la imagen o la ventana del reproductor, puede especificar una ventana del reproductor pequeño y un nivel de ampliación. si permite o no permite el zoom/ampliación, forzará un draw de offscreeen o barras negras.

codifico el tamaño y la plataforma correctos para obtener la mejor calidad, este tipo de correcciones son 'kludges' pero funcionan en caso de apuro. agarraría el sdk quicktime y hurgaría.

2

Debería poder hacer esto usando AVAssetExportSession, AVVideoComposition, y AVVideoCompositionCoreAnimationTool (y simplemente configure una jerarquía CALayer con el posicionamiento que desee). Aunque no estoy seguro de si esta es la forma más eficiente.

5
[[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil]; 
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:inputURL options:nil]; 
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetLowQuality]; 
exportSession.outputURL = outputURL; 
exportSession.shouldOptimizeForNetworkUse = YES; 
exportSession.outputFileType = AVFileTypeQuickTimeMovie; 

CMTime start = CMTimeMakeWithSeconds(1.0, 600); 
CMTime duration = CMTimeMakeWithSeconds(120.0, 600); 
CMTimeRange range = CMTimeRangeMake(start, duration); 
exportSession.timeRange = range; 

[exportSession exportAsynchronouslyWithCompletionHandler:^(void){ 
       handler(exportSession); 
       [exportSession release];}]; 

Aquí obtenemos un video de los primeros 2 minutos.