Миниатюра iOS из Amazon S3 URL MP4/MOV

У меня есть несколько видео, загруженных в корзину Amazon S3. Я хочу отображать видео в формате списка в приложении iOS вместе с миниатюрой.

Предположим, что URL-адрес https://testurlatamzons3/mybucket/somefile.mp4, и я хочу получить миниатюру с URL-адреса без фактической загрузки или потоковой передачи файла.

Я видел некоторые примеры, и я могу загрузить UIImage и отобразить его в UIImageView. Пример, который я нашел, был здесь. Но для файла размером 350 МБ на amazon s3 требуется около 1,9 МБ передачи данных только для того, чтобы получить миниатюру. Есть ли более оптимизированный или другой подход к получению миниатюр для файлов mp4/mov, размещенных на Amazon S3?

С уважением,

Нирав


person Nirav    schedule 28.01.2015    source источник


Ответы (2)


вы можете получить миниатюры с помощью 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];
person Huy Nghia    schedule 28.01.2015
comment
^ Это то, что вам нужно. - person Joey Clover; 28.01.2015

Я думаю, у вас есть два варианта:

  1. Чтобы иметь некоторый API, который делает то, что вы хотите, и возвращает URL-адрес эскиза в ваше приложение.

  2. Чтобы загрузить только небольшую часть видео и получить кадр из него, но это зависит от формата вашего видео, возможно, это может помочь для видео MP4

https://github.com/ohminteractive/OHMTagLib

person Boda    schedule 28.01.2015