0

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

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

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

        // Get full image

        NSURL *url = [contentEditingInput fullSizeImageURL];

    }];

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

但是 url 是 nil,这对我来说意味着我无法使用新的 Photos 框架编辑视频。(使用 AVAssetExportSession 时,ALAsset 对此没有问题。)这是有道理的,因为 Apple Dev 示例代码也无法编辑视频。

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

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

4

1 回答 1

2

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

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

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

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

于 2014-09-26T22:11:23.793 回答