Closed Bug 1122904 Opened 9 years ago Closed 9 years ago

1080p 60 FPS HTML5 Youtube videos stutter extremely with HW acceleration on

Categories

(Core :: Audio/Video, defect)

36 Branch
x86_64
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: clogged.drainpipe, Unassigned)

References

()

Details

(Whiteboard: [youtubetest])

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
Build ID: 20150114125146

Steps to reproduce:

1. Go to a Youtube video that has the 1080p 60FPS format available.
Test case: https://www.youtube.com/watch?v=hKqraFBt0Ww
2. Make sure the HTML5 player is in use. Set the video quality to 1080p60.
3. Look for stutters and framedrops.


Actual results:

The video suffers from heavy stuttering, a lot of frames are dropped. Framedrops come in bunches, bunch size seems random. There are moments of smooth video, but they never last more than 1 second.
The statistics panel of the HTML5 player does not show any framedrops, even though they are happening. CPU and GPU usage stayed below 20%.


Expected results:

The video should have played smoothly. If any framedrops happened, they should be counted in the statistics panel. If I download the video with youtube-dl at 60FPS(no conversion of course) and play it back with MPC-HC there is absolutely no stutter.
Application Basics
------------------

Name: Firefox
Version: 36.0
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0
Multiprocess Windows: 0/1

Crash Reports for the Last 3 Days
---------------------------------

All Crash Reports (including 1 pending crash in the given time range)

Extensions
----------

Name: Adblock Edge
Version: 2.1.7
Enabled: true
ID: {fe272bd1-5f76-4ea4-8501-a05d35d823fc}

Name: DownloadHelper
Version: 4.9.24
Enabled: true
ID: {b9db16a4-6edc-47ec-a1f4-b86292ed211d}

Name: DownThemAll!
Version: 2.0.17
Enabled: true
ID: {DDC359D1-844A-42a7-9AA1-88A850A938A8}

Name: Element Hiding Helper for Adblock Plus
Version: 1.3.1
Enabled: true
ID: elemhidehelper@adblockplus.org

Name: Ghostery
Version: 5.4.1
Enabled: true
ID: firefox@ghostery.com

Name: HTTPS-Everywhere
Version: 4.0.2
Enabled: true
ID: https-everywhere@eff.org

Name: Hungarian dictionary
Version: 1.6.1.1
Enabled: true
ID: hu@dictionaries.addons.mozilla.org

Name: oab-fxaddon
Version: 1.3
Enabled: true
ID: jid1-I4HAe95cHq6CJQ@jetpack

Name: Self-Destructing Cookies
Version: 0.4.6
Enabled: true
ID: jid0-9XfBwUWnvPx4wWsfBWMCm4Jj69E@jetpack

Name: YouTube Enhancer Plus
Version: 3.3.4
Enabled: false
ID: firefoxaddon@youtubeenhancer.com

Graphics
--------

Adapter Description: ATI Radeon HD 4800 Series
Adapter Drivers: aticfx64 aticfx64 aticfx64 aticfx32 aticfx32 aticfx32 atiumd64 atidxx64 atidxx64 atiumdag atidxx32 atidxx32 atiumdva atiumd6a atitmm64
Adapter RAM: 1024
Device ID: 0x9460
Direct2D Enabled: true
DirectWrite Enabled: true (6.2.9200.16571)
Driver Date: 4-29-2013
Driver Version: 8.970.100.1100
GPU #2 Active: false
GPU Accelerated Windows: 1/1 Direct3D 11 (OMTC)
Subsys ID: 02b81043
Vendor ID: 0x1002
WebGL Renderer: Google Inc. -- ANGLE (ATI Radeon HD 4800 Series Direct3D9Ex vs_3_0 ps_3_0)
windowLayerManagerRemote: true
AzureCanvasBackend: direct2d 1.1
AzureContentBackend: direct2d 1.1
AzureFallbackCanvasBackend: cairo
AzureSkiaAccelerated: 0

Important Modified Preferences
------------------------------

accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.capacity: 358400
browser.cache.disk.smart_size.first_run: false
browser.cache.disk.smart_size.use_old_max: false
browser.cache.frecency_experiment: 4
browser.places.smartBookmarksVersion: 7
browser.search.useDBForOrder: true
browser.sessionstore.upgradeBackup.latestBuildID: 20150114125146
browser.startup.homepage_override.buildID: 20150114125146
browser.startup.homepage_override.mstone: 36.0
browser.urlbar.default.behavior: 1
browser.urlbar.suggest.bookmark: false
browser.urlbar.suggest.openpage: false
dom.mozApps.used: true
extensions.lastAppVersion: 36.0
gfx.direct3d.last_used_feature_level_idx: 0
media.gmp-gmpopenh264.lastUpdate: 1413055087
media.gmp-gmpopenh264.version: 1.1
media.gmp-manager.lastCheck: 1421452815
network.cookie.cookieBehavior: 1
network.cookie.prefsMigrated: true
places.database.lastMaintenance: 1421444578
places.history.expiration.transient_current_max_pages: 104858
plugin.disable_full_page_plugin_for_types: application/pdf
plugin.importedState: true
plugin.state.flash: 1
privacy.donottrackheader.enabled: true
privacy.sanitize.migrateFx3Prefs: true
security.disable_button.openDeviceManager: false
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1420925624

Important Locked Preferences
----------------------------

JavaScript
----------

Incremental GC: true

Accessibility
-------------

Activated: false
Prevent Accessibility: 0

Library Versions
----------------

NSPR
Expected minimum version: 4.10.7
Version in use: 4.10.7

NSS
Expected minimum version: 3.17.3 Basic ECC
Version in use: 3.17.3 Basic ECC

NSSSMIME
Expected minimum version: 3.17.3 Basic ECC
Version in use: 3.17.3 Basic ECC

NSSSSL
Expected minimum version: 3.17.3 Basic ECC
Version in use: 3.17.3 Basic ECC

NSSUTIL
Expected minimum version: 3.17.3
Version in use: 3.17.3

Experimental Features
---------------------
Component: Untriaged → Video/Audio
Product: Firefox → Core
Did you try with your addons disabled ?
Flags: needinfo?(clogged.drainpipe)
Disabling all of my addons have no difference at all.
On a hunch I have tried disabling hardware acceleration(unticked "use hardware acceleration when available"). This did change things a bit, the CPU usage fluctuated wildly between about 5%, 55% and 100%, and the lagging characteristics have changed. Sometimes the video will keep playing without major stutters for tens of seconds, while the CPU is hovering around 90-100%, but it is not smooth, it feels like its dropping a lot of frames. The statistics panel of the YT player still does not count dropped frames.
Flags: needinfo?(clogged.drainpipe)
See Also: → 1120128
Summary: 1080p 60 FPS videos lag and stutter like hell on Youtube, statistics do not record framedrops → 1080p 60 FPS HTML5 Youtube videos stutter extremely with HW acceleration on
Whiteboard: [youtubetest]
I have done some additional testing. It seems like my video hardware/driver(HD 4890, Catalyst Legacy 13.9) has a bug in DXVA, when it comes to 60 FPS videos, causing extreme stuttering. However this seems to only become a problem above 50 FPS, I have tested 1080p 50 FPS videos, and have had no issues, no visible stuttering. I suspect that all other HD48XX cards have this issue, but I do not have any to test.

A possible workaround could be blacklisting DXVA acceleration on this card, however that would have the side effect of killing DXVA for all videos, including 1080p30,720p60 and all other formats that work perfectly fine.
This would generally not be an issue, since software decoding works for all framerates, but considering that these cards are usually found in old systems with limited CPU power, software decoding may not be viable, and some users may face stuttering in 1080p30 videos if DXVA is disabled. This would degrade user experience.(problems only with 1080p60--->problems with 1080p60, 1080p30, 720p60+high CPU usage on all videos)
Therefore I propose, that DXVA should remain enabled by default on these cards but expose DXVA usage in about:config.
Blocks: youtube-mse
I am closing this, while there are still framedrops on 60fps videos, they now work reasonably well.(as of FF 40)
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago
Resolution: --- → WORKSFORME
(In reply to clogged.drainpipe from comment #5)
> I am closing this, while there are still framedrops on 60fps videos, they
> now work reasonably well.(as of FF 40)

Thanks. We're still working on improving video/graphics performance.
You need to log in before you can comment on or make changes to this bug.