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

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.jpgphoto_2019-02-01_07-26-33.jpg
 

Attachments

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 под ваши требования.

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