我需要能够拍摄照片中的视频并重新渲染,包括及时剪辑,更改宽度和高度以及帧速率。当然,我需要从:
开始 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,将其写入文件系统。
我不需要将修改后的视频写回照片,我实际上需要文件系统上的视频,因为我会将其上传到我们的服务器。
答案 0 :(得分:2)
fullSizeImageURL
用于处理Photo资产。在处理视频时,您需要avAsset
属性。通过编写新的视频文件来修改实际视频,而不是元数据。
为此,您可以在AVMutableComposition中使用avAsset
:
将avAsset视频轨道(AVAssetTrack
)的适当时间范围插入AVMutableCompositionTrack
。那将是你的修剪。
使用图层说明适当地放置/调整大小。 (AVMutableVideoCompositionLayerInstruction
)进行裁剪和缩放。