Pobieranie migawki wideo do miniaturki

Nagrywam wideo z kamery iPhone ' a za pomocą kodu AVCam dostarczonego przez apple.

Po nagraniu wideo jest on zapisywany w bibliotece zdjęć.

Nowy widok jest następnie ładowany, tutaj muszę mieć miniaturę obrazu wideo.

Mam ścieżkę do filmu:

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

Nie wiem, jak sprawić, by pierwsza klatka filmu była użyta jako miniatura.

Każda pomoc będzie bardzo mile widziana i dziękuję za poświęcony czas.


EDIT

Skończyło się na tym, nie jestem pewien, dlaczego zwraca obraz bokiem?

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

}
Author: Max Girkens, 2012-02-05

1 answers

To fix ustawienie orientacji miniatury appliesPreferredTrackTransform na YES w instancji AVAssetImageGenerator. Jeśli dodasz własną kompozycję wideo, musisz dołączyć odpowiednią transformację, aby obrócić wideo zgodnie z potrzebami.

generate.appliesPreferredTrackTransform = YES;

Pamiętaj o zwolnieniu uzyskanego odniesienia do obrazu za pomocą CGImageRelease.

Aby zażądać wielu miniaturek, lepiej zrobić to asynchronicznie za pomocą generateCGImagesAsynchronouslyForTimes:completionHandler:.

 45
Author: djromero,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-05 01:48:06