2015-02-10 1 views
4

Я заинтересован в способности webRTC к P2P livestream mp3-аудио с пользовательской машины. Только пример, что я нашел это: https://webrtc-mp3-stream.herokuapp.com/ из этой статьи http://servicelab.org/2013/07/24/streaming-audio-between-browsers-with-webrtc-and-webaudio/Полноценное воспроизведение MP3 через webRTC

Но, как вы можете увидеть, что качество звука на приемной стороне довольно плохо (45kb \ сек), есть ли способ, чтобы получить полное качество MP3 потоковая + возможность манипулировать данными этого потока (например, регулировать частоты с помощью эквалайзера) на сторонах каждого пользователя?

Если это невозможно через webRTC, есть ли какие-либо другие варианты плагинов или плагинов для этого?

Редактировать: также я наткнулся на этих ребята 'shoutcast kinda' http://unltd.fm/, заявив, что они используют webRTC для доставки радиопередач высшего качества, включая потоковое mp3. Если да, то как?

+0

Ну, я предположил бы, что вы можете передавать с сервера, который перекодирует из mp3 в OPUS, а затем, как только вы получите поток на клиентская сторона, вы можете делать все манипуляции, которые вы хотите, с помощью Audio API. –

+0

Но если мы говорим о бой peer2peer, то нет ли здесь сервера? –

+1

WebRTC напрямую не поддерживает потоковое воспроизведение MP3. MP3 должен был быть перекодирован в PCMA/U или Opus в какой-то момент кем-то, прежде чем отправляться через peerconnection. Единственное, что я мог придумать, было бы своего рода привязкой данных и отправкой mp3 в кусках данных и повторной компиляции их с другой стороны, чтобы играть, но я не уверен, что это возможно. –

ответ

3

WebRTC поддерживает 2 аудиокодека: OPUS (максимальный бит 510 кбит/с) и G711. Вы придерживаетесь OPUS, он является современным и более перспективным, введенным в 2012 году.

Основные файлы в webrtc-mp3-потоке устарели на 2 года (18 июля 2013 г.). Я не мог найти предпочтение OPUS в коде, поэтому, возможно, демо-версия будет проходить через G711.

Демоверсия Webrtc-mp3-stream выполняет задание кодирования (MP3 в качестве источника мультимедиа), затем передает данные через UPD/TCP через WebRTC. Я не думаю, что вам нужно декодировать его в MP3 на стороне приемника, это было бы излишним. Просто попробуйте включить OPUS, чтобы сделать код webrtc-mp3-потока более актуальным.

Пожалуйста, обратитесь к Is there a way to choose codecs in WebRTC PeerConnection?, чтобы OPUS мог видеть разницу.

+0

Опус звучит интересным (эти ребята на неквалифицированном языке тоже обращались к нему) на данный момент я не могу позволить себе провести день, рыть в этом примере webrtc-mp3-stream, меняя кодеки и тестируя все возможности, которые мне нужны, это кажется правильным путем, поэтому, поскольку щедрость не может ждать еще неделю, я принимаю ваш ответ, щедрость ваша, спасибо. –

+0

Ой, подождите, я могу принять ответ, а не наградить щедростью, тогда, если вы не возражаете, я подожду еще несколько дней, кто знает, может быть, появятся еще какие-то интересные ответы, если нет, то щедрость ваш) –

+0

кстати.есть ли какая-либо причина на данный момент, которая может сделать невозможным подачу этого потока OPUS в веб-аудио api с обеих сторон и манипулировать ими через один? –

2

Я являюсь основателем unltd.fm.

igorpavlov - это правильно, но я не могу комментировать ответ. Мы также используем кодек OPUS (Stereo/48Khz) через WebRTC. Декодирование mp3 (или любого другого аудиоформата) с использованием webaudio, а затем кодирование его в OPUS - это путь. Вам «просто» нужно заставить переговоры SDP использовать OPUS.

Вы должны отправить нам по электронной почте, вы бы сохранили свои 50 баллов;)

+0

По какой-то причине я об этом не думал, но его очень приятно видеть ваш прямой ответ, спасибо) Эти 50 очков устали сидеть в одном месте. Все это движение WebRTC довольно увлекательно, потоковая передача звука уже полностью возможна, и кажется, что потоковая передача потокового видео в формате p2p уже в пути. Ах, будущее ... К сожалению, у нас пока нет парусников. –