Ошибка "Failed to parse SessionDescription" при проигрывании потока

Axel

Member
STR:

- открыть демо-пример "Media Devices"
- публикация потока: снять галочку "Send Video"
- публикация потока: нажать "Connect", затем "Publish"
- потребление потока: нажать "Play"

Сразу же в консоли появится ошибка: "Uncaught (in promise) DOMException: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': Failed to parse SessionDescription. m=video 0 RTP/SAVPF Invalid value:" (стектрейс обрезан).

Спустя какое-то время возникнет событие сессии "FAILED" с ошибкой "Failed by ICE timeout".

Проблемы тут две:

1. Эту ошибку невозможно перехватить из пользовательного кода. Она возникает в функции "setRemoteSdp", вызов "reject(error)", и будет болтаться в консоли. Это особенно плохо в контексте того, что поверх SDK написана своя обёртка, которая поставляется партнёрам с целью упрощения интеграции, и такие ошибки у них будут вызывать только "WTF".
2. Статус сессии меняется на FAILED спустя какое-то время после возникновения ошибки, хотя проблема с парсингом SDP, по идее, фатальна и должна прерывать дальнейшее выполнение сразу.

В данном случае, проблема вызвана искусственно: при публикации потока в нём отсутсвует видео, но плееру дана команда его потреблять. В нашем случае, не всегда есть возможность на той стороне, где находится плеер, в момент начала проигрывания потока знать, есть ли там аудио и\или видео, что бы правильно его сконфигурировать.

В связи с этим, подскажите, пожалуйста, как быть в ситуации, если требуется на стороне плеера перед проигрыванием потока определить, доступно ли у него аудио, видео, оба варианта, или ничего не доступно, что бы его корректно сконфигурировать: как минимум, правильно задать "constraints.audio" и "constraints.video". Ну или хотя бы перехватить такие ошибки при вызове "stream.play()".

Спасибо.
 
Last edited:

Max

Administrator
Staff member
Добрый день!

Проблема неверного формирования SDP для браузера в случае запроса на проигрывание audio only потока без простановки соответствующих ограничений в constraints для плеера была на стороне сервера.
Исправлена в сборке 5.2.791.

На наших серверах и на demo.flashphoner.ru на сборке 5.2.798 проблема не воспроизводится.

Поэтому рекомендую обновить WCS до сборки 5.2.798 или выше. Скачать можно здесь
 

Axel

Member
Да, проблема воспроизводилась на старой сборке 5.2.567. Обновимся до новой, если воспроизведётся - отпишусь. Спасибо.
 
Top