Implementation of dropped frames correction in WebRTC. Am I loosing something ?

314 views
Skip to first unread message

Aleksey Telyshev

unread,
Dec 17, 2013, 10:43:17 AM12/17/13
to discuss...@googlegroups.com
Hello,
I have quite annoying problem that I cant solve for quite long time.
Here the issue:
I made C++ application that using WebRTC library (actually libjingle) to send video from my ip camera to Browser. 
I am using my own VP8 encoder as WebRTC capturer and then just cancelled compression step in vp8_impl.cc 
(Actually if anybody knows how to legally use already compressed frames let me know please, but so far I dont see such mechanism anymore.)
And it works quite fine.
But sometimes, it depends on network condition I see many artifacts on browser site. I believe it happens because frames get dropped by network.
I found the code in encoder that should receive RTCP packets in case correction needed (correct me if I am wrong)
void ViEEncoder::OnReceivedIntraFrameRequest(uint32_t ssrc)
which as far as I understand requests key frame to perform "re-synchronization" in video frames
And I see that it executed sometimes, probably 2-3 times, mostly at the beginnig, but it not affects on number of artifacts.
Also If I comment out (disable dropper)
    // Real-time mode - enable frame droppers.
    vpm_.EnableTemporalDecimation(true);
    vcm_.EnableFrameDropper(true);
It reduces number of artifacts. 
So my question is what I am doing wrong, how can I prevent off fix that artifacts appearance ?
Do I really need to disable dropper? How can I do it through WebRTC calls, or it is internal of WebRTC ?

Thanks
Aleksey

V

unread,
Apr 26, 2014, 10:22:36 PM4/26/14
to discuss...@googlegroups.com
How have you been making out with this?  I've been struggling with dropped frames and poor video performance when sending to all chrome browsers, and terrible lag which is rather significant when sending video to chrome on an android device.  I increase my bandwidth in the SDP which helped a lot, but things are hardly usable if you want to have a fluid high quality video.   To me it seems an issue exists in the bandwidth feedback loop where the bandwidth is falsely getting dropped down to the min bandwidth, which then in turn causes all these other issues.

If you were able to fix it or make things better, I would love to know how!  I've been trying to debug this for a couple days as it seems nobody on this board is too familiar with this issue.  I just happen to search old posts on the issue and found your post.  Honestly I don't know how anyone views the video performance as even acceptable.
Reply all
Reply to author
Forward
0 new messages