2014-08-27 43 views
0

我使用AVFoundation錄製視頻,然後允許用戶繪製它,然後將其上傳到parse.com期運用AVFoundation錄製視頻,然後將其上傳到parse.com

我的問題是解析API需要的NSData到視頻上傳到服務器上,但我不知道我怎樣才能讓NSData的從AVFoundation,這是我的最後一個代碼((我主要應用在視頻平局)){

- (void)applyVideoEffectsToComposition:(AVMutableVideoComposition *)composition size:(CGSize)size 
{ 
    UIGraphicsBeginImageContext(_super_view.bounds.size); 
    [_super_view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    /// end 

    // 1 - set up the overlay 
    CALayer *overlayLayer = [CALayer layer]; 
    UIImage *overlayImage = nil; 

    overlayImage =image; 

    [overlayLayer setContents:(id)[overlayImage CGImage]]; 
    overlayLayer.frame = CGRectMake(0, 0, 640,920); 
    [overlayLayer setMasksToBounds:YES]; 

    // 2 - set up the parent layer 
    CALayer *parentLayer = [CALayer layer]; 
    CALayer *videoLayer = [CALayer layer]; 
    parentLayer.frame = CGRectMake(0, 0,0,0); 
    videoLayer.frame = CGRectMake(0, 0, 640,920); 
    [parentLayer addSublayer:videoLayer]; 
    [parentLayer addSublayer:overlayLayer]; 

    // 3 - apply magic 
    composition.animationTool = [AVVideoCompositionCoreAnimationTool 
           videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:videoLayer inLayer:parentLayer]; 


} 

的話,我能做些什麼來上傳視頻服務器..?

回答

0

可以使用AVAssetExportSession做到這一點:

AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset:composition presetName:AVAssetExportPresetHighestQuality]; 
exporter.outputURL=url; 
exporter.outputFileType = AVFileTypeQuickTimeMovie; 
exporter.shouldOptimizeForNetworkUse = YES; 
[exporter exportAsynchronouslyWithCompletionHandler:^{ 
    //Video is saved to file path 
    }); 
}]; 

url是文件路徑的NSURL。

一旦文件被保存到文件的路徑,您可以在使用取 [NSData的initWithContentsOfURL:URL]

然後NSData的轉換成PFFile,你是好去!

+0

非常感謝您的幫助,但(exportAsynchronouslyWithCompletionHandler :)需要時間來拍攝長視頻或短視頻。有些時候,有什麼辦法讓它更快? – 2014-08-27 19:49:55

+0

不幸的是,爲了能夠使用視頻,您將不得不導出視頻,這基本上會將視頻轉換爲更常用的視頻格式,而不是您創建的視頻。沒有辦法繞過它。但是,這整個過程是異步完成的,所以用戶不必等到過程完成。 – 2014-08-27 21:07:36

+0

是真的!謝謝你,我的工作+1 – 2014-08-29 22:33:10

相關問題