[Freeswitch-users] VP8 conference FIR Signal not always sent when frames are dropped
dodu at hotmail.co.uk
Thu Aug 18 13:53:07 UTC 2022
I am using Verto to connect to FreeSwitch over webRTC in a conference call. This works fine most of the time however when using an older device that does not support hardware acceleration for the video encoding, it appears that some frames are dropped. The CPU is pegged at 100% utilisation, with 60-80% of that being from the chrome process. This is understandable when using older hardware however when this occurs FreeSwitch fails to send FIR packets to get a new keyframe, leading to the ‘video mute’ image being shown until the next scheduled keyframe (which with VP8 is, by default, around 3000 frames, equivalent to 100 seconds at 30fps). The client seems to be unaware of any issues as it continues to encode frames and send them over the network, leading me to believe it is an issue with FreeSwitch.
My current solution is to enable the ‘kf-max-dist’ parameter in ‘vpx.conf.xml’ however this leads to occasional stuttering, I assume this is because it must encode a full frame every 10 seconds.
The other solution I have tested is swapping to the H.264 codec (the only other codec supported by webRTC) which makes the issue less noticeable however the quality of the stream drops significantly when no FIR is requested. H.264 isn’t an option for me as some of my target clients are Android devices which do not support H.264 over webRTC.
Given that sometimes the session works as expected with FIR packets being sent when needed, leading to a small video stutter before it recovers, I am unsure how to fix it or what logs etc to provide.
Any pointers would be appreciated 😊
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the FreeSWITCH-users