Skip to content

Casting

Casting sends a film from your phone or computer to the TV.

  1. Start the film in the web player in Chrome, or in the Android app.
  2. Press Cast in the player.
  3. Pick your Chromecast, or your TV with Chromecast built in.

The film then plays on the TV. The Android TV app has no Cast button: it already is the TV. Firefox shows no Cast button either. With Safari, or Chrome on an Android phone, the button works differently: see Browsers without a Cast session of their own.

The picture on the TV can differ from the one on your phone, and that is normal. The TV does not receive what your phone was playing: it fetches the film from the server itself, and the server prepares a version that suits the TV. The rest of this page explains how, for the curious and for the person who runs Evey.

What the TV plays

The stream is decoded by the TV, so the playback decision uses the receiver's capabilities, from the most reliable source available:

  1. What the receiver observed on itself. Evey's receiver tests its own device when it starts (which codecs and resolutions it can display, whether it displays HDR, whether it passes Dolby audio through, how many audio channels its output carries) and reports it. When this report arrives, it is the one used.
  2. Otherwise, the model. The name the Cast SDK reports (Chromecast with Google TV, Chromecast Ultra, Google TV Streamer...) maps to the documented capabilities of that family.
  3. Otherwise, a conservative profile. An unknown device, a receiver that did not answer in time, or a device found without a model name gets the capabilities of the oldest Chromecast: H.264 up to 1080p, SDR, no Dolby.

The order follows the cost of a mistake: assuming a capability the device does not have gives a black screen, while assuming too little only costs a transcode. In practice: HDR reaches the TV only when its receiver reported an HDR screen; Dolby Digital (AC-3, E-AC-3) is sent as it is only to a receiver that reported passing it through natively, otherwise it is re-encoded to AAC. A receiver that claimed surround and then failed to load the stream reloads once with a stereo ceiling.

When the TV's connection is slow

Before asking for a stream, the receiver measures its own throughput and sends it with the request. The server keeps the original video when that throughput carries it with a 20 % margin. Otherwise it chooses the highest quality the connection carries. If playback stalls anyway, the receiver reloads once on the lowest quality, provided that halves the bitrate. Stream info then shows The line the client measured cannot carry the copy or Survival rung asked for by the player.

Older cast devices do not switch quality on their own during playback; this is why the server makes that choice for them.

Browsers without a Cast session of their own

In the web player the Cast button appears when the browser can cast: Chrome on a computer, which opens its Google Cast picker, and browsers that support remote playback, such as Safari or Chrome on Android. Firefox shows none.

Where the browser cannot open a Cast session itself (Safari, Chrome on Android), a tap goes through the server, which tries in this order and takes the first device it finds at each step:

  1. a Chromecast on the network of the device you are holding, played through Evey's receiver as above;
  2. a DLNA TV on the server's network. It receives the stream the browser was playing (the original file in Direct Play, the transcoded stream otherwise): no decision is made for the TV itself;
  3. your own Evey apps open and signed in to the same account: a single one takes the film over, as with Play on; with several, the player points to Play on to choose;
  4. the browser's own device picker.

Note

Steps 1 and 2 pick the first device found, not one you choose. With several Chromecasts at home, cast from Chrome on a computer or from the Android app, which both show a picker.

When a cast does not work

A cast froze, went silent, or the phone keeps spinning.