В документации Apple для AVAssetReaderTrackOutput
указано следующее о параметре для outputSettings
при создании экземпляра с использованием +[AVAssetReaderTrackOutput assetReaderTrackOutputWithTrack:outputSettings:]
.
Значение nil настраивает вывод на продажу семплов в их исходном формате, сохраненном указанной дорожкой.
При использовании, например. видеоресурс MP4, он, по-видимому, будет проходить через кадры в порядке декодирования (т. е. не в порядке отображения), однако все запросы к доставленным CMSampleBufferRef
объектам с использованием CMSampleBufferGetImageBuffer
дают NULL
CVImageBufferRef
объектов.
Единственный способ обеспечить доставку объектов буфера изображения — предоставить формат пиксельного буфера для outputSettings:
, например kCVPixelFormatType_32ARGB
для записи словаря kCVPixelBufferPixelFormatTypeKey
.
Еще одним интересным побочным эффектом этого является то, что кадры затем доставляются в порядке отображения, а лежащий в основе порядок декодирования кадров абстрагируется/скрывается.
Любые идеи, почему это так?