哪些视频格式与 iPhone 的资源库兼容?
换句话说,ALAssetsLibrary 的 videoAtPathIsCompatibleWithSavedPhotosAlbum 对于哪些视频格式会返回 YES?
我似乎无法在 iPhone 参考库中找到任何相关信息。
哪些视频格式与 iPhone 的资源库兼容?
换句话说,ALAssetsLibrary 的 videoAtPathIsCompatibleWithSavedPhotosAlbum 对于哪些视频格式会返回 YES?
我似乎无法在 iPhone 参考库中找到任何相关信息。
还没有人提到这一点,但这取决于 iPhone / iOS 设备。在制作一个尝试将 Flickr 视频复制到相册的应用程序时,当我在 writeVideoAtPathToSavedPhotosAlbum 上不断收到无效数据结果时,我感到很沮丧:调用非 Retina iPhone。
按照这个问题的要求,我对各种大小的 Flickr 视频进行了一些 videoAtPathIsCompatibleWithSavedPhotosAlbum 测试。
iPhone iPhone iPad (非视网膜)(视网膜) 6119419764_orig.mov H.264, 1,920 x 1,080 否 否 否 线性 PCM,16 位 小端签名 整数,48000赫兹, 立体声 (LR) 35.33 兆比特/秒 6119419764_hd.mp4 AVC 编码,1,280 x 720 否 是 是 AAC,44100 赫兹,立体声 (LR) 2.15 兆比特/秒 6119419764_site.mp4 AVC 编码,640 x 360 否 是 是 AAC,44100 赫兹,立体声 (LR) 833.71 千比特/秒 6119419764_mobile.mp4 AVC 编码,568 x 320 是 是 是 AAC,32000 赫兹,单声道 775.14 千比特/秒 6121206003_orig.mov (用 iPhone 3Gs 拍摄) H.264、480 x 360 是 是 是 AAC,44100 赫兹,单声道 865.94 千比特/秒 30 帧/秒 6110638568_reformat.mov H.264、640 x 360 是 是 是 AAC,44100 赫兹,单声道 3.57 兆比特/秒
基于这个有限的测试,对于给定的格式和设备,看起来尺寸最重要。(对于当前的 Flickr 编码方法和url 方案,mobile
视频适用于所有 iOS 设备相册,而hd
视频site
仅适用于 Retina iPhone 和 iPad。)
一个有趣的旁注是,高清视频将在带有 MPMoviePlayerController 的非视网膜 iPhone 上播放——您只是无法将它们保存到相册中。
如果您想要支持的音频/视频技术列表,请阅读 iOS 技术概述,尤其是媒体层(向下滚动到显示“视频技术”的位置)。
iOS 中的视频技术支持播放具有 .mov、.mp4、.m4v 和 .3gp 文件扩展名并使用以下压缩标准的电影文件:
H.264 视频,最高 1.5 Mbps,640 x 480 像素,每秒 30 帧,H.264 基线配置文件的低复杂度版本,具有最高 160 Kbps 的 AAC-LC 音频,48 kHz,.m4v 立体声音频, .mp4 和 .mov 文件格式
H.264 视频,最高 768 Kbps,320 x 240 像素,每秒 30 帧,Baseline Profile 最高 1.3 级,AAC-LC 音频最高 160 Kbps,48 kHz,立体声音频格式为 .m4v、.mp4 和 . mov文件格式
MPEG-4 视频,最高 2.5 Mbps,640 x 480 像素,每秒 30 帧,具有最高 160 Kbps 的 AAC-LC 音频的简单配置文件,48 kHz,.m4v、.mp4 和 .mov 文件格式的立体声音频
多种音频格式,包括“音频技术”中列出的格式</p>
这是 iOS 中媒体框架的参考信息。
我最近在我的超快速相机应用程序SnappyCam Pro中为静态照片的实时连拍添加了视频导出功能。
为了满足新旧设备的需求,我最终创建了一些 MPEG-4“探测”视频,每个视频都有一个黑色帧,分辨率为各种 4:3:
这四个视频文件仅向 App Bundle 添加了 12KB。
然后用 遍历每个,-[ALAssetsLibrary videoAtPathIsCompatibleWithSavedPhotosAlbum:]
然后我能够确定哪些选项对最终的“相机胶卷”视频导出有效。
如果我不得不猜测,我可能会使用iPhone 自己的规格作为测试指南:
支持的视频格式:H.264 视频,最高 720p,每秒 30 帧,Main Profile level 3.1,AAC-LC 音频最高 160 Kbps,48kHz,.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,PCM 立体声音频为 .avi 文件格式
似乎没有记录的方式来查询哪些格式会让人videoAtPathIsCompatibleWithSavedPhotosAlbum
开心,并且设备可以解码某种格式的事实并不意味着 AssetLibrary 会接受它。但是,您会期望 配备相机的设备始终能够将相机的最高分辨率输出保存到相机胶卷。
如果您可以接受这个假设,那么您所要做的就是使用 枚举AVCaptureDevices
和查询各种预设supportsAVCaptureSessionPreset
。
Victor 的测试表明像素区域似乎是最重要的,所以一旦你查询过,
AVCaptureSessionPreset1920x1080, AVCaptureSessionPreset1280x720, AVCaptureSessionPreset640x480
你应该能够选择一个可以videoAtPathIsCompatibleWithSavedPhotosAlbum
说是的大小。
我不知道您如何为没有摄像头的设备计算它。