Однопотоковое аудио / видео в Chrome WebRTC без тегов ssrc - PullRequest
0 голосов
/ 17 мая 2018

Возможно ли однопотоковое аудио (или видео) через Chrome WebRTC, когда вы удаляете строки a = ssrc из SDP?

Я попытался отфильтровать строки a = ssrc (с кодом ниже), но однопотоковое аудио не работало. Я пробовал также однопотоковое видео и переименование вместо удаления строк с тем же результатом. Я изменяю предложения и ответы SDP. Интересно, что эта фильтрация работает, когда вы пытаетесь отправить SDP с аудио и видео - аудио (только) будет работать в таком сценарии. Однако у меня были проблемы с повторным согласованием в таком сценарии в нашем приложении, так что это, вероятно, неверное решение.

Вы можете увидеть минимальный пример с однопотоковым аудио / видео в этом репо: https://github.com/Tev-work/webrtc-audio-demo.

Если это возможно, не могли бы вы привести минимальный пример кода с рабочим звуком? Желательно, используя репо выше, что должна делать функция modifySdp public / client.js )?

В настоящее время он изменяет sdp с этим кодом:

sdp = sdp.replace(/a=ssrc/g, 'a=xssrc');
sdp = sdp.replace(/a=msid-semantic/g, 'a=xmsid-semantic');
sdp = sdp.replace(/a=mid/g, 'a=xmid');
sdp = sdp.replace(/a=group:BUNDLE/g, 'a=xgroup:BUNDLE');

Если это невозможно, знаете ли вы, было ли такое ограничение официально заявлено где-то (пожалуйста, свяжите его), или оно просто в какой-то момент стало неработоспособным? Похоже, что он работал раньше (около M29, см. Комментарии здесь https://bugs.chromium.org/p/webrtc/issues/detail?id=1941 - без упоминания, что это не должно было работать).

Мотивация: Иногда мы отправляем SDP через SIP-АТС, которые иногда отфильтровывают линии SSRC. О поддержке нескольких потоков в таких ситуациях, очевидно, не может быть и речи (может быть, с некоторыми хакерскими потоками на стороне сервера?), Но поддержка по крайней мере только аудио для таких сценариев была бы полезна для нас.

1 Ответ

0 голосов
/ 17 мая 2018

это все еще возможно, хотя есть некоторые побочные эффекты, такие как (наследие) getStats, не распознающие поток, см. (Эта ошибка) [https://bugs.chromium.org/p/webrtc/issues/detail?id=3342].

То, что вы пытаетесь, это удалитьa = строки ssrc перед вызовом setLocalDescription.Это, вероятно, не будет работать.Если вы хотите смоделировать сценарий, попробуйте удалить их перед вызовом setRemoteDescription с SDP.

...