Доступ к необработанным данным аудиодорожки в видео активе для обработки в реальном времени - PullRequest
2 голосов
/ 13 февраля 2012

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

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

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

1 Ответ

0 голосов
/ 06 июля 2014

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

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

...