macos — Переполнение стека декодирования собственного API OSX

Недавно я выполнил задачу декодирования звука с помощью Apple Core Audio C ++ API.

Теперь я заинтересован в декодировании и получении необработанных несжатых данных кадров видеофайла снова с помощью родного OSX API с C ++ (аналог DirectShow или Media Foundation в ОС Windows).

Я посмотрел на доступные API (AVFoundation, Core Video и т. Д.), Но не смог найти среду, которая будет выполнять эту работу и доступна через C ++.

Итак, мой вопрос, какой подход является наиболее подходящим для этой задачи?

0

Решение

Вы можете читать необработанные видео данные из файла, используя AVFoundation«s AVAssetReader,

Вы создаете AVAssetReader, добавить AVAssetReaderTrackOutput с nil настройки вывода, затем позвоните copyNextSampleBuffer() пока не закончено.

Однако, если у вас нет особых потребностей, необработанные видеоданные с кодеками вряд ли будут полезны. Вы пытаетесь показать видео? В таком случае AVPlayerLayer / AVPlayer (AVFoundation еще раз) вероятно то, что вы ищете. Если вы хотите что-то более низкий уровень, CoreMedia/VideoToolbox может для тебя. AVFoundation является структурой объективного c, так что вы будете использовать target-c ++, в то время как CoreMedia а также VideoToolbox являются C фреймворками.

1

Другие решения

Других решений пока нет …