iPhone XR/XS:AVAssetExportSession 状态失败并出现错误

Posted

技术标签:

【中文标题】iPhone XR/XS:AVAssetExportSession 状态失败并出现错误【英文标题】:iPhone XR/XS: AVAssetExportSession status failed with error 【发布时间】:2019-03-13 14:27:07 【问题描述】:

我正在使用 AVAssetExportSession 重新导出由 Adob​​e Premiere CC 编辑的视频, 它特定于 iPhone XR/XS,我的 exportSession.status 失败并出现错误:

Error Domain=AVFoundationErrorDomain Code=-11821 “无法解码” UserInfo=NSLocalizedFailureReason=媒体数据无法解码。可能已损坏,NSLocalizedDescription=无法解码,NSUnderlyingError=0x28338c4e0 Error Domain=NSOSStatusErrorDomain Code=-16977 “(null)”

视频可以在原生 iPhone 播放器上正常播放。在其他设备(iPhone X、6、7、8)上没有导出错误问题

【问题讨论】:

【参考方案1】:

我遇到了类似的问题。但是我的视频是从网上下载的。

在我的代码中,我将质量设置“presetName:”从“AVAssetExportPresetMediumQuality”更改为“AVAssetExportPresetPassthrough”。

希望这会有所帮助。

【讨论】:

谢谢,这个presetName已经通过了,但是我必须添加视频层指令,所以我不能使用presetName AVAssetExportPresetPassthrough【参考方案2】:

我遇到了同样的问题,硬件和软件的组合完全相同(iPhone XS(和 iPad Pro 11'')/Adobe Premier 导出的视频)。

这并不多,但在测试可能的解决方案期间,我发现 AVAssetExportSession 在视频的最后出现编码问题。

因此,例如,如果我将导出时间范围缩短 4 帧(或 24 fps 上约 0.17 秒),那么视频将毫无问题地导出。在某些情况下,缩短 3 帧似乎有效,但并不可靠。缩短 2 - 不起作用。

这是一个糟糕的解决方案,但我还没有找到更好的解决方案。

【讨论】:

以上是关于iPhone XR/XS:AVAssetExportSession 状态失败并出现错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥 iPhone XR/Xs Max 不遵守比率约束?

iOS App Icon启动图尺寸配置适配iPhone XS XR XS Max等

为啥 iPhone XR、XS 和 XS Max 没有将环境图像应用到 ARKit 中的场景?

为什么iPhone XR,XS和XS Max不会将环境图像应用到ARKit中的场景?

苹果(iphone)修改手机定位

inputAccessoryView 没有在 iPhone X 上获得触摸事件