将 AVFoundation 与高分辨率视频一起使用时出现 -11855 错误代码。我应该使用啥分辨率?

Posted

技术标签:

【中文标题】将 AVFoundation 与高分辨率视频一起使用时出现 -11855 错误代码。我应该使用啥分辨率?【英文标题】:-11855 error code when using AVFoundation with high res video. What resolution should I use?将 AVFoundation 与高分辨率视频一起使用时出现 -11855 错误代码。我应该使用什么分辨率? 【发布时间】:2017-02-01 08:42:09 【问题描述】:

使用 react-native-video 播放简单视频,在旧设备(ipad 2、ipad 3rd gen (A1416))上分辨率大于 1024x768 时会失败,并出现以下错误。


    "target": 4,
    "error": 
       "code": -11855,
       "domain": "AVFoundationErrorDomain"
    

我在AVFoundation error constants 的列表中找不到这个错误。它停在 -11852。

我通过测试发现,我可以在第二代或第三代 ipad 上使用的最大分辨率为 1024x768,但我在任何地方都找不到此文档。 ipad mini 2 可以毫无问题地播放 2048x2048 的视频。

我可以使用什么分辨率来支持所有 iPad? 我可以在具有不同功能的 iPad 上显示不同的媒体,例如 1x 和 2x 图像吗?

【问题讨论】:

【参考方案1】:

iPad 2 具有以下规格:


支持的视频格式:

H.264 视频,最高 1080p,每秒 30 帧,High Profile 级别 4.1 具有高达 160 Kbps、48kHz 的 AAC-LC 音频,.m4v、.mp4 格式的立体声音频, 和 .mov 文件格式; MPEG‑4 视频,最高 2.5 Mbps,640 x 480 像素,每秒 30 帧, 带有 AAC-LC 音频的简单配置文件,每通道高达 160 Kbps,48kHz, .m4v、.mp4 和 .mov 文件格式的立体声音频; Motion JPEG (M-JPEG) 高达 35 Mbps,1280 x 720 像素,30 帧 每秒,ulaw 音频,.avi 文件格式的 PCM 立体声音频

来源:https://support.apple.com/kb/sp622?locale=en_GB



iPad 3 具有以下规格:


支持的视频格式:

H.264 视频,最高 1080p,每秒 30 帧,High Profile 级别 4.1 具有高达 160 Kbps、48kHz 的 AAC-LC 音频,.m4v、.mp4 格式的立体声音频, 和 .mov 文件格式; MPEG-4 视频,最高 2.5 Mbps,640 x 480 像素,每秒 30 帧, 带有 AAC-LC 音频的简单配置文件,每通道高达 160 Kbps,48kHz, .m4v、.mp4 和 .mov 文件格式的立体声音频; Motion JPEG (M-JPEG) 高达 35 Mbps,1280 x 720 像素,每帧 30 帧 二、音频ulaw,.avi文件格式的PCM立体声音频

来源:https://support.apple.com/kb/sp647?locale=en_GB



如您所见,它不支持大于 1080p 的分辨率,即 1920 x 1080,因此 2048 x 2048 将不起作用。

-18555 错误描述在文件 AVError.h (https://developer.apple.com/reference/avfoundation/averror/averrorundecodablemediadata)中

AVErrorUndecodableMediaData NS_AVAILABLE(10_10, 8_0)  = -11855,

虽然没有给出足够的描述来给出具体的结论,但从名字上我们可以说它意味着它无法解码视频,因为它超出了设备的能力。

【讨论】:

所有优秀的 cmets,在我的测试中似乎只有 1024x768 是 h264 mp4 视频的限制,无论是使用原生反应还是原生 AVFoundation。 请检查您尝试播放的文件的编码和配置文件(主要、基线和高)。 设法解决这个问题,问题是当我测试它时,我不小心使用了 1920x1920 的正方形而不是 1920x1080。在 1920x1080 下它可以正常工作。

以上是关于将 AVFoundation 与高分辨率视频一起使用时出现 -11855 错误代码。我应该使用啥分辨率?的主要内容,如果未能解决你的问题,请参考以下文章

AVFoundation 添加音频输入使音频播放静音

iOS - AVFoundation - 是不是可以将整个视频设置为慢动作?

无法使用 AVFoundation 将录制的视频上传到服务器 - Swift 3

iOS Photokit - PHAsset pixelWidth 和 pixelHeight 与高分辨率图像不匹配

Swift 3:如何在使用 AVFoundation 录制视频期间将麦克风静音/取消静音

使用 AVFoundation 混合图像和视频