We're experiencing issues with MP4 video in HTML5 video elements on IE and Edge. The problem seems to occur when there are many videos on the page. This happens on a number of different machines, but is more likely and frequent on machines with lower-end specs, video cards, etc.
In the first screenshot is how the videos sometimes appear after they first start playing, they are artifacted and dark, then after the videos play for a second (after they hit first keyframe, they correct themselves and continue playing with normal appearance.)
Our video tags look like:
<video loop="" playsinline="" muted="" poster="/assets/img/minigames/thumb-us-23.976.jpg" preload="none">
<source type="video/mp4" src="/assets/video/mini-us-23.976.mp4">
</video>
We're testing on Internet Explorer version 11.228.17134.0 and Edge version 42.17134.1.0, both currently the latest.
From a few threads, I've gathered that this is a long-standing issue, and it appears to me currently that there is no workaround from a developer standpoint, other than reducing the number of videos on the page. This does appear to be a problem with memory management in IE/Edge.
I didn't find similar issues on SO, but found a few that seem related around the web:
There are a lot of suggestions to disable GPU acceleration, enable VP9 video, enable Flash Player, update firmware, and such... But these don't affect anything for us, and aren't a solution for our site anyways.
It does not appear that Microsoft wants to acknowledge this, fix it, or flag it as a known issue.
This is absolutely unacceptable for our client, and it doesn't appear like there is any solution but delivering our video in Flash which Microsoft will phase out completely by late 2020.
Here is a post we made related to this issue: Video, memory management problems in Internet Explorer and Edge from many videos on page causing them to display dark/black and/or not play. I need to update the question to specifically regard a related issue where the videos in this scenario do not recover and begin to play normally like they do now that we have implemented the solution. The confusion was that there were two separate issues, and until yesterday we hadn't identified that they were distinct. The other one is solved, and this one remains a problem.