2010-01-31 3 views
3

Comment obtenir une vignette d'une vidéo importée à partir du rouleau de la caméra ou de la caméra elle-même?Obtention de vignettes vidéo iPhone

Cela a déjà été demandé et a été répondu. Cependant, les réponses sont un peu nul pour moi.

Ce fil iphone sdk > 3.0 . Video Thumbnail? a quelques options qui se résument à:

  1. Crawl certains répertoire de système de fichiers pour un fichier JPG avec la dernière date de modification qui devrait correspondre à la vidéo que vous venez choisi. C'est extrêmement compliqué, et cela implique de s'introduire dans les annuaires qu'Apple ne voudrait probablement pas que je fasse.
  2. Utilisez ffmpeg. Mais c'est tellement général que je n'arrive pas à comprendre les étapes qu'il faudrait pour importer ffmpeg dans mon projet et l'appeler pour extraire des images.

N'y a-t-il vraiment aucun autre moyen? Cela me semble être un énorme oubli dans le SDK. Je veux dire que le sélecteur vidéo a des miniatures, donc Apple doit faire quelque chose pour générer ceux-ci, mais ne nous le permet pas?

+1

Il y a beaucoup de choses qu'Apple peut faire mais vous n'êtes pas autorisé à le faire. – kennytm

+0

En effet. Et de tels faits me rendent tout à fait grincheux. –

Répondre

3

meilleure méthode que j'ai trouvé ... MPMoviePlayerController thumbnailImageAtTime:.. timeOption

... voir ce de Nevermind premier commentaire ci-dessous Voilà la réponse

.
+0

Pourquoi ne pas penser? C'est une réponse parfaitement acceptable. Selon vos besoins, cette solution d'une ligne pourrait être bien. – memmons

1

Nous utilisons ffmpeg, vous pouvez explorer notre site pour obtenir des conseils sur la façon de le faire, éventuellement je veux mettre en place un tutoriel.

Mais en ce moment je suis plus concentré sur le fait d'obtenir ffmpeg pour lire des films. Comprendre une fois que vous avez ce code le code pour générer une vignette est juste un sous-ensemble de cela. Ce tutoriel nous a aidé, et peut-être la majorité des développeurs qui utilisent ffmpeg, à commencer à le faire. dranger.com/ffmpeg/ "

Enfin,

d'Apple aurait probablement peut-être pas de problèmes avec l'aide de la miniature générée par la caméra vidéo, je ne pense pas que son dans un dossier privé mais qui est seulement créé par la caméra et non pour les vidéos cueillies dans le sélecteur d'image

+0

Merci, je vais passer par là et voir si cela fonctionne, mais semble prometteur. –

12
 -(void)testGenerateThumbNailDataWithVideo { 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"IMG_0106" ofType:@"MOV"]; 
NSURL *url = [NSURL fileURLWithPath:path]; 
    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:url 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]; 
    [generate release]; 
    NSLog(@"err==%@, imageRef==%@", err, imgRef); 
    UIImage *currentImg = [[UIImage alloc] initWithCGImage:imgRef]; 
    static BOOL flag = YES; 
    if (flag) { 
     NSData *tmpData = UIImageJPEGRepresentation(currentImg, 0.8); 
     NSString *path = [NSString stringWithFormat:@"%@thumbNail.png", NSTemporaryDirectory()]; 
     BOOL ret = [tmpData writeToFile:path atomically:YES]; 
     NSLog(@"write to path=%@, flag=%d", path, ret); 
     flag = NO; 
    } 
    [currentImg release]; 
} 
+1

+ ∞ c'est ce que je cherchais! Tu as sauvé ma journée !!!!!!!!!!!!!! – SpaceDog

+0

Merci lot.it fonctionne bien –

+0

comment fixez-vous l'orientation des vignettes? –