Доступ к необработанным данным звуковой дорожки в видеоресурсе для обработки в реальном времени

Я пытаюсь перехватить в реальном времени аудиопоток файлового видеоресурса, чтобы применить к звуковой дорожке некоторые живые эффекты и смешать его с другими источниками звука во время воспроизведения видео.

В идеале было бы здорово иметь возможность взять звуковую дорожку объекта AVPlayer, вставить ее в звуковой график в качестве отдельно адресуемого входа, обработать ее с помощью обратного вызова с подходящими аудиоустройствами, а затем повторно ввести ее в реальном времени. для доставки на аудиовыход, но я не могу найти простой способ сделать это при сохранении целостности исходного видеоресурса. Мне не удалось узнать, как получить доступ к аудиобуферу AVPlayer, чтобы переслать его необработанные данные в обратный вызов обработки звука.

Мне кажется, что единственный подходящий подход состоял бы в том, чтобы разделить аудио- и видеодорожки, обработав их как отдельные файлы, а затем обработать видеодорожку (с удаленным звуком) с помощью AVPlayer и пропустить весь звук через отдельный Путь обработки Core Audio работает параллельно, но я боюсь, что такой подход затруднит синхронизацию AV, в дополнение к добавлению обременительной задачи автономной подготовки. Есть идея или альтернативный подход?


person Parámetro    schedule 13.02.2012    source источник


Ответы (1)


Я думаю, что AVAudioPlayer не поддерживает работу в режиме реального времени, и невозможно напрямую подключить эту высокоуровневую структуру к аудиоустройствам самого низкого уровня (и звуковому графику).

Я бы предложил реализовать узел проигрывателя файлов в звуковом графе. Этот узел проигрывателя должен воспроизводить звук из видео. Но, возможно, новый AVAudioEngine хорош подход, но этот фреймворк очень глючит и на данный момент плохо документирован - его бета. Обработка аудиосигнала в реальном времени - сложная тема сама по себе - в сочетании с видео это действительно сложно. :-) Пожалуйста, дайте мне знать, если вы нашли подходящее решение для своего приложения.

person Michael Dorner    schedule 06.07.2014