跳转至

投屏到 Chromecast

投屏就是把电影从手机或电脑发送到电视上播放。

  1. 在 Chrome 的网页播放器里,或者在 Android 应用里,开始播放电影。
  2. 点击播放器里的投屏。
  3. 选择您的 Chromecast,或者内置 Chromecast 的电视。

电影就会在电视上播放。Android TV 应用没有投屏按钮:它本身就运行在电视上。Firefox 也不显示投屏按钮。在 Safari 或 Android 手机上的 Chrome 里,这个按钮的工作方式不一样:见自己无法发起投屏的浏览器。

电视上的画面可能和手机上的不一样,这很正常。电视收到的并不是手机正在播放的内容:它会自己从服务器获取这部电影,服务器再准备一个适合这台电视的版本。本页其余部分说明具体过程,供感兴趣的读者和运行 Evey 的人参考。

电视播放的是什么

视频流由电视来解码,所以播放方式要根据接收端(也就是电视这一头)的能力来决定。能力信息取自最可靠的来源:

  1. 接收端对自己的实际检测。 Evey 的接收端启动时会检测自己所在的设备(能显示哪些编码和分辨率、能否显示 HDR、能否直通杜比音频、音频输出支持几个声道),然后上报结果。只要收到这份报告,就以它为准。
  2. 没有报告时,根据型号。 Cast SDK 报告的型号名称(Chromecast with Google TV、Chromecast Ultra、Google TV Streamer...)对应这一系列设备公开的能力。
  3. 如果仍无法确定,使用保守的配置。 未知的设备、没有及时回应的接收端,或者没有型号名称的设备,一律按最老的 Chromecast 的能力处理:H.264 最高 1080p,SDR,不支持杜比。

这个顺序依据出错的代价确定:如果假定设备具备某种它实际没有的能力,结果就是黑屏;而低估能力,最多只是多一次转码。实际效果是:只有接收端报告了 HDR 屏幕,HDR 才会传到电视上;杜比数字(AC-3、E-AC-3)只有在接收端报告能原生直通时才原样发送,否则会重新编码为 AAC。如果接收端声称支持环绕声,之后却无法加载视频流,它会以立体声为上限重新加载一次。

电视的网络较慢时

在请求视频流之前,接收端会先测量自己的网速,并随请求一起发送。如果这个网速在留出 20% 余量后仍能承载原始视频,服务器就保留原始视频。否则,它会选择这个网速能承载的最高画质。如果播放仍然卡顿,接收端会改用最低画质重新加载一次,前提是这样能让码率减半。这时流信息会显示客户端测得的线路无法承载直拷或播放器请求的保底档位。

较老的投屏设备在播放过程中不会自己切换画质,所以服务器会替它们做这个选择。

自己无法发起投屏的浏览器

在网页播放器里,只要浏览器能投屏,就会出现投屏按钮:电脑上的 Chrome 会打开它自己的 Google Cast 选择器;支持远程播放的浏览器,比如 Safari 或 Android 上的 Chrome,也会显示这个按钮。Firefox 不显示。

如果浏览器自己无法发起投屏(Safari、Android 上的 Chrome),点按按钮后会交由服务器处理。服务器按下面的顺序尝试,每一步都选第一个找到的设备:

  1. 您手上这台设备所在网络里的 Chromecast,通过 Evey 的接收端播放,和上面说的一样;
  2. 服务器所在网络里的 DLNA 电视。它收到的是浏览器正在播放的那个视频流(直接播放时是原始文件,否则是转码后的流):不会专门为这台电视做决定;
  3. 您自己已打开、并登录同一账户的 Evey 应用:如果只有一个,就由它继续播放,和播放到一样;如果有好几个,播放器会提示您在播放到中选择;
  4. 浏览器自带的设备选择器。

Note

第 1 步和第 2 步选的是第一个找到的设备,而不是由您挑选。如果家里有好几台 Chromecast,请用电脑上的 Chrome 或 Android 应用投屏,它们都会显示选择器。

投屏不正常时

投屏卡住、没有声音,或者手机一直显示加载中。