Проблемы с транскодингом при публикации через webrtc

Discussion in 'Общие вопросы' started by Taller, Feb 1, 2019.

  1. Taller

    Taller New Member

    Возникли проблемы с транскодингом. При попытке задать ratio трансляции 16:9 ( constraints: {audio:true, video:{width:640,height:360}} ) при публикации возникла ошибка - "Warn core" - overconstraonerError. При передаче параметров ratio в embed как &resolution=640x360 - видео деформировалось и получилось как на скрине ниже.
    Нам необходимо добиться транскодинга, чтобы в плеере не было полосок при публикации из браузера через webrtc.
    photo_2019-02-01_10-49-11.jpg photo_2019-02-01_07-26-33.jpg

    Attached Files:

  2. Max

    Max Administrator Staff Member

    1. Разрешения, которые вы указываете при трансляции, не поддерживаются вашей веб-камерой.
    Попробуйте другие.
    Например Mac OS Safari поддерживает захват 1280 x 720
    Пример:
    Code:
    session.createStream({name:"stream1",constraints:{audio:true,video:{width:1280,height:720}}}).publish();
    примеры
    2. Видео подстраивается под размеры div - блока, который выделен для воспроизведения.
    Чтобы полностью контроллировать воспроизведение, попробуйте пример Player
    https://demo.flashphoner.com/client2/examples/demo/streaming/player/player.html
    https://demo.flashphoner.com/client2/examples/demo/streaming/player/player.js

    В коде player.html есть div-элемент. В этот элемент монтируется видео и вы можете управлять размерами этого элемента.
    Code:
    <div class="display" id="remoteVideo">
    </div>
    Далее в коде:
    https://demo.flashphoner.com/client2/examples/demo/dependencies/js/utils.js
    Есть функция resizeVideo
    Code:
    function resizeVideo(video, width, height) {
    if (!video.parentNode) {
    return;
    }
    ...
    Эта функция вписывает video в div - элемент, в зависимости от разрешения входящего видео.
    Т.е. если мешают черные рамки вокруг видео, попробуйте создать простой div, проиграть в нем видео и поменять функцию resizeVideo под ваши требования.

    Полоски могут остаться, например при использовании Chrome.
    Если вы запрашиваете камеру 16:9, а ваша камера поддерживает только 4:3, то Chrome браузер отдаст вам 16:9 и впишет туда 4:3, оставив полоски по бокам.
    Эти полоски можно убрать только транскодингом с фильтрами на стороне сервера. Такие фильтры на данный момент не реализованы.
    Taller likes this.
  3. Taller

    Taller New Member

    Спасибо

Share This Page