AVMutableVideoComposition 中的交叉淡入淡出
Posted
技术标签:
【中文标题】AVMutableVideoComposition 中的交叉淡入淡出【英文标题】:Cross-fade within AVMutableVideoComposition 【发布时间】:2011-04-19 08:36:01 【问题描述】:我已经成功地组合了一个包含多个视频剪辑的 AVMutableComposition,并且可以查看和导出它,并且我希望能够使用交叉淡入淡出在它们之间进行转换,所以我想使用 AVMutableVideoComposition。我找不到任何关于如何连续安排和播放几个 AVAsset 视频的示例。有没有人举例说明如何使用相当于 AVMutableComposition 的 insertTimeRange 的方式向 AVMutableVideoComposition 添加轨道,或者如何设置交叉淡入淡出?
[self.composition insertTimeRange:CMTimeRangeMake(kCMTimeZero,asset.avAsset.duration)
ofAsset:asset.avAsset
atTime:self.composition.frameDuration
error:nil]
【问题讨论】:
【参考方案1】:我从 Apple 的 WWDC 2010 示例代码中找到了一个名为 AVEditDemo 的示例。
https://developer.apple.com/library/ios/samplecode/AVCustomEdit/Introduction/Intro.html
示例中有很多细节,但我会总结一下:您需要同时使用 AVMutableComposition 和 AVMutableVideoComposition。将轨道单独添加到 AVMutableComposition 而不是使用更简单的 insertTimeRange,因为它允许您在轨道上设置重叠时间。轨道还需要作为具有不透明度渐变的 AVMutableVideoCompositionLayerInstructions 添加到 AVMutableVideoComposition。最后,要在 AVPlayer 中播放,您需要使用 AVMutableComposition 和 AVMutableVideoComposition 创建一个 AVPlayerItem。
似乎在 api 中更深入的每个级别——在这种情况下,从带有资产的 MPMoviePlayer 到带有 AVComposition 的 AVPlayer,最后到 AVVideoComposition——以指数方式增加必要的编码。
【讨论】:
彼得,我已经安装并运行了这个应用程序。我想知道,如何将剪辑放入应用程序中进行测试? 我没有尝试让“文件共享”视图在该演示中工作,因为在我的应用程序中我修改了一些代码并使用 UIImagePickerController 来获取剪辑。看起来像正在使用 NSDocumentDirectory 中的任何剪辑,因此如果您可以将它们放入其中,它们应该会显示出来。 网址已经失效,这是新的developer.apple.com/library/ios/samplecode/AVCustomEdit/… 这不会在 iOS 9 中转换 谢谢。它在 iOS 9 中有哪些具体问题?以上是关于AVMutableVideoComposition 中的交叉淡入淡出的主要内容,如果未能解决你的问题,请参考以下文章
在播放期间更改 AVPlayerItem 的 videoComposition 属性 (AVMutableVideoComposition)
AVMutableVideoComposition - CoreAnimation:警告,删除了未提交 CATransaction 的线程
在 AVMutableVideoComposition 中创建一个按时间间隔更改的 CATextlayer