原始答案:

原始答案:

我已被这种症状困扰了几个月,甚至几年,但我仍然不知道其原因。

假设我在 Chrome 中打开 YouTube 上的一个视频,例如Jamie Hyneman 对使用 CAD 进行设计和制作的想法,播放器会在广告结束后立即停止播放并开始缓冲。缓冲 10 秒后,它会继续播放,并在播放 10 秒后再次停止。

在这种情况下,Google 自己的建议是暂停视频并等待其完全缓冲,但当我暂停视频时,它永远不会完全缓冲。最多,它会加载几秒钟的视频,然后完全停止缓冲。

相比之下,当我同时在 Firefox 中打开同一个视频时,不仅播放效果非常好,而且如果我暂停视频,它还会完全缓冲。以下是比较:

这是 Chrome 中的视频。我打开它并在 0:05 处暂停,让它加载大约一分钟。我们可以在 Scrub Bar 中看到结果:
Chrome 中的 YouTube 视频

以下是 Firefox 中同一时间段后的同一视频:
Firefox 中的 YouTube 视频

几分钟后,视频在 Firefox 中完全缓冲,而 Chrome 中的情况没有变化。

在这种情况下,两种浏览器都在使用 Flash 播放器(显然,Chrome 使用其内置实现)。

造成这种现象的原因是什么?我该如何解决?

答案1

最近,即使我应用了原始答案中的建议,我还是再次遇到了视频加载行为问题。

短跑回放

据我了解,根本问题是 YouTube 实施了通过 HTTP 进行动态自适应流传输据我所知,这里既有服务器端实现,也有客户端实现。上面链接的维基百科文章说:

Google 旗下的 YouTube 曾尝试在服务器端支持 MPEG-DASH。Google Chrome 在客户端也支持该功能。然而,该功能的实施导致视频播放质量因各种错误而严重下降,例如视频质量选项会随机变灰,并且必须多次刷新页面才能选择。

听起来非常熟悉的。

解决方案

目前解决这个问题非常流行的方法是使用YouTube中心扩展,可用于多种浏览器

它允许您禁用 Dash 播放,还指出:

请注意,禁用 Dash Playback 将导致 480p 和 1080p 不可用。这是由于 YouTube 最近的更改。

禁用 Dash 播放

要禁用 Dash 播放,只需打开设置菜单:

在此处输入图片描述

并在播放器页面取消勾选相应的复选框:

在此处输入图片描述

结果是视频将尽可能快速且完整地加载。

请注意,YouTubeCenter 默认会去除广告。如果你想支持自己喜欢的 YouTube 频道,一定要考虑禁用此功能。


原始答案:

禁用 Chrome 内置 Flash 插件

看来这又是一个小黄鸭调试的例子……

发布完这篇文章后,我觉得我应该检查一下是否可以简单地禁用 Chrome 中的内置 Flash 播放器,看看是否有效果。该过程实际上概述在Adobe Flash Player 帮助

  1. 抓住最新 Flash Player 的安装程序来自 Adob​​e 并安装它。

  2. chrome://plugins/

  3. 点击细节按钮展开单个插件的详细信息:

    Chrome 插件管理器

  4. Adobe Flash Player 应该有两个条目。一个是 Chrome 内置版本,另一个是正常安装。禁用内置版本。

    内部 Flash Player 插件

    您会很容易地识别出内部版本,因​​为它位于PepperFlashChrome 安装目录中的文件夹中。

  5. 现在缓存行为应该与 Firefox 中观察到的行为相同。

请注意,通常不建议禁用内置版本的 Flash。

使用 SmartVideo 扩展

Alex 指出名为智能视频。此扩展程序可让您更好地控制 Chrome 的缓冲行为。

我测试了一段时间,对结果非常满意。特别是选项确保视频即使暂停也能缓冲影响我的问题中概述的不良行为。

与禁用 PepperFlash 相比,它有几个优点。首先,它提供了许多我以前从未想过的选项。例如阻止 YouTube 自动播放视频。

使用多台显示器时,使用 PepperFlash 也是一种优势。如果您在一个屏幕上播放全屏视频,在第二个屏幕上播放另一个 Chrome 窗口,则将焦点放在第二个 Chrome 窗口上仍会使全屏视频保持在前台。相反,如果您使用外部 Flash 播放器,将焦点放在第二个 Chrome 窗口上会使任务栏弹出到全屏视频前面。

相关内容