Очень непостоянный фреймрейт при скриншеринге

При назначенных 10 выходит от 0 до 150 кадров в секунду. Большую часть времени (и в среднем) близко к норме, но иногда по 5-10 секунд паузы и 50-100 кадров выплевывается за долю секунды потом. Куда смотреть, что может быть не так? Какие настройки на сервере и на клиенте рекомендуете для стабилизации фреймрейта и предотвращения затыков?
 

Max

Administrator
Staff member
На Windows 8 и 10 есть похожая проблема с H.264 кодеком.
Попробуйте поставить кодек vp8 в приоритет на стороне сервера.
Настройка WCS_HOME/conf/flashphoner.properties
Code:
codecs=opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,vp8,h264,flv,mpv
 
Спасибо. Особо не помогло. Но хуже тоже не стало. Исходящие потоки действительно стали VP8.
Можно ли каким-то образом назначить bandwidth для отсылки? В p2p webrtc и в wowza это возможно. Мне кажется что проблема в том что оно старается потреблять "сколько есть", чтобы обеспечить максимальное качество, а исходящий всего несколько мегабит, и когда вдруг этого начинает не хватать скажем при резкой смене сцены - возникает затык, а потом опять снова. Потребление полосы в webrtc-internals выглядит как крайне неравномерная "пила". Если бы я зафиксировал отдачу скажем 1 мбит/с для скрина и 300 кбит/с для вебки - стабильность точно улучшилась бы.
 
Last edited:

Max

Administrator
Staff member
Битрейт можно выставлять на стороне клиента (javascript) и на стороне сервера
1. На стороне клиента в килобитах в секунду:
Code:
session.createStream({name:'stream1',constraints:{audio:true,video:{minBitrate:300,maxBitrate:500}}}).publish();
2. На стороне сервера в битах в секунду: webrtc_cc_min_bitrate=30000 и webrtc_cc_max_bitrate=10000000
Приложите пожалуйста скриншоты webrtc-internals чтобы там было видно в том числе график bweVideo.
 
Last edited:
Top