AVAssetExportSession在录制结束后添加元数据

时间:2014-01-27 10:51:09

标签: avassetexportsession

用例如下:使用AVCaptureFileOutput记录视频并将其保存在临时位置。录制完成后,一些元数据将添加到此视频中,并在新位置以新文件名保存。

录制部分正在处理存储在临时位置的文件。现在我必须重命名它,添加元数据并将其再次保存到其他位置。

1)我可以编辑:

中的元数据
- (void)captureOutput:(AVCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL fromConnections:(NSArray *)connections error:(NSError *)error;

delagate方法?

2)我的第二种方法是使用AVAssetExportSession来执行此操作。

AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetMediumQuality];
    exportSession.outputFileType = AVFileTypeQuickTimeMovie;
    exportSession.metadata = NEW ARRAY OF METADATA;

    NSString* outputPath = [[PLFileManager sharedFileManager] pathForAsset:_newAsset];
    NSURL* url = [NSURL URLWithString:outputPath];
    exportSession.outputURL = url;

    [[NSFileManager defaultManager] removeItemAtURL:url error:nil];

    [exportSession exportAsynchronouslyWithCompletionHandler:^(void){
               NSLog(@"Exported to [%@] %@", exportSession.outputURL, exportSession.error);
    }];

对于这种方法,我收到以下错误:

导出到[///var/mobile/Applications/7F9BC121-6F58-436E-8DBE-33D8BC1A4D79/Documents/Temp/final.mov]错误域= AVFoundationErrorDomain代码= -11800“操作无法完成”UserInfo = 0x1555f440 {NSLocalizedDescription =操作无法完成,NSUnderlyingError = 0x1555c7a0“操作无法完成。(OSStatus error -12780。)”,NSLocalizedFailureReason =发生未知错误(-12780)}

有人能告诉我这里做错了什么吗?或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

好的我弄清楚我做错了什么。而不是:

NSURL* url = [NSURL URLWithString:outputPath];

我不得不使用:

NSURL* outputUrl = [NSURL fileURLWithPath:outputPath];

Expanation