2013-07-02 122 views
0

我正在应用程序中,我应该提取视频的帧。所以在做了很多R后,我发现了以下方法。在iphone中使用哪种方法从视频中提取帧?

1)使用iFrameExtractor,它使用ffmpeg框架https://github.com/lajos/iFrameExtractor

2)使用内置的财产的MPMoviePlayerController

MPMoviePlayerController *movie = [[MPMoviePlayerController alloc] initWithContentURL: [NSURL URLWithString:@"Video.mp4"]]; 
NSNumber t1 = 10; 
NSNumber t2 = 11; 
NSArray *TimeStamp = [NSArray arrayWithObjects:t1,t2,nil]; 
[movie requestThumbnailImagesAtTimes:TimeStamp timeOption:MPMovieTimeOptionExact]; 

3)使用AVAssetImageGenerator

所以我很困惑利用到choose.Any其中一个方法请列出的缺点告诉我正确的方法其他方法。

我有提取视频的所有帧(其可以是最大2分钟)

由于提前。 :)

+0

你打算如何处理图像,他们需要全分辨率? – Wain

+0

不,我必须使用它作为缩略图。 –

回答

1

您将遇到一些法律问题来处理尝试使用编译到iOS应用程序的ffmpeg,有关更多信息,请参阅compatibility-between-the-iphone-app-store-and-the-lgpl。我以前没有听说过AVAssetImageGenerator,但copyCGImageAtTime方法看起来就像您想要的小缩略图一样,应该很容易创建UIImage并传入返回的CGImageRef,然后将结果保存为PNG。 requestThumbnailImagesAtTimes API可能只是调用AVAssetImageGenerator。