使用iOS8中的新Photos Framework重新渲染视频

时间:2014-09-26 20:45:08

标签: ios8 alassetslibrary phasset

我需要能够拍摄照片中的视频并重新渲染,包括及时剪辑,更改宽度和高度以及帧速率。当然,我需要从:

开始
    PHContentEditingInputRequestOptions *options = [[PHContentEditingInputRequestOptions alloc] init];

    [self.asset requestContentEditingInputWithOptions:options completionHandler:^(PHContentEditingInput *contentEditingInput, NSDictionary *info) {

        // Get full image

        NSURL *url = [contentEditingInput fullSizeImageURL];

    }];

我应该能够调整宽度,高度和持续时间。从中获取NSData,将其写入文件syset.m

但网址为零,这意味着我无法使用新的照片框架编辑视频。 (ALAsset使用AVAssetExportSession没有问题。)这是有道理的,因为Apple Dev示例代码也无法编辑视频。

现在,为了让生活更轻松,我可以将该URL传递给AVAssetExportSession,但我不能,因为它是零。如果我只是修改宽度,高度和持续时间,我仍然需要从中获取NSData,将其写入文件系统。

我不需要将修改后的视频写回照片,我实际上需要文件系统上的视频,因为我会将其上传到我们的服务器。

1 个答案:

答案 0 :(得分:2)

fullSizeImageURL用于处理Photo资产。在处理视频时,您需要avAsset属性。通过编写新的视频文件来修改实际视频,而不是元数据。

为此,您可以在AVMutableComposition中使用avAsset

将avAsset视频轨道(AVAssetTrack)的适当时间范围插入AVMutableCompositionTrack。那将是你的修剪。

使用图层说明适当地放置/调整大小。 (AVMutableVideoCompositionLayerInstruction)进行裁剪和缩放。