Существует ли простой фильтр DirectShow, который может смешивать аудио одного и того же формата?

У меня есть приложение DirectShow, написанное на Delphi 6 с использованием библиотеки компонентов DSPACK. Я хочу иметь возможность смешивать аудио, поступающее с выходных контактов из нескольких фильтров захвата, которые настроены на один и тот же формат мультимедиа. Есть ли фильтр с открытым исходным кодом или "sdk sample", который это делает?

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

1 ответ

Решение

Не уверен ни в чем доступном из коробки, однако это определенно будет сторонний компонент.

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

Другие вопросы по тегам