Повторная выборка сетевого потока PCM до 8000 Гц 8-битного моно с помощью функции libsndfile sf_open_virtual

Моя цель состоит в том, чтобы взять поток PCM в Node.js, который представляет собой, например, 16100-битное стерео 44100 Гц, и затем повторно сэмплировать его в 8-битный моно 8000 Гц, чтобы затем кодировать его в Opus и затем передавать в поток.

Я думал о том, чтобы попытаться сделать привязки для libsndfile в C ++ и использовать функцию sf_open_virtual для повторной выборки в потоке. Тем не мение:

  1. Как я могу ответить на его функцию обратного вызова, запрашивая определенную сумму
    данных (находится здесь:
    http://www.mega-nerd.com/libsndfile/api.html#open_virtual) если мой
    программа все еще получает данные из сети? Я просто позволю этому
    зависать в цикле, пока цикл не обнаружит, что буфер является определенным
    процент заполнен?
  2. Так как данные PCM будут без заголовка, как можно
    Указать тип формата для libsndfile ожидать?

Или я слишком усложняю вещи?

1

Решение

Задача ещё не решена.

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


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