2017-02-08 21 views
1

Я пытаюсь заставить свои звуковые вызовы моно-только, я готов использовать PCMU, G.729, OPUS и SpeeX в качестве моих кодеков для этих вызовов.Как управлять моно/стерео в аудиозвонке WebRTC?

Прямо сейчас я использую следующий код для поиска выбранного кодека в моем SDP сообщение:

Другие функции можно найти здесь:

http://www.codeforge.com/read/252733/sdputils.js__html

Есть многие другие функции в ссылке, но я не знаю, правильно ли они будут работать над моими выбранными кодеками.

Заранее благодарен!

ответ

2

Для аудио формат "а = rtpmap" линий:

a=rtpmap:<payload type> <encoding name>/<clock rate>[/<number of channels>]

Например:

a=rtpmap:111 opus/48000/2

Таким образом, вы можете сканировать эти строки, и удалить любой кодек с 2 каналами. Обратите внимание, что для удаления кодека вам также потребуется удалить тип полезной нагрузки (в этом случае, 111) из строки «m =» и удалить для него строки «a = fmtp». Я считаю, что sdputils.js имеет код, чтобы делать подобные вещи.

Opus - это немного особенный случай, потому что он всегда выглядит как имеющий 2 канала, что позволяет ему переключаться между моно и стерео в полосе, не делая нового предложения/ответа. Так с Opus, стерео против моно предпочтения обозначается параметром «стерео», который установлен на 0 или 1:

a=fmtp:111 stereo=0 
+0

Фактически Opus всегда объявляется как 'opus/48000/2', так как он может переключаться между моно и стерео прозрачно во время сеанса. Приемник может использовать параметр 'stereo' fmtp, чтобы указать, предпочитает ли он стерео (по умолчанию это' stereo = 0', то есть моно). Отправитель также может указать, может ли он посылать стерео с параметром 'sprop-stereo' (по умолчанию' sprop-stereo = 0'). Подробнее см. В [RFC 7587] (https://tools.ietf.org/html/rfc7587). Независимо от того, что отправлено, декодер Opus может выводить его как моно или стерео. Эта строка, скорее всего, самая гибкая в вашем SDP, а не для удаления. – mark4o

+0

Вы правы; обновит мой ответ. –

0

Вы можете использовать https://github.com/beradrian/sdpparser, а затем изменить всю SDP полезную нагрузку в виде объекта JSON. Отказ от ответственности: Я автор sdpparser.

 Смежные вопросы

  • Нет связанных вопросов^_^