【发布时间】:2017-10-17 22:33:05
【问题描述】:
您好,我遇到了 AVAssetEXport 的问题。我正在尝试一个接一个地组合许多视频,比如说 20 - 30,将每个资产添加为带有 insertTimeFrame 的 VideoMutableCompositon 轨道:
|视频1|视频2| ... |视频| ... |视频N|
如果我超过 15 - 16 个视频并导出,我会收到以下错误:
失败:错误域=AVFoundationErrorDomain Code=-11839“无法解码”UserInfo={NSLocalizedDescription=无法解码,NSUnderlyingError=0x1c8044620 {错误域=NSOSStatusErrorDomain Code=-12913“(null)”},NSLocalizedRecoverySuggestion=停止任何其他操作解码媒体并重试。, NSLocalizedFailureReason=此媒体所需的解码器正忙。}
我确信这不是 RAM 问题,因为我使用的是 iphone8 plus,而且 xcode 显示 RAM 活动不足。 如果我将视频数量减少到 5 - 8 个,一切都会很好......
添加视频轨道有限制吗? 谁能帮我实现这个目标?
【问题讨论】:
-
当您说“合并”时,您的意思是叠加(即多个剪辑彼此重叠)还是“缝合” - 将剪辑首尾相连。我已经成功缝合了 100 个剪辑,但从未尝试合并(叠加)超过 5 或 6 个。
-
查看this answer。好像有限制。
-
@TimBull 谢谢你的回答。我想要做的是一个接一个地处理所有这些 N 个视频,使用 insertTimeRange 和定义指令将它们添加为 AVVideoCompositon 的轨道。 |video1|video2|videoi|...|videoN if N = 5 - 8 一切正常,AVAssetExport 做得很好,但如果 N 增加,我会看到一个奇怪的行为,因为 exporter.progress 上下波动。如果 N 超过 17 - 18,我什至在尝试开始之前收到该错误......关于原因的任何想法?您能否澄清一下实现这一目标的正确程序?
-
@jpetrichsr 我看不到 AVPlayer 和我的问题之间有任何联系。你不同意吗?
-
@AlessioStramacci,不 - 看看 - 它说“AVMutableCompositionTrack 的每个实例也使用了这些渲染管道之一。”
标签: swift xcode video avfoundation