我在Amazon S3存储桶上上传了几个视频。我想在iOS应用程序中以列表格式显示视频以及缩略图。
假设网址为https://testurlatamzons3/mybucket/somefile.mp4,我想从网址获取缩略图而不实际下载或流式传输文件。
我见过某些例子,我可以下载UIImage并在UIImageView上显示它。我发现的例子是here 但是对于亚马逊s3上的350MB文件,只需要1.9mb的数据传输就可以获得缩略图。是否有更优化或不同的方法来获取托管在Amazon S3上的mp4 / mov文件的缩略图
此致
Nirav
答案 0 :(得分:4)
你可以随时随地使用AVFoundation获取缩略图,任意大小:
AVURLAsset *asset=[[AVURLAsset alloc] initWithURL:yourVideoUrl options:nil];
AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:asset];
generator.appliesPreferredTrackTransform = YES;
CMTime thumbTime = CMTimeMakeWithSeconds(5,30);
AVAssetImageGeneratorCompletionHandler handler = ^(CMTime requestedTime,
CGImageRef im,
CMTime actualTime,
AVAssetImageGeneratorResult result,
NSError *error){
NSLog(@"make sure generator is used in this block and it'll work %@", generator);
};
generator.maximumSize = CGSizeMake(320, 180);
[generator generateCGImagesAsynchronouslyForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:thumbTime]] completionHandler:handler];
答案 1 :(得分:0)
我猜你有两个选择:
要有一些符合您需要的API,并将缩略图的网址返回给您的应用
要下载视频的一小部分并从中抓取一帧,但这取决于您的视频格式,这可能对MP4视频有所帮助