#winapi #audio #ms-media-foundation
#winapi #Аудио #ms-media-foundation
Вопрос:
- Поскольку каждый канал источника входного аудиосигнала может вводить данные с перерывами (например, данные могут отсутствовать в течение 10 секунд), я использую стратегию максимального времени ожидания ввода (например, около 500 миллисекунд), чтобы решить, отключать звук или нет, и использовать «алгоритм линейной регрессии» для достижения микширования звука. Недостатком здесь является то, что вам нужно кэшировать достаточно изображений, чтобы едва синхронизировать аудио и видео при записи MP4.
- Новичок в аудио MediaFoundation, я больше не хочу изобретать велосипед. Я хочу знать, существует ли многоканальный MFT для микширования звука в реальном времени или аналогичная библиотека?
Комментарии:
1. Официальные преобразования (DSP) для MF здесь: learn.microsoft.com/en-us/windows/win32/medfound /… и единственный звук — это «Audio Resampler DSP», поэтому не похоже, что он соответствует тому, что вы хотите.
Ответ №1:
Эффект микширования звука будет иметь 2 входа и 1 выходной MFT, который смешивает входные данные. Для этого также нет стандартного преобразования, но описание вопроса предполагает, что вы ищете еще более специализированное преобразование.
Если вы хотите иметь один многоканальный вход, но переключать каналы (для меня это не имеет особого смысла, но описание тоже неясно), для выбора режимов понижающего микширования, которые вы можете переключать на ходу, можно использовать стандартный аудио ресэмплер MFT. (матрица преобразования настраивается).
От этого типа преобразований не требуется ничего особенного, чтобы быть в режиме реального времени. Однако, в зависимости от вашей ситуации, все еще существует вероятность того, что такое преобразование само по себе не удовлетворяет вашим потребностям: такое преобразование микширования будет частью конвейера перед определенной буферизацией, и изменение микширования может иметь эффект после воспроизведения буферизованных в данный момент данных. Я считаю, что это не должно быть проблемой, но если ваше понимание реального времени действительно мгновенное, то у вас может возникнуть и эта проблема.