Why is YouTube buffering/loading behavior so horrible in Chrome?

55

21

I have been suffering from this for months, possibly even years, and I still don't have the slightest clue about the cause.

Let's say I open a video on YouTube in Chrome, like Jamie Hyneman's Thoughts on Designing and Making with CAD, the player will instantly stop playback after the advertisment and start buffering. Once it has 10 seconds buffered, it will continue playing and stop again after having played the 10 seconds.

Googles own recommendation in cases like these is to pause the video and wait for it to fully buffer, but when I pause the video, it will never fully buffer. At best, it will load a couple seconds of video and then stop buffering altogether.

In contrast, when I open the same video in Firefox at the same time, not only will playback be perfectly fine, if I pause the video, it will fully buffer. Here is a comparison:

This is the video in Chrome. I opened it and paused it at the 0:05 mark and left it loading for about a minute. We can see the result in the scrub bar:
YouTube video in Chrome

Here is the same video after the same period in Firefox:
YouTube video in Firefox

A couple more minutes later, and the video is fully buffered in Firefox while the situation in Chrome is unchanged.

In this situation, both browsers were using the Flash player (obviously, Chrome uses its built-in implementation).

What is the cause of this behavior and how can I fix it?

Der Hochstapler

Posted 2013-04-22T19:36:33.350

Reputation: 77 228

4And how many tries did it take to stop the video at the same moment? – terdon – 2013-04-22T19:41:33.053

1I have always had to use Firefox to watch anything on Youtube as well, I really hope someone has some fixes since otherwise I use Chrome for everything. – nerdwaller – 2013-04-22T19:42:41.947

1@terdon: It was pure luck actually ;) – Der Hochstapler – 2013-04-22T19:44:36.687

8

I don't have a solution for how to change it, but I believe this might be intentionally done as smart buffering on Chrome's part, with the idea being not to waste bandwidth (or it's some sort of cookie problem, does the issue persist in Incognito mode?). There is an extension called "SmartVideo" that will allow you to set how videos buffer. Other than that, I don't know a way to change this behaviour. Also, Tested is awesome.

– Mono – 2013-04-22T19:45:41.860

@Alex: That's what I was suspecting as well, but it's only causing me problems. I would love to learn how to resolve this behavior with the built-in Flash Player. – Der Hochstapler – 2013-04-22T19:53:20.473

2@Alex: I've played around with SmartVideo for a bit and it feels like this could provide a solution as well. Especially the Ensure that videos are buffered even if they are paused option helps with the behavior I was observing when writing the question. Might be worth posting as an answer :) – Der Hochstapler – 2013-04-22T20:29:09.297

1I have used Chrome for years and had mistakenly blamed the poor performance of YouTube on YouTube being really slow. – stoj – 2013-04-23T00:20:09.073

My question is... why is the video on FireFox seem brighter than the one from the Google Chrome screenshot? Some of the colors are noticeably different. Edit: Actually now that I look at it more, are these 2 different videos? One is 9:54 seconds long the other is 9:55 seconds long. Would the different video source also cause the video to buffer differently? – C-dizzle – 2013-04-24T17:00:58.903

@C-dizzle: Are you seriously asking if, all the years I had this problem, I was always opening a different (but almost identical) video in Firefox than the one I was watching in Chrome? – Der Hochstapler – 2013-04-24T18:27:55.060

1@OliverSalzburg Not for all the years you had the problem, just in this one instance. I just happened to notice those slight differences, that is why I said something. – C-dizzle – 2013-04-24T18:51:59.350

@C-dizzle: Heheh, yeah the difference in the duration display is weird. But it was the identical video in both browsers. Or, well, let's say I opened the identical URL. I'm pretty sure that the observed behavior is/was due to Chrome applying different buffering approaches if the PepperFlash plugin in used. The SmartVideo extension seems to be able to work around this approach. Disabling the PepperFlash plugin altogether results in both browsers behaving identically. – Der Hochstapler – 2013-04-24T21:12:01.683

You'll find your answer in this very informative article YouSLOW

– phil – 2013-08-02T13:04:38.663

Answers

47

Lately, I've been experiencing video loading behavior issues again, even after applying what I suggested in my original answer.

Dash playback

From what I understand, the underlying issue is YouTube's implementation of Dynamic Adaptive Streaming over HTTP. From what I can tell, there are both server-side and client-side implementations at work here. The Wikipedia article linked above says:

Google's YouTube experimented with supporting MPEG-DASH on the server side. Google Chrome supports it on the client side. However, the implementation of the feature has resulted in video playback being severely degraded by various bugs, such as the video quality options being randomly greyed out and unselectable without multiple refreshes of the page.

Which sounds very familiar.

Solution

The currently very popular approach to solve this issue is to use the YouTubeCenter extension, which is available for a wide variety of browsers.

It allows you to disable Dash playback, but also notes:

Please note that by disabling Dash Playback will result in 480p and 1080p not being available. This is because of a recent YouTube change.

Disabling Dash playback

To disable Dash playback, just open the settings menu:

enter image description here

And untick the corresponding checkbox on the player page:

enter image description here

The result will be that videos will load as fast as possible and fully.

Please note, YouTubeCenter removes advertisements by default. If you want to support your favorite YouTube channels, be sure to consider disabling this feature.


Original answer:

Disabling the internal Flash plugin of Chrome

Seems like this is again a case of rubber duck debugging...

After posting this, I thought that I should probably check if I can simply disable the built-in Flash player in Chrome and see if that has an effect. The process is actually outlined in the Adobe Flash Player Help.

  1. Grab the installer for the latest Flash Player from Adobe and install it.

  2. Go to chrome://plugins/.

  3. Click the Details button to expand the details about single plugins:

    Chrome Plug-ins manager

  4. There should be 2 entries for the Adobe Flash Player. One is the built-in version in Chrome, the other is the normal installation. Disable the built-in one.

    Internal Flash Player plug-in

    You'll recognize the internal one easily, as it resides in the PepperFlash folder in the Chrome installation directory.

  5. Now the caching behavior should be identical to the behavior observed in Firefox.

Please note that disabling the built-in version of Flash is usually discouraged.

Using the SmartVideo extension

Alex pointed out an extension called SmartVideo. This extension gives you more control over the buffering behavior of Chrome.

I tested it for a while and am quite pleased with the results. Especially the option Ensure that videos are buffered even if they are paused affects the undesired behavior as outlined in my question.

It has several advantages over disabling PepperFlash. First of all, it gives quite a few options which I didn't even have in mind before. Like preventing YouTube to auto-play videos.

Using PepperFlash is also an advantage when using multiple monitors. If you have a fullscreen video on one screen, and another Chrome window on the second, giving focus to the second Chrome window will still keep the fullscreen video in the foreground. In contrast, if you use the external Flash player, focusing the second Chrome window would pop the taskbar in front of the fullscreen video.

Der Hochstapler

Posted 2013-04-22T19:36:33.350

Reputation: 77 228

3Note that YouTube is not the only site with this problem. Amazon Cloud Player does not allow you to use PepperFlash to upload or download from the service, because they say they have had problems with it. – Moshe Katz – 2013-04-29T19:29:01.917

Please note that for Firefox (25.0.1), Youtube Center currently suffers from layout issues resulting in youtube pages being cut off at the top. SmartVideo is great and works without any issues.

– Ashutosh Jindal – 2014-01-01T18:05:02.690

To me the SmartVideo buffer settings in Chrome are ignored. The browser always buffers whole video which isnt good for me using data limited connection. – truthseeker – 2014-06-08T12:13:24.140