Versions Compared

Key

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

...

Code Block
themeRDark
rtp_activity_video=false

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

Отключение контроля активности видео и аудио дорожек по имени потока

В сборке 5.2.1784 добавлена возможность отключить контроль активности видео и аудио дорожек в потоках, имя которых совпадает с регулярным выражением

Code Block
themeRDark
rtp_activity_audio_exclude=stream1
rtp_activity_video_exclude=stream1

Это может быть полезно для потоков, трафик в которых может останавливаться на длительное время, например, для потоков с экрана или окна приложения:

Code Block
themeRDark
rtp_activity_audio_exclude=.*-screen$
rtp_activity_video_exclude=.*-screen$

В данном случае контроль активности не будет применяться к потокам с именами conference-123-user-456-screen 

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

...

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

По умолчанию, В сборках WebSDK до 2.0.242 эта опция по умолчанию установлена в detail и указывает браузеру удерживать разрешение, заданное в constraints при публикации. Однако, при публикации с некоторых веб камер, подключаемых по USB,  браузер может в этом случае сбрасывать FPS. Если необходимо удерживать FPS, но разрешение публикации при этом не важно, необходимо установить опцию в motion

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

Начиная со сборки 2.0.242, videoContentHint  установлена в motion по умолчанию. Значения detail или text следует выбирать только при публикации экрана в браузере.

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

...

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

...

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

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

Обход блокировки шифрованного UDP трафика

В некоторых случаях шифрованный UDP медиатрафик может блокироваться на стороне провайдера. При этом публикация WebRTC потока с использованием UDP транспорта не будет работать и завершится с ошибкой Failed by RTP activity . В таких случаях рекомендуется использовать TCP транспорт на стороне клиента

Code Block
languagejs
themeRDark
session.createStream({
        }name: streamName,
    display: localVideo,
   ...
    };transport: "TCP"
    ...
    navigator.getUserMedia(constraints, function (stream) {
        ...
    }, reject);

...

}).publish();

Также можно использовать внешний или встроенный TURN сервер либо RTMP или RTSP для публикации потока.

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

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

...