Не удается установить соединение WebRTC (разные кодеки и тип полезной нагрузки в SDP)

Я пытаюсь установить соединение webrtc между браузером и медиасервером. Но, в ответ на предложение Медиасервера, Firefox выбирает кодек VP8 вместо H264. К сожалению, Медиасервер сейчас не совместим с VP8 и поддерживает только H264. Как заставить Firefox использовать формат, совместимый с Media Server?

Удаленный SDP (предложение):

v=0
o=Flussonic 1468826141836803755 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint:sha-256C7:B3:54:AA:EB:53:21:B0:19:81:D6:29:F8:71:71:F3:1C:36:AC:DA:E9:43:8A:4B:96:C2:31:E3:A2:92:3D:95
a=group:BUNDLE video_t1
a=ice-options:trickle
a=msid-semantic:WMS *
m=video 9 UDP/TLS/RTP/SAVPF 126
c=IN IP4 0.0.0.0
a=bundle-only
a=sendrecv
a=fmtp:126 profile-level-id=64e01f;level-asymmetry-allowed=0;sprop-parameter-sets=Z2QAH6wrUCgC3IAAAAABZ2QAH6wrUCgC3IAAAAABZ2QAH6wrUCgC3IA=,aO48MA==;packetization-mode=1
a=ice-pwd:804089D4B00B2DF987C9B443387755E8
a=ice-ufrag:E39A4B11
a=mid:video_t1
a=msid:{ffe2aa2b-d835-478f-abcb-ab35424e2eb4} {9547d2eb-2fd4-427d-986c-a579646ecd29}
a=rtcp-fb:126 nack pli
a=rtcp-fb:126 ccm fir
a=rtcp-mux
a=rtpmap:126 H264/90000
a=setup:actpass
a=ssrc:4070073620 cname:{ef2d113f-c17c-40ab-bf9c-67c9dcb9eb20}

Локальный SDP (ответ):

v=0
o=mozilla...THIS_IS_SDPARTA-47.0.1 2896632948472560668 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint:sha-256 0D:FC:13:73:48:21:B0:16:79:49:62:FC:64:D6:E2:2B:66:EA:FA:92:5A:15:BD:F4:92:ED:29:22:9E:0A:9E:3F
a=ice-options:trickle
a=msid-semantic:WMS *
m=video 0 UDP/TLS/RTP/SAVPF 120
c=IN IP4 0.0.0.0
a=inactive
a=end-of-candidates
a=rtpmap:120 VP8/90000

Версия Firefox: 47.0.1 Версия OpenH264: 1.5.3


person Phargelm    schedule 18.07.2016    source источник


Ответы (3)


Я также встречаю ту же проблему.

Я пробовал следующее:
(1) Создать дополнительную возможность H.264, включая "profile-level-id=42e01f"
(2) Назначить приведенное выше описание вверху видеоблока SDP

После теста это работает - SDP ответил с H.264, и обе стороны получили медиапотоки друг друга.

(версия Firefox: 55.0.3, версия OpenH264: 1.6)

ОДНАКО

В Chrome (60.0.3112.113) я получил "488 Not Acceptable Here" от ответчика,
и попытался изменить положение добавленного описания H.264 в нижней части возможностей видео,
это решено, но для случае с FireFox это не удалось.
Пока я еще ничего не знаю об этом...

person Jack Wang    schedule 07.09.2017

Firefox отклоняет ваше предложение, порт в m-строке установлен на 0. Вероятно, вам нужна строка fmtp, описывающая как минимум ваш идентификатор уровня профиля h264 (а также асимметрию уровня и режим пакетирования)

person Philipp Hancke    schedule 18.07.2016

Вы можете заставить Firefox отдавать приоритет H.264.

  • В about::config найдите h264
  • Установите для media.peerconnection.video.h264_enabled значение true.
  • Установите для media.navigator.video.preferred_codec значение 126 (это код для H.264). Создайте эту запись, если она не существует.
person Istvan    schedule 29.07.2016