Изменяется разрешение у RTSP-стрима при трансляции в WebRTC

Discussion in 'Web Call Server 4' started by Николай Пастухов, Dec 13, 2015.

  1. Здравствуйте.

    А нас есть установленный сервер Wowza, через который производится стриминг видео. Все стримы происходят в разрешении 480x640 (вертикальное видео).

    Так же есть установленный Web Call Server 4, он используется для ретранслирования видео-стрима Wowza в WebRTC для браузеров.
    Т.е. Flashphoner просто транслирует RTSP-стрим в браузер.
    Однако получает он RTSP-стрим в разрешении 480x640 (проверял это, просматривая стрим в десктопном видео-плеере VLC) - а вот в браузер он присылает стрим уже в горизонтальном виде - т.е. 4:3 - видео сплющивается по вертикали.
    Причём сплющивает его именно сервер, т.к. лого Flashphoner (которое иногда на секунду отображается поверх видео) выводится нормальным, не сплющенным.

    Пробовал менять значение параметра video_resolution_detecting в flashphoner.properties на сервере. Так же менял параметры videoWidth, videoHeight и forceResolution в конфигурации JS-объекта FLashphoner (на клиенте) - ничего не помогает.

    Подскажите, в чём проблема?
    Web Call Server 4 пока что используется бесплатный (пробная версия).
  2. Max

    Max Administrator Staff Member

    Добрый день.
    Скорее всего у вас немного устарела версия сервера или клиента.
    В последних версиях разрешения должны работать нормально, а именно корректно задаваться с клиента.
    Например, если на клиенте задано 480x640, то такое разрешение вам и должно прийти.
    Попробуйте обновиться до последних версий клиента и сервера, доступных на странице http://flashphoner.com/wcs4#download

    Работу с разрешением удобнее всего проверять на минимальном клиенте:
    Streaming-min.html
    В HTML файле не забудьте поменять сам размер <video> объекта.
    Streaming-min.js
    Разрешение устанавливается в width и height параметрах соединения.
    Code:
     f.connect({
            urlServer: url,
            appKey: "defaultApp",        
            width: 480,
            height: 640
        });
  3. Спасибо за пояснение параметров метода connect(), до вашего поста не знал что туда передаются параметры width и height, хотя довольно долго изучал документацию.
  4. Max

    Max Administrator Staff Member

    Да, в документации их в данный момент нет. Постараемся скорректировать документацию в ближайшее время.
    В случае работы с потоковым видео, width и height используются при установке соединения клиента с сервером.
    Если WCS сервер получает поток разрешения, например 640x480 с RTSP, а на клиенте задано 320x240 для WebRTC, то поток автоматически будет rescaled к разрешению 320x240. При этом мы не следим за пропорциями, т.е. если было 480x640, то при rescaling-операции к 320x240 видео будет деформировано, т.к. пропорции не совпадают.

Share This Page