Подтвердить что ты не робот

Получение моментального снимка видео для миниатюры

Я записываю видео с камеры iPhone с помощью кода AVCam, предоставленного из apple.

После записи видео сохраняется в библиотеке фотографий.

Затем загружается новое представление, здесь мне нужно иметь миниатюру изображения для видео.

У меня есть путь к видео:

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

Я не могу представить, как получить первый кадр видео для использования в качестве миниатюры.

Любая помощь будет очень оценена и спасибо за ваше время.


ИЗМЕНИТЬ

Я закончил использовать это, я не уверен, почему он возвращает изображение сбоку?

- (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];

}
4b9b3361

Ответ 1

Чтобы зафиксировать ориентацию эскизов, установите appliesPreferredTrackTransform - YES в экземпляре AVAssetImageGenerator. Если вы добавите свою собственную композицию видео, вам нужно будет включить правильное преобразование, чтобы повернуть видео по мере необходимости.

generate.appliesPreferredTrackTransform = YES;

Не забудьте освободить полученную ссылку на изображение с помощью CGImageRelease.

Чтобы запросить несколько эскизов, лучше делать асинхронно с generateCGImagesAsynchronouslyForTimes:completionHandler:.