Запись направляет аудиоустройство в файл

Я наткнулся на некоторый код, чтобы перечислить мои микрофонные устройства (с некоторой помощью), и я могу получить информацию о «дружественном имени» и «clsid» с каждого устройства.

Я немного поработал с GraphEd.exe, чтобы попытаться выяснить, как я могу взять аудио из directshow и записать его в файл (в настоящее время меня не интересует формат, wav должен быть в порядке), и не могу показаться найти правильную комбинацию.

Одна из статей, которые я прочитал, связана с этот пример Windows SDK, но когда я изучил код, я в конце концов запутался в том, как использовать этот код, т.е. настройка выходного файла или указание используемого устройства захвата звука.

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

Думаю, мне было бы интересно выяснить, как использовать образец Windows SDK, но любое объяснение любого из этих двух подходов было бы фантастическим.

редактироватьЯ должен упомянуть, что мои знания и способности как COM-программиста win32 очень низки в масштабе, поэтому, если это легко, просто объясните мне, как мне пять лет, пожалуйста.

0

Решение

Для записи аудио в файл с помощью DirectShow требуется построить правильный график фильтра, как вы уже должны были это выяснить. Части включают в себя:

  1. Само устройство, которое вы создаете через моникер (не CLSID!), Обычно это формат PCM
  2. Компонент мультиплексора, который преобразует потоки в формат контейнера
  3. File Writer Filter, который принимает совместимый с файлом поток и записывает в файл

Хитрый момент # 2, так как нет доступных стандартных компонентов. Однако примеры Windows SDK содержат недостающую часть — Пример фильтра WavDest. Собрав его и подготовив к использованию, вы можете построить график, который записывает данные с устройства в файл .WAV.

Ваш график будет выглядеть следующим образом, и он также легко создается программно:

введите описание изображения здесь

Я заметил, что у меня есть вариант WavDest, установленный с Google Earth — на случай, если у вас возникнут проблемы с его сборкой самостоятельно, и вы будете искать готовый двоичный файл.

3

Другие решения

Вы можете настроить ffmpeg на запись с устройства DirectShow и вывод в файл.

0

По вопросам рекламы [email protected]