iOS AVComposition URL 错误

出现这个问题的原因

很简单,慢速视频
通过

[[PHImageManager defaultManager] requestAVAssetForVideo:phasset options:optionForCache resultHandler:^(AVAsset * avasset, AVAudioMix * audioMix, NSDictionary * info) {

获取的视频类型,有些是直接视频(avasset),有些是视频(带配置信息)(avcomposition)

为什么会出现这个问题

苹果为了更快的处理慢镜头视频(编辑模式),并非每次修改视频都重新写入,有时只是更改它的配置,avcomposition就是干这个的,里面包含了若干avasset对象,若干音轨,以及时间轴的概念。

直接从avcomposition获取avasset

这样做是不可取的,因为即便获取到avaset也不是你预览时看到的样子

如何得到这种视频的avasset

使用avmutablecomposition,把这个avcomposition当作一个avsset放进去,并生成一个新视频,那么这个新视频就是你需要的avaset

参考:
https://stackoverflow.com/questions/32081057/how-to-convert-an-avmutablevideocomposition-to-an-avasset

你可能感兴趣的:(iOS AVComposition URL 错误)