关于 AVExportSession 和 AVVideoComposition 的问题

qq_38670430 2018-09-10 06:40:38
我现在遇到的问题是 在系统相册里的拿出来的 视频资源无法使用 AVExportSession 导出,
首先,我在相册页面选中视频,获取了视频资源地址,然后到了裁剪页面,这里我用AVExportSession 第一次导出视频(我用了 AVVideoComposition 来 调整视频方向。
当裁剪和调整方向完毕,成功导出新的视频地址,到了下个页面 使用 AVVideoComposition 为视频添加滤镜,然后再导出视频,但是这个时候 就会报错

Error Domain=AVFoundationErrorDomain Code=-11841 "Operation Stopped" UserInfo={NSLocalizedFailureReason=The video could not be composed., NSLocalizedDescription=Operation Stopped, NSUnderlyingError=0x1c405da90 {Error Domain=NSOSStatusErrorDomain Code=-17390 "(null)"}}


let exportSession = AVAssetExportSession(asset: composition, presetName: AVAssetExportPresetHighestQuality)
exportSession?.outputFileType = AVFileType.mov
exportSession?.outputURL = URL(fileURLWithPath: path)
exportSession?.shouldOptimizeForNetworkUse = true
exportSession?.videoComposition = videoComposition

exportSession?.exportAsynchronously {
DispatchQueue.main.async {
if exportSession?.status == .completed {
completeHandler(path, nil)
} else {
completeHandler(nil, exportSession?.error)
}
}
}


当我把 这句代码注释掉,就可以导出?

exportSession?.videoComposition = videoComposition


有没有大神解答
...全文
1174 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_38670430 2018-09-10
  • 打赏
  • 举报
回复
还没解决。。。只是能 export 了 但是 CIFilter 的滤镜全没了
qq_38670430 2018-09-10
  • 打赏
  • 举报
回复
已经解决了,但是不知道什么原因

我把 AVAssetExportPresetHighestQuality 改成 AVAssetExportPresetPassthrough 就好了
能有人解答下 他们有什么区别吗

1,420

社区成员

发帖
与我相关
我的任务
社区描述
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。
swift 技术论坛(原bbs)
社区管理员
  • Swift
  • 网罗开发
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