Поток веб-камеры браузера имеет чрезвычайно низкую производительность/частоту кадров

Я пытаюсь протестировать WebRTC и хочу отображать свой собственный поток, а также поток одноранговых узлов. В настоящее время у меня есть простая прокладка для получения потока камеры и передачи его в видеоэлемент, однако частота кадров чрезвычайно низкая. Редкость заключается в том, что я могу попробовать примеры с сайта WebRTC, и они работают безупречно. видео плавное и проблем нет. Я подхожу к консоли, и мой код похож на их. Что может произойти? Я попытался создать как fiddle, так и запустить этот код в квадратных скобках, но он по-прежнему работает ужасно.

video = document.getElementById('usr-cam');

  navigator.mediaDevices.getUserMedia({video : {
      width : {exact : 320},
      height : {exact: 240}
  }})
  .then(function(stream){


      if(navigator.mozGetUserMedia)
      {
        video.mozSrcObject = stream;
      }
      else
      { 
         video.srcObject = stream;
      }



  })
  .catch(function(e){
      alert(e);
  });

Почти все, что я делаю. Примите во внимание, что я использую новый navigator.mediaDevices() API вместо navigator.getUserMedia(), но я не вижу, какое это имеет значение, поскольку 1. Я использую прокладку, предоставленную группой WebRTC с именем adapter.js, которую они сами используют. 2. Я не думаю, что способ получения видеопотока повлияет на производительность.


person naughty boy    schedule 17.04.2016    source источник


Ответы (1)


Хорошо, я чувствую себя очень глупо из-за этого... Меня немного обманул тот факт, что элемент видео будет обновлять отображаемое изображение, и вам не нужно ничего делать, кроме как передать поток вывода, что означает, что изображение будет обновляться, но только в очень длинные интервалы, из-за чего кажется, что видео отстает. Что я забыл сделать, так это play() видео или добавить autoplay в качестве его свойства... теперь все работает хорошо.

person naughty boy    schedule 17.04.2016
comment
хороший улов, но это несколько неожиданно. Можете ли вы сообщить об ошибке по адресу bugs.chromium.org/p/chromium/issues/list пожалуйста? - person Philipp Hancke; 17.04.2016