MP4 black frames after a period of time

RESOLVED WORKSFORME

Status

()

Core
Audio/Video: Playback
P1
normal
RESOLVED WORKSFORME
3 years ago
2 years ago

People

(Reporter: Lily Rose, Unassigned)

Tracking

39 Branch
x86_64
Windows 7
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

3 years ago
(First bug report, sorry if I messed something up!)

Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:39.0) Gecko/20100101 Firefox/39.0 ID:20150308030227 CSet: fecf1afb0830

Steps to reproduce:
1. Open a Youtube video and make sure it's using the .mp4 format. 
2. Start the playback of the video and let it run until bug occurs.

Actual results:
The video eventually blacks out and only plays back the audio.

The length before it happens depends on the video quality. 4K video will typically black out after ~3 minutes. 1080p videos after around ~12 minutes.

Only way to continue watching the video without black frames is to refresh the page and start the playback from where the bug occurred. 

Expected results:
The video doesn't black out and keeps showing both the video and audio the whole way through. 

Note:
I had this bug for several months now, but most videos I watch typically use VP9 or are too short to get affected by this bug. Then two(?) weeks ago at some point it somehow magically got fixed with a Firefox update, but then a few updates later it came back again. 
I tried with both my main Firefox profile, and with a fresh testing profile. Issue occurred on both profiles.
(Reporter)

Updated

3 years ago
Blocks: 778617
Hello Daniel: Can you please do the following:

(1) Type about:support and paste in the graphics card information

(2) Test using Firefox 37 and see if you can reproduce the issue - https://www.mozilla.org/en-US/firefox/channel/
Flags: needinfo?(daniel_dabrowski)
(Reporter)

Comment 2

3 years ago
(1)
Graphics
Adapter Description	AMD Radeon HD 7900 Series
Adapter Drivers	aticfx64 aticfx64 aticfx64 aticfx32 aticfx32 aticfx32 atiumd64 atidxx64 atidxx64 atiumdag atidxx32 atidxx32 atiumdva atiumd6a atitmm64
Adapter RAM	3072
ClearType Parameters	D [ Gamma: 2200 Pixel Structure: R ClearType Level: 0 Enhanced Contrast: 0 ] D [ Gamma: 2200 Pixel Structure: R ClearType Level: 100 Enhanced Contrast: 100 ]
Device ID	0x6798
Direct2D Enabled	true
DirectWrite Enabled	true (6.2.9200.16571)
Driver Date	11-20-2014
Driver Version	14.501.1003.0
GPU #2 Active	false
GPU Accelerated Windows	1/1 Direct3D 11 (OMTC)
Subsys ID	32111682
Vendor ID	0x1002
WebGL Renderer	Google Inc. -- ANGLE (AMD Radeon HD 7900 Series Direct3D11 vs_5_0 ps_5_0)
windowLayerManagerRemote	true
AzureCanvasBackend	direct2d 1.1
AzureContentBackend	direct2d 1.1
AzureFallbackCanvasBackend	cairo
AzureSkiaAccelerated	0

(2)
Downloaded Firefox 37 using the link provided and can confirm the bug happening there, too.
Flags: needinfo?(daniel_dabrowski)
(Reporter)

Comment 3

3 years ago
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:39.0) Gecko/20100101 Firefox/39.0 ID:20150313030231 CSet: 42afc7ef5ccb
So, on this version I have now (update pending), I've let Firefox run all night long and it seems the bug is magically gone now? Not sure if it came with this update or if running Firefox all night had something to do with it. 
Not to mention, I can play 4K videos back without any stutter now. 
_____________________
Will apply the new update that came today and report back. 
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:39.0) Gecko/20100101 Firefox/39.0 ID:20150314030239 CSet: 38154607d807
After applying the update I played back the same 4K video and while it didn't stutter the frames did once again become black/non-existent.
(Reporter)

Comment 4

3 years ago
Interesting... Had Firefox running for over 8 hours. Tried it again and it magically worked again.
Just restarted Firefox and it's not working again..
I wonder what Firefox does when it's running for a long time that makes video playback work without issues.
Bug 1131638 was fixed after your initial bug report. It causes AMD graphics cards to fall back to software decoding when they fail in a specific way. The fallback sticks until you close Firefox. It looks like the fallback isn't always being triggered but it helps with the black frame issue.

Does media.windows-media-foundation.use-dxva=true in about:config give you more consistent results?
Status: UNCONFIRMED → NEW
Ever confirmed: true
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #5)
> Does media.windows-media-foundation.use-dxva=true in about:config give you
> more consistent results?

I meant media.windows-media-foundation.use-dxva=false
(Reporter)

Comment 7

3 years ago
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #5)
Ooh, I see. Thanks for telling! 
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #6)
Toggled the pref to false; played a few videos with a few restarts in-between and it does seem to have completely eliminated the issue.
We've blacklisted hardware decoding on all AMD cards for 4k but allow hardware decoding for lower resolutions in bug 1145029. Can you test with dxva enabled on 1080 to see if the fallback works there?
(Reporter)

