代码之家  ›  专栏  ›  技术社区  ›  Nirav

亚马逊S3 MP4/MOV URL中的iOS缩略图

  •  0
  • Nirav  · 技术社区  · 10 年前

    我在Amazon S3 bucket上上传了几个视频。我想在iOS应用程序中以列表格式显示视频以及缩略图。

    假设url为 https://testurlatamzons3/mybucket/somefile.mp4 我想从URL获取缩略图,而不需要实际下载或流式传输文件。

    我看过一些例子,我能够下载UIImage并在UIImageView上显示它。我找到的例子是 here 但是对于amazons3上的350MB文件,仅获取缩略图就需要大约1.9mb的数据传输。有没有更优化或不同的方法来获取AmazonS3上托管的mp4/mov文件的缩略图

    当做

    尼拉夫

    2 回复  |  直到 7 年前
        1
  •  4
  •   Huy Nghia    10 年前

    您可以随时使用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];
    
        2
  •  0
  •   Boda    10 年前

    我想你有两个选择:

    1. 使用一些API来实现您的愿望,并将缩略图图像的URL返回到应用程序

    2. 下载视频的一小部分并从中获取一帧,但这取决于视频的格式,这可能对MP4视频有所帮助

    https://github.com/ohminteractive/OHMTagLib