Versions Compared

Key

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

...

Code Block
themeRDark
rtp_activity_video=false

Контроль наличия медиа трафика работает только при публикации, но не при проигрывании потоков.

Если браузер Chrome публикует пустое видео при занятой веб-камере

...

Code Block
languagejs
themeRDark
    session.createStream({
        name: streamName,
        display: localVideo,
        cacheLocalResources: true,
        receiveVideo: false,
        receiveAudio: false,
        videoContentHint: "motion"
        ...
    }).publish();

В сборке WebSDK 2.0.204 в пример Media Devices добавлен пример установки опции videoContentHint 

Image Added

Управление FPS в браузере Firefox

...

Отметим, что в этом случае Firefox может исключить камеру из списка при запросе доступа к ней, если драйвер камеры при запросе браузером сведений о ней не предоставляет требуемую комбинацию разрешения и FPS. Также Firefox может изменить разрешение публикации, если в сведениях о камере, предоставляемых драйвером, заданному FPS соответствует только одно разрешение.

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

1. Если веб-приложение расположено внутри iframe элемента, публикация видеопотока может не пройти.

Симптомы: ошибки IceServer error в консоли браузера.

Публикация стерео звука в браузере

Для публикации стерео звука в браузере битрейт аудио должен быть установлен не ниже 60000 бит/с. Этого можно добиться настройкой параметров кодека Opus на стороне клиента

Code Block
languagejs
themeRDark
session.createStream({
    name: streamName,
    display: remoteVideo,
    constraints: {
        audio: {
            bitrate: 64000
        },
        ...
    }
    ...
}).publish();

или на стороне сервера

Code Block
themeRDark
opus_formats = maxaveragebitrate=64000;stereo=1;sprop-stereo=1;

В этом случае браузер Firefox публикует стерео звук.

Публикация стерео звука в браузерах на основе Chrome

Для публикации стерео звука из Chrome, кроме настройки сервера, необходимы также изменения в коде клиента. В зависимости от реализации клиента, способы публикации будут разными

С использованием Web SDK

При использовании Web SDK, необходимо при публикации указать следующую опцию в ограничениях:

Code Block
languagejs
themeRDark
session.createStream({
    name: streamName,
    display: remoteVideo,
    constraints: {
        audio: {
            stereo: true
        },
        ...
    }
    ...
}).publish();

С использованием Websocket API

Если в проекте используется только Websocket API, необходимо отключить эхоподавление

Code Block
languagejs
themeRDark
    var constraints = {
        audio: {
            echoCancellation: false,
            googEchoCancellation: false
        },
        ...
    };
    ...
    navigator.getUserMedia(constraints, function (stream) {
        ...
    }, reject);

При включенном эхоподавлении Chrome публикует моно звук, даже если в настройках кодека Opus заданы параметры стерео.

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

1. Если веб-приложение расположено внутри iframe элемента, публикация видеопотока может не пройти.

Симптомы: ошибки IceServer error в консоли браузера.

Решение: вынести приложение из iframe на отдельную страницу.

...

a) включить поддержку ориентации изображения на стороне клиента для iOS Safari

Code Block
languagejs
themeRDark
session.createStream({
    name: streamName,
    ...
    cvoExtension: true
}).publish();

и в сборках сервера до 5.2.1074 отключить поддержку RTP bundle

Code Block
themeRDark
rtp_bundle=false

Начиная со сборки 5.2.1074 поддержку RTP bundle отключать не требуется

b) использовать VP8 для публикации

Code Block
languagejs
themeRDark
session.createStream({
    name: streamName,
    ...
    stripCodecs: "H264"
}).publish();

c) отключить использование GPU в настройках Safari

...