Получение моментального снимка видео для миниатюры
Я записываю видео с камеры 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];
}
Ответы
Ответ 1
Чтобы зафиксировать ориентацию эскизов, установите appliesPreferredTrackTransform
- YES
в экземпляре AVAssetImageGenerator
. Если вы добавите свою собственную композицию видео, вам нужно будет включить правильное преобразование, чтобы повернуть видео по мере необходимости.
generate.appliesPreferredTrackTransform = YES;
Не забудьте освободить полученную ссылку на изображение с помощью CGImageRelease
.
Чтобы запросить несколько эскизов, лучше делать асинхронно с generateCGImagesAsynchronouslyForTimes:completionHandler:
.