green video frames / artifacts

Wondering if anyone can tell me what this type of artifacting is indicative of? Basically where can/should I start investigating such an issue:

Screenshot 2020-10-09 172104

Screenshot 2020-10-09 172016

My hunch is this is a result of many consumers all asking for key frames and some consumers failing to get them due to the keyFrameRequestDelay. However, documentation seems to suggest this would result in black video and/or old frames being displayed. I am a little unsure if this green we are seeing is the same thing.

1 Like

I don’t know if it’s relevant, but this Firefox bug report from 5 years ago mentions some interesting possibilities:

This particular spitball answer was illuminating to me:

This is because of DataSourceSurface::GetData() returns null when we try to read the video frame in MediaPipeline.

Not sure why we can’t read the surface, but I’ll patch it up to use the new API Map/Unmap instead of the deprecated GetData/GetStride, and guard for errors.

It ended up green (I’ve seen it pink too) because the conversion from ARGB to I420 would exit early and we’d then send just-initialized 0’s over the wire.

Thanks for the reply. That is interesting… I need to see if this can be reproduced in FF I guess. This is all in Chrome (and Electron) so far. But the fact I have not seen such an issue raised anywhere else really makes me think we have something configured incorrectly. I do not feel that it is a scaling issue as our server was barely loaded. I have seen it with as few as 6 clients connected on a c5n.large EC2 instance. CPU’s / workers reporting <10% utilization. Possibly bandwidth related but the issue seems to be experienced by everyone and I know some have fairly decent (gigabit+) connections. Time to dig deeper into the stats and see if there is any correlation to PLI/FIR requests I guess.

1 Like