Поток системного звука в веб-браузер (javascript) по сети

Я ищу, возможно ли создать среду, созданную 1 ПК и 1 смартфоном:

  1. ПК1 работает без экрана и с аудиосервером JACK (или alsa или чем-то еще)
  2. смартфон, подключенный к той же сети, что и ПК1, и браузер, указывающий на http://pc1/

Можно ли транслировать системный звук ПК1 в веб-браузере смартфона? Кто-нибудь может объяснить мне, как? Как на стороне сервера (Linux/Jackd), так и на стороне клиента (Javascript в WebBrowser с Audio API)

С Уважением


person MadPapo    schedule 19.02.2018    source источник
comment
Если на 1) нет браузера, вам понадобится собственный C++ WebRTC или аналогичный   -  person Keyne Viana    schedule 27.02.2018
comment
Разве я не могу использовать Jackd для этого? У вас есть пример, чтобы поделиться?   -  person MadPapo    schedule 01.03.2018
comment
Кто на самом деле является источником звука? Что ты хочешь сделать с точки зрения непрофессионала? Например, вы можете передавать поток с сервера nodejs в браузер (т.е. плейлист mp3)   -  person Keyne Viana    schedule 02.03.2018
comment
Источником звука является системный звук всего ПК1 (где установлен Jackd, а также NodeJS). Можно ли передавать весь системный звук через веб-сокет браузера?   -  person MadPapo    schedule 02.03.2018


Ответы (1)


Итак, у вас есть компьютер с jack и nodejs в качестве http-сервера.

Что вам нужно сделать, так это установить ffmpeg и следовать этим инструкциям: https://www.ffmpeg.org/ffmpeg-devices.html#jack

Вы будете использовать ffmpeg внутри nodejs для потоковой передачи вывода в браузер.

Есть несколько вопросов о потоковой передаче видео и аудио с помощью nodejs. Вы можете просто обслуживать прогрессивный http-поток, и браузер будет его воспроизводить.

В конце концов вы не будете использовать веб-аудио API, сокеты или WebRTC

person Keyne Viana    schedule 01.03.2018
comment
Я знаю FFMPEG, но использую его для преобразования аудио и видео. Кажется, что FFMPEG пытается записать файл в файловую систему и передать его в потоковом режиме с помощью клиента JACKD, но мне нужно передавать звук, производимый системой PC1, без задержки (поэтому у меня нет wav-файла в системе PC1). Браузер на смартфоне должен каким-то образом транслировать системный звук ПК1. - person MadPapo; 02.03.2018
comment
Вам не нужно писать в файл, вы можете направить вывод ffmpeg непосредственно в ответ http. Но у вас будет несколько секунд задержки. Для почти нулевой задержки можно думать только о webrtc. - person Keyne Viana; 02.03.2018
comment
Несколько примеров WebRTC с FFMPEG? - person MadPapo; 04.03.2018
comment
Что ж, как я уже сказал, поскольку на стороне сервера нет браузера, вы не можете просто использовать доступный API-интерфейс webrtc javascript. Вы можете поискать библиотеки webrtc nodejs, но если я правильно понимаю, реализованы только каналы данных, вы не можете работать с аудиопотоками. Затем вам понадобится какой-либо сервис медиапотока, например, red5, или реализовать его самостоятельно, используя родной С++ webrtc, у которого нет хороших примеров. Это то, что я знаю до сих пор из моих исследований. - person Keyne Viana; 05.03.2018