На данный момент обработка видео переживает огромный переход на Mac.QuickTime очень старый, но также большой и мощный, поэтому в течение последних 5 лет он подвергался процессу постепенной замены.
При этом QTKit - это подмножество QuickTime (захват,воспроизведение, преобразование формата и базовое редактирование видео), которое поддерживается в будущем.Устаревшие API-интерфейсы QuickTime все еще существуют на данный момент и, вероятно, останутся, по крайней мере, до тех пор, пока его основные функции не станут доступны в другом месте, но будут 32-битными.Для некоторых видеоматериалов вам может понадобиться использовать его в некоторых местах.
В настоящее время iOS опережает Mac, поскольку она может начинаться с нуля с AV Foundation .Будущее медиа-фреймворков Mac, вероятно, будет либо непосредственно с AV Foundation (с QTKit, представляющим собой облегченную прокладку сверху), либо с расширением QTKit, которое выглядит очень похоже.
Для звука есть Core Audio, который находится на Macи iOS и не уйдет в ближайшее время.Это довольно мощный, но несколько тупой местами.К счастью, онлайн-поддержка очень хорошая; список рассылки является важным ресурсом.
Для фильтров и обработки на уровне кадров у вас есть Core Video , как кто-то еще упомянул, а также Базовое изображение .Для движущейся графики есть Quartz Composer , который включает графический редактор и архитектуру плагинов для добавления собственных патчей.Для программной процедурной анимации и простого микширования моделей рендеринга (OpenGL, Quartz, видео и т. Д.) Есть Core Animation .
В дополнение ко всем этим, конечно, нет никаких причин, по которым вы можете 't использовать библиотеки с открытым исходным кодом, в которых встроенные компоненты не выполняют то, что вам нужно.
Чтобы ответить на ваш комментарий ниже:
В QuickTime (и QTKit), отдельные типы данныхкак аудио и видео представлены в виде треков.Может быть не сразу понятно, что QuickTime может открывать аудио, а также форматы видеофайлов.Обычный способ объединения аудио и видео:
- Создайте
QTMovie
с вашим видеофайлом. - Создайте
QTMovie
с вашим аудиофайлом. - Возьмите объект
QTTrack
, представляющий аудио, и добавьте его к QTMovie
с видео в нем. - Сведите фильм, чтобы он не просто содержал ссылку на другой фильм, но фактическисодержит аудиоданные.
- Запись фильма на диск.
Вот пример из Blender .Вы увидите, как осуществляется мультиплексирование аудио / видео в функции end_qt
.Там также есть некоторое использование Core Audio (AudioConverter*
).(Существует некоторый классический код экспорта QuickTime в quicktime_export.c
, но, похоже, он не работает со звуком.)