2012-02-05 20 views
25

Estoy grabando un video de la cámara del iPhone utilizando el código AVCam proporcionado por Apple.Obtención de una instantánea de video para la miniatura

Después de grabar el video, se guarda en la biblioteca de fotos.

se carga un nuevo punto de vista, aquí tengo que tener una imagen en miniatura del vídeo.

que tienen una ruta de acceso al video:

file://localhost/private/var/mobile/Applications/ED45DEFC-ABF9-4A5E-9102-21680CC1448E/tmp/output.mov 

Me parece que no puede averiguar cómo conseguir el primer fotograma del vídeo que se utilizará como una miniatura.

Cualquier ayuda sería muy apreciada y gracias por su tiempo.


EDITAR

Terminé usando esto, no estoy seguro de por qué se devuelve la imagen de lado?

- (UIImage*)loadImage { 

    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:vidURL options:nil]; 
    AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset]; 
    NSError *err = NULL; 
    CMTime time = CMTimeMake(1, 60); 
    CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:NULL error:&err]; 
    NSLog(@"err==%@, imageRef==%@", err, imgRef); 

    return [[UIImage alloc] initWithCGImage:imgRef]; 

} 

Respuesta

45

Para fix la orientación miniatura establece appliesPreferredTrackTransform-YES en el AVAssetImageGenerator ejemplo. Si agrega su propia composición de video, deberá incluir la transformación correcta para rotar el video como desee.

generate.appliesPreferredTrackTransform = YES; 

Recuerde liberar la referencia de imagen obtenida con CGImageRelease.

Solicitar varias imágenes en miniatura que es mejor que hacer de forma asíncrona con generateCGImagesAsynchronouslyForTimes:completionHandler:.

+0

+1 Perfecto, gracias! – bentford

+0

+1 ¡Eso es exactamente lo que quería agregar! :) –

+0

Me da un error AVErrorOperationNotSupportedForAsset. por favor ayuda – ruyamonis346

Cuestiones relacionadas