Webrtc и peerjs: как выбрать h264 вместо vp8?

Я использую peerjs https://peerjs.com для установления соединения между двумя пирами.

Есть ли способ принудительно использовать код H264 вместо VP8?

С Уважением

3
0
3 818
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обновлять: Вы можете использовать setCodecPreferences для достижения того же результата, если браузеры его поддерживают.

Старый ответ:

Вам нужно будет отредактировать код peerjs, чтобы изменить кодеки.

В основном вам придется обновить SDP, а точнее, строку видео в sdp.

Видеострока будет выглядеть примерно так

m=video 60372 UDP/TLS/RTP/SAVPF 96 98 100 101 116 111

Числа 100, 101 и т. д. Соответствуют различным кодекам, которые поддерживает одноранговый узел, они представлены строками, подобными приведенным ниже:

a=rtpmap:98 VP9/90000
a=rtpmap:96 VP8/90000

Итак, вам нужно сначала получить sdp и узнать номер кодека H264, затем переместить номер в начало списка в строке видео.

Например, если 100 - это номер кодека H264, вам нужно изменить строку видео выше на

m=video 60372 UDP/TLS/RTP/SAVPF 100 96 98 101 116 111

Для вызывающей стороны измените sdp после создания предложения, но перед установкой localDescription.

pc.createOffer().then(function(offer) {

    sdp = offer.sdp;
    changedsdp = updateCodec(sdp) //Function to modify the sdp
    offer.sdp = changedsdp

    pc.setLocalDescription(offer)

Для стороны ответчика измените sdp после создания ответа

pc.createAnswer(function(answer) {
    sdp = answer.sdp;
    changedsdp = updateCodec(sdp) //Function to modify the sdp
    answer.sdp = changedsdp
  pc.setLocalDescription(answer)

Я не могу проверить, работает ли setCodecPreferences () в каком-либо браузере? Ссылка developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver/… говорит, что сейчас не работает :(

Denis Trofimov 29.06.2020 13:39

Действительно, похоже, что ни один браузер не поддерживает это.

Akil 04.07.2020 18:15

привет, вы можете помочь в моей проблеме, я сделал все, что вам нужно, но не работает stackoverflow.com/questions/62749512/…

famfamfam 06.07.2020 07:22

Другие вопросы по теме