Estoy tratando de crear imágenes en miniatura para archivos de vídeo:¿Es posible hacer que AVURLAsset funcione sin una extensión de archivo?
- (UIImage*) thumbnailForVideoAtURL: (NSURL*) videoURL
{
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:videoURL options:nil];
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
CGImageRef imageHandle = [generator copyCGImageAtTime:kCMTimeZero actualTime:NULL error:NULL];
if (imageHandle) {
UIImage *frameImage = [UIImage imageWithCGImage:imageHandle];
CFRelease(imageHandle);
return frameImage;
} else {
return nil;
}
}
El problema es que los archivos de vídeo se almacenan en un content-addressable store y no tienen extensiones. Esto parece tirar AVURLAsset
fuera, como el activo se crea, pero la lectura de la imagen Marco me sale el siguiente error:
Error Domain=AVFoundationErrorDomain Code=-11828 "Cannot Open" UserInfo=0x167170 {NSLocalizedFailureReason=This media format is not supported., NSUnderlyingError=0x163a00 "The operation couldn’t be completed. (OSStatus error -12847.)", NSLocalizedDescription=Cannot Open}
está documentado el mencionado o en alguna parte? No puedo creer que realmente me veo obligado a pasar la información del formato de archivo a través del nombre del archivo. El argumento options
para el inicializador AVURLAsset
parece un buen lugar para suministrar el tipo de archivo, pero según la documentación no parece haber soporte para eso.
PS. He probado el código, el mismo archivo con la extensión correcta produce las miniaturas muy bien.
¿Puede decirme por favor? que cómo creó el enlace al archivo, en realidad tengo una url de video you tube y tengo que crear la miniatura de ese video usando su url –
¿Quiere decir una URL de archivo local, o una URL de HTTP HTTP regular? Una URL de archivo local se puede enlazar fácilmente usando '[NSFileManager linkItemAtURL: toURL: error:]'. Crear una miniatura desde una URL de video de YouTube HTTP es digna de una [pregunta separada] (http://stackoverflow.com/questions/ask), en mi humilde opinión. – zoul
Aún no se ha solucionado en iOS7 y '[[AVAudioPlayer alloc] initWithContentsOfURL: url error: nil];' no tiene problema con los archivos que no tienen extensiones –