【问题标题】:AVAssetExport fails "cannot decode"AVAssetExport 失败“无法解码”
【发布时间】: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


【解决方案1】:

终于查明原因,是我的错! 问题是我正在循环通过 AVMutableCompositionTrack。 这样每个视频都在不同的轨道上,这可能导致资源不足。 现在我只创建了 2 个轨道:1 个用于视频,1 个用于音频。 我所有的视频都是用时间范围拼接的。

谢谢大家!!!!

【讨论】:

  • 你能导出会话类吗?你能创建一个git文件吗?
猜你喜欢
  • 2012-07-03
  • 1970-01-01
  • 2019-08-15
  • 1970-01-01
  • 2012-01-26
  • 2020-01-18
  • 1970-01-01
  • 2018-07-25
  • 1970-01-01
相关资源
最近更新 更多