Как объединить аудиопотоки в realtime режиме на ноде?
Пытаюсь создать что то вроде "интернет радио".
Пользователи должны получить 1 поток, а сервер на ноде должен merg'ить потоки из массива.
В массиве может быть например 1) поток из аудиофайла (музыка), 2) поток от микрофона, 3) поток из еще одного файла (например эффект аплодисментов). И в любой момент любой из потоков может удалиться (прервать музыку) либо добавиться еще один (поток с микро 2го собеседника).
Нашел много примеров но все они в основном используют ffmpeg и работают только с файлами что в данной задаче даст чрезвычайную задержку + лишнее IO диска. Или может написать этот сервис на каком то другом языке где это проще реализовать ?
Не могу рекомендовать другой конкретный язык, я рекомендую не писать на ноде.
В принципе, на любом языке придётся использовать библиотеки с идентичной звуковой функциональностью, потоки и буферы, файлы и устройства. Просто на ноде будет многовато чисто языковой писанины, возможно, в других языках писанины будет меньше. Но опять же, если нравится жс, то нужно только найти библиотеки для звука с меньшим количеством прослоек.
Наличие множества примеров ноде-скриптов для звука с использованием ффмпег как бы говорит нам, что именно на ноде проще так, чем писать кодек/микшер на жс, хотя и это возможно, в браузерах точно.