Streams randomly turn very pixelized

nathvela

Member
I have 2 issues:


1. Most of the time , published streams are smooth . But there are times when stream turns into very bad pixelated quality. And stays like that unless you rebroadcast the stream.

2. Another issue we've encountered is there are times that we only receive black video but with clear audio.

Are there settings I can tweak to solve this?

I am attaching screenshots. I am using 5.2 on a pretty good machine : Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz , 12 cpus, 62 GB

This happens when broadcasting from android mobile chrome and chrome on desktop(pc and mac) . We've not reproduced this yet on firefox.


2.jpg 1.png 3.png
 

Max

Administrator
Staff member
Hello
Try to setup bitrate settings in WCS_HOME/conf/flashphoner.properties
Code:
webrtc_cc_min_bitrate=1000000
webrtc_cc_max_bitrate=1500000
 

Max

Administrator
Staff member
Hello.
Please clarify the following:
1. What is your stream resolution?
2. What bitrate is shown in chrome://webrtc-internals, bweforvideo section, googTransmitBitrate parameter when your stream becomes poor? Attach screenshot if possible.
3. What is displayed in Stats graphs for bweforvideo (VideoBwe) section? Attach screenshot if possible.
4. What is displayed in Stats graphs for ssrc_***********_send (ssrc) (video) section? Attach screenshot if possible.
Also please test the channel bandwith between publisher and server as described here, check if you provide enough memory heap as recommended here, check UDP settings as recommended here.
 

nathvela

Member
1. 640x480
2. Please see screenshot provided
3. Please see screenshot

Screen Shot 2019-03-11 at 2.36.29 PM.png Screen Shot 2019-03-11 at 2.38.50 PM.png


My memory heap setting is :
-Xmx8g -Xms8g
 

Max

Administrator
Staff member
You have a very poor channel to publish. Please test your channel bandwith with iperf3 via UDP
Code:
iperf3.exe -c yourserver -p 5201 -u
The result will show you maximum bitrate you can publish without packets losses.
So you should set up your local network (router etc), or relocate your server to get more wide and stable channel, or reduce your stream resolution to 320x240 and lower with strict bitrate limiting.
 

nathvela

Member
Ok thanks , so is there a reliable way I can perhaps monitor from the broadcaster's side that the bandwidth is too low for the stream being pushed, while it is happening so I can just republish/readjust stream settings( eg resolution) when this happens?
 

Max

Administrator
Staff member
is there a reliable way I can perhaps monitor from the broadcaster's side that the bandwidth is too low for the stream being pushed, while it is happening so I can just republish/readjust stream settings( eg resolution) when this happens?
WebRTC browser does it for you. When bitrate is limited, browsers adjusts stream publishsing resolution if bandwidth is not enough. A bad thing is that some browsers (Safari for example) may freeze when stream parameters change.
So you should try to detect most stable publishing bitrate for your channel and set the limit on server or client side. Bitrate management is described here in details.
You can monitor current bitrate value in realtime using WebRTC statistics via WebSDK as described here, but you can not change publishing resolution on the fly.
 
Top