在 Apple 的文档中AVAssetReaderTrackOutput
,它表示以下有关outputSettings
使用实例化实例时的参数+[AVAssetReaderTrackOutput assetReaderTrackOutputWithTrack:outputSettings:]
nil 值将输出配置为以指定轨道存储的原始格式提供样本。
当在例如 MP4 视频资产上使用它时,它似乎会按解码顺序逐步遍历帧(即相对于显示无序),但是CMSampleBufferRef
对使用CMSampleBufferGetImageBuffer
产生NULL
CVImageBufferRef
对象的传递对象的所有查询。
我可以确保传递图像缓冲区对象的唯一方法是为提供像素缓冲区格式outputSettings:
,例如字典条目。kCVPixelFormatType_32ARGB
kCVPixelBufferPixelFormatTypeKey
这样做的另一个有趣的副作用是,帧然后按显示顺序传递,而帧的底层解码顺序被抽象/隐藏起来。
任何想法为什么会这样?