Comment 9

3 years ago
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #8)
Enabled DXVA and restarted my browser. 
Started watching https://www.youtube.com/watch?v=pxTHEfolS2w in 1080p and it went black after 10 minutes and 22 seconds. 
Started watching a new video in 1080p and the black frames still happened after 9 minutes and 52 seconds in the new video. I then refreshed the page and continued the video from where it left off, and the black frames happened again after ~10 minutes. 

I am noticing the AVC version changing from 1.4* to 1.6*, though. I'm gonna assume that's the fallback since with DXVA disabled it starts at 1.6* right away.
(Reporter)

Comment 10

3 years ago
Nevermind, scratch what I said about the AVC versions. Not gonna try and guess things I don't really have that much understanding of.
(Reporter)

Comment 11

3 years ago
Hm, updated Firefox after writing my previous comment and tried again. It seems to be solved now.

According to bug 1130321 I checked bug 1145029 and that patch seems to have fixed it, even though it's still 1080p video?

I think this can be closed now, but if some issue does arise I'll make sure to update this bug again.
(Reporter)

Comment 12

3 years ago
Was watching https://www.youtube.com/watch?v=KDFCjadc_b8&feature=em-uploademail in 1080p60 and I got black frames after four minutes.
Unfortunately I can't reproduce this at all :(

I can play that video in its entirety at 1080p60 without issues.

I've got an HD 6450, and the driver version as you.
Can you please grab an about:memory report while the black frames are visible.

It's possible that we're leaking something and failing to allocate GPU resources after a certain period, though it's not obvious why it would be specific to your machine.
(Reporter)

Comment 15

3 years ago
Created attachment 8581383 [details]
Three about:memory profile measurements

Okay. Here we go. 

Main profile:
Turned on DXVA to test and restarted the browser.
I then went to the aforementioned video: https://www.youtube.com/watch?v=KDFCjadc_b8 and played it back in 1080p60. It blacked out and I took an about:memory report. I then refreshed the page and took a second about:memory report when it blacked out again. (Might show something different? Dunno.)
Test profile:
I then created a new test profile (since I love to tinker (and break) my browser and change tons of settings, might affect about:memory measurements) and also reproduced it there, and took a third about:memory report. 

Hope this helps somehow. It's quite frustrating that you guys cannot seem to reproduce it, but at least disabling DXVA is a good way to mitigate it for now.
Thanks for doing that!

Unfortunately it doesn't look like memory is the issue, no obvious leaks and both system mem and vram are well below their max.

I might have to try getting a 7970 to see if I can repro with that.

Updated

3 years ago
Priority: -- → P1

Comment 17

3 years ago
I have seeing this issue intermittently using nightly the last few days.  I have yet to see it on YouTube though.  This is a cross post from Bug 1150622 since I hadn't found this bug before posting there and this sounds more like what I'm seeing.  Videos start out fine, then at some random time in the video the picture goes black, but audio continues to play.  What I've noticed when the picture goes black is that:

-audio continues to play
-the |timeupdate| event is never dispatched
-the |currentTime| property is not updated
-the |buffered| property seems to be updated properly with new TimeRanges
-pausing the video and then playing it seems to force |currentTime| to update, but the |timeupdate| event is still not dispatched

Adapter Description	NVIDIA GeForce GTX 660
Adapter Drivers	nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
Adapter RAM	2048
Asynchronous Pan/Zoom	none
Device ID	0x11c0
Direct2D Enabled	true
DirectWrite Enabled	true (6.2.9200.16492)
Driver Date	3-13-2015
Driver Version	9.18.13.4788
GPU #2 Active	false
GPU Accelerated Windows	1/1 Direct3D 11 (OMTC)
Subsys ID	30693842
Vendor ID	0x10de
WebGL Renderer	Google Inc. -- ANGLE (NVIDIA GeForce GTX 660 Direct3D11 vs_5_0 ps_5_0)
windowLayerManagerRemote	true
AzureCanvasBackend	direct2d 1.1
AzureContentBackend	direct2d 1.1
AzureFallbackCanvasBackend	cairo
AzureSkiaAccelerated	0
(Reporter)

Comment 18

3 years ago
So I had to test something on the release channel again, and it seemed to me that it worked fine there now.
I tried nightly again with a test profile and my main profile and the issue did occur there.
And while I was writing about this I went to un-pause the video after the issue occurred (paused it to write this and check about:media), and the issue fixed itself, as in the video went from being black like usual to (for the first time ever) showing the video again without having to refresh the page. 
Weird..
Component: Audio/Video → Audio/Video: Playback
This is not a MSE bug
No longer blocks: 778617
I think this is fixed with the DXVA failure detection code. I'm going to close it but feel free to re-open it if the problem still exists.
Status: NEW → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.