Обработка аудиопакетов, декодированных с помощью ffmpeg - PullRequest
1 голос
/ 25 февраля 2012

После моего другого поста я удивляюсь, можно ли выполнить какой-то процесс, такой как извлечение MFCC для декодированных аудиопакетов. Код, который я использую, декодирует аудио и видео из файла mpeg-2 с помощью ffmpeg. Процесс на видео выполняется с использованием opencv, так как эта библиотека позволяет захватывать кадры по одному. Мне нужно обрабатывать соответствующие аудиосэмплы одновременно.

Спасибо.

1 Ответ

2 голосов
/ 09 апреля 2012

Я создал аудио-движок C ++ под названием "Crosstalk".

Несмотря на то, что это называется «механизмом обработки звука», на самом деле это просто механизм обработки данных C ++ (с плавающей запятой) в реальном времени. Crosstalk позволяет создавать и маршрутизировать системы в режиме разработки и в режиме реального времени. По сути, механизм заботится обо всей маршрутизации данных и предоставляет вам простую платформу для создания компонентов, с помощью которых обрабатываются данные (например, ваш компонент «Аудио-канал» подключен параллельно с компонентом «Видео-канал»). Пока ваши ветви имеют одинаковую общую длину буфера, они будут идеально синхронизированы.

Это очень удобно. Вот пример того, как настроить систему для воспроизведения mp3-файла (используемые здесь компоненты поставляются с движком):

XtSystem system;
XtMp3Decoder mp3Decoder;
XtAudioDevice audioDevice;

long md = system.addComponent(&mp3Decoder);
long ad = system.addComponent(&audioDevice);

system.connOutToIn(md,0,ad,0);
system.connOutToIn(md,1,ad,1);

mp3Decoder.loadFile("../05 Tchaikovski-Swan Lake-Scene.mp3");
mp3Decoder.play();

Вы можете ознакомиться с документацией по API и подробностями лицензирования здесь: http://www.adaptaudio.com/Crosstalk

РЕДАКТИРОВАТЬ (01-12-2012):

Crosstalk был заменен проектом с открытым исходным кодом под названием " DSPatch ". DSPatch - это, по сути, обновленная версия механизма маршрутизации за Crosstalk, который больше не ограничивается только обработкой аудио. DSPatch позволяет создавать и маршрутизировать практически любые типы цепочек процессов, какие только можно вообразить, и бесплатно для личного и частного использования:)

...