我已经成功地用多个视频剪辑组成了一个 AVMutableComposition,并且可以查看和导出它,并且我希望能够使用交叉淡入淡出在它们之间进行转换,所以我想使用 AVMutableVideoComposition。我找不到任何关于如何连续排列和播放几个 AVAsset 视频的示例。有没有人有一个示例,说明如何使用相当于 AVMutableComposition 的 insertTimeRange 的功能将轨道添加到 AVMutableVideoComposition,或者如何设置交叉淡入淡出?
[self.composition insertTimeRange:CMTimeRangeMake(kCMTimeZero,asset.avAsset.duration)
ofAsset:asset.avAsset
atTime:self.composition.frameDuration
error:nil]
我从 Apple 的 WWDC 2010 示例代码中找到了一个名为 AVEditDemo 的示例。
https://developer.apple.com/library/ios/samplecode/AVCustomEdit/Introduction/Intro.html https://developer.apple.com/library/ios/samplecode/AVCustomEdit/Introduction/Intro.html
示例中有很多细节,但我将总结一下:您需要同时使用 AVMutableComposition 和 AVMutableVideoComposition。将轨道单独添加到 AVMutableComposition,而不是使用更简单的 insertTimeRange,因为它允许您在轨道上设置重叠时间。还需要将轨道添加到 AVMutableVideoComposition 作为带有不透明度渐变的 AVMutableVideoCompositionLayerInstructions。最后,要在 AVPlayer 中播放,您需要使用 AVMutableComposition 和 AVMutableVideoComposition 创建一个 AVPlayerItem。
似乎在 api 中深入每个级别——在本例中,从带有资产的 MPMoviePlayer 到带有 AVComposition 的 AVPlayer,最后到 AVVideoComposition——成倍增加必要的编码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)