我正在使用AVAssetExportSession
导出视频作品。
当我仅使用AVVideoPlayer
播放时,构图运行良好,并且导出可以处理一定数量的缝合在一起的视频。在播放35分钟的视频时(大约5分钟的长度为7个视频),我大概失败了。
导出会话快要结束了,然后由于以下错误而失败:
Export failed: Error Domain=AVFoundationErrorDomain Code=-11821 "Cannot Decode" UserInfo={NSLocalizedFailureReason=The media data could not be decoded. It may be damaged., NSLocalizedDescription=Cannot Decode, NSUnderlyingError=0x1c46507d0 {Error Domain=NSOSStatusErrorDomain Code=-16977 "(null)"}}
这不是真的,因为我使用相同的视频进行了测试(因此,所有视频的长度均相等)。
根据该线程(Error Domain=AVFoundationErrorDomain Code=-11821 "Cannot Decode"),它可能与CMTimeAdd函数有关,但据我所知,应该没问题。
尽管如此,我还是在视频之间插入标题:
[compositionVideoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero,CMTimeMakeWithSeconds(5, 600)) ofTrack:eTrack atTime:partZeroTime error:&errVideo]; // Add video
[compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero,CMTimeMakeWithSeconds(5, 600)) ofTrack:eAudio atTime:partZeroTime error:&errAudio]; // Add audio
也许是罪魁祸首?我不知道这有什么问题,因为它适用于较小的作品。此计算中是否存在随着时间推移而加总的错误?
我也遵循了这个线程(AVAssetExport fails "cannot decode"),实际上我是在循环中实例化多个AVMutableCompositionTracks
。我已更正此错误,但仍然收到错误。
还有其他想法吗?