169 похожих чатов

Всем привет. Можете подсказать как можно сделать трансляцию аудио потока

в браузер?
У меня между клиентом и сервером есть веб-сокет соединение. На сервере я последовательно из реалтайм камер получаю аудио поток в формате G711/PCM/IMA. Нужно передать этот поток в браузер и проигрывать пофреймово желательно без предварительной упаковки в контейнеры (типа mp3, ogg, aac и т.п.). При сильной необходимости формат передаваемый в браузер можно изменить, например, добавив MPEG, если текущие форматы вообще никак не получится проиграть, но этого не хотелось бы делать, так как нужно будет еще серверную часть допиливать.
Я нашел вот такое решение, которое, кажется, очень связано с моим кейсом: https://apiko.com/blog/audio-file-streaming-in-js/
В нем через web audio api и функцию decodeAudioData декодируются отдельные фрагменты аудио потока путем добавления байтового заголовка перед каждым фрагментом. Я попытался завести это на своем G711 потоке, но получил только шумы, а не исходный звук (вероятно неправильно подобрал байтовый заголовок). Получится ли у меня вообще проиграть G711 с помощью такого алгоритма? Или нужно какой то другой формат обязательно выбирать? Рабочий ли это вообще вариант так проигрывать потоковый звук? Или нужно как то по другому делать?

2 ответов

7 просмотров

Точно не уверен но посмотри в сторону webrtc

Обычного тега audio со ссылкой на медиа поток недостаточно? Просто в любом случае, сервер отдает аудио чанками, а не всем файлом сразу.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта