Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Поддерживаемые кодеки

WebRTC video:

  • H264
  • VP8
  • VP9 (начиная со сборки WCS 5.2.1908 и SFU SDK 2.0.268)

WebRTC audio:

  • Opus

Принципы реализации

...

Code Block
themeRDark
codecs_exclude_sfu=alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,flv,mpv,vp8,h265
webrtc_cc_min_bitrate=1000000
profiles=42e01f,640028

...

В этом случае медиа трафик пойдет через TURN сервер, встроенный в WCS. Эту возможность можно использовать также для обертывания WebRTC трафика в TCP при плохом качестве каналов у клиента, т.к. WCS не поддерживает TCP транспорт для SFU потоков.

Поддержка VP9

Начиная со сборки WCS 5.2.1908 и SFU SDK 2.0.268, при публикации и проигрывании SFU медиатрафика поддерживается кодек VP9

Code Block
themeRDark
codecs=opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h264,vp8,vp9,flv,mpv

Для тех случаев, в которых кодек VP9 не поддерживается другой стороной (например, SIP звонки), он должен быть исключен

Code Block
themeRDark
codecs_exclude_sip=mpeg4-generic,flv,mpv,h265,vp9
codecs_exclude_sip_rtmp=opus,g729,g722,mpeg4-generic,vp8,vp9,mpv,h265

Чтобы включить использование кодека VP9 для SFU, необходимо исключить для этого сценария кодеки H264 и VP8

Code Block
themeRDark
codecs_exclude_sfu=alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h265,flv,mpv,vp8,h264,h265

Кодек VP9 дает возможность использовать SVC (одновременную публикацию нескольких качеств) на стороне браузера, указывая нужный scalabilityMode в настройках кодирования

Code Block
languagejs
themeRDark
{
  "room": {
    ...
  },
  "media": {
    "audio": {
      "tracks": [
      ]
    },
    "video": {
      "tracks": [{
        "source": "camera",
        "width": 1280,
        "height": 720,
        "codec": "vp9",
        "encodings": [
          {
            "rid": "nonsense",
            "active": true,
            "scalabilityMode": "L1T3"
          }
        ]
      }]
    }
  }
}

В данном случае будет опубликована видео дорожка в одном разрешении (L1) с тремя FPS (T3). Полный список возможных режимов приведен здесь.

Ограничения

1. Не рекомендуется совмещать Simulcast (публикацию нескольких профилей кодирования) и SVC, поскольку такое сочетание может не поддерживаться браузером.

2. Для захвата экрана доступна публикация только в одном разрешении (L1), другие настройки игнорируются. Данное поведение зафиксировано на уровне WebRTC библиотеки и не зависит от используемого браузера.

Известные проблемы

1. Публикация потока, захваченного с какого-либо из окон на экране в нескольких качествах, и сворачивание этого окна приводит к крашу вкладки браузера Chrome

...