Chromecast video quality

March 19, 2015 at 11:20 pm

We look at what video quality you can expect when using Google’s Chromecast in different situations, with specific details including suggested WiFi link speeds, and an explanation of how video streams are sent to Chromecast from devices on your home network.

At first glance, the idea of Chromecast and similar devices is simple – watch multimedia content from your computer or tablet/phone on your TV. Even the word “cast” might lead you to believe that the main purpose is to broadcast content from one place (your device) to another (the TV).

This is not completely true however, and to understand it better (and the affect on video quality), we need to take a step back to see exactly what’s happening.

We’re going to assume that you’ve already installed the Chromecast into the HDMI socket on your TV (and added USB power), set it up, and that you’re using a local WiFi network with either a laptop or smartphone/tablet (you can cast from more than one device).

Normal streaming video

When you’re streaming a video to a laptop (or phone/tablet), it usually works something like this: casting1a There’s a single WiFi transmission from your router to your laptop (for simplicity, we’re assuming that your WiFi is directly connected to the Internet, or wired to a DSL/Cable/Fibre modem).

Chromecast – Tab casting vs. App casting

Getting something to appear on your TV screen can work in two different modes with Chromecast:
tabcast-header
Tab casting
is directly mirroring the screen of a tab from within the Google Chrome browser.

After installing the Google Cast extension, you simply click on the cast-icon icon in the top-right of the browser, then select the Chromecast device to start casting the current browser tab. Instead of a single video stream coming in to your laptop, there are now three separate WiFi connections being transmitted at once:

  • The original video stream (red arrows) comes into your laptop
  • The Chromecast plugin re-encodes the video into a new stream, and sends it back to the WiFi router (green arrows)
  • The WiFi router sends this new stream to the Chromecast, where it’s decoded and displayed on TV

So now your WiFi has to support three connections at once, instead of a single one, and in addition, your laptop has to encode the contents of the tab in real-time. These two factors mean that tab casting is a lot more resource intensive compared to app casting.

Also, tab casting doesn’t pre-buffer the video stream very much, which makes it more responsive, but also more susceptible to spikes in CPU & network traffic.

Tab casting CPU requirements

Google suggest some minimum CPU requirements for tab casting:

Operating SystemTab casting quality: HighTab casting quality: Standard
Windows Vista
Windows 7, 8 & 8.1
2nd-generation Core i5 (2GHz+), 3rd/4th-generation Core i5 processor, or equivalentCore i3 or equivalent
Apple OS X 10.7, 10.8Macbook Pro 2011 or newer, Macbook Air 2012 or newerMacbook Pro 2010, Macbook Air 2011
Chrome OSChromebook Pixel, Samsung Chromebook 2, Haswell-based devicesNone
Windows XP
Linux
Limited performance when casting videoLimited performance when casting video

Although Linux support is listed as “minimal performance”, many people can tab cast without problems from Chrome in Linux, however you may need to tweak a few things, and make sure you’re using recent version of Chrome and your Linux distribution.

See “How can I use Chromecast” for some specific suggestions (geared towards Ubuntu, but also relevant for other Linux variants).

Tab casting WiFi connection speed requirements

Taking the additional wireless network overheads for tab casting into account, we’ve estimated some minimum WiFi connection rates that you might need for different quality levels:

WiFi link speedTab Casting: ExtremeTab Casting: HighTab Casting: Standard
Suggested WiFi link rate30 Mbps+18 Mbps+11 Mbps+
Actual video encoding rate~ 5 Mbps~ 2.5 Mbps~ 1.5 Mbps

Note that these are not Internet connection rates – they are wireless connection rates (link rates) between your laptop and WiFi router, and Chromecast and WiFi router.

These are just our unofficial, estimated guideline rates, and can be affected by your local environment and how many other WiFi devices are broadcasting nearby.

See “Checking WiFi connection rates using OpenWRT/DD-WRT” at the bottom of this page for more details on how to check these speeds on both your Chromecast and other devices.
appcast-header
App casting
 (or “Google Cast Ready”) works when you’re simply using your laptop, tablet or phone as a type of remote control for the Chromecast.

In this case, the app (or website) you want to stream content from must have Chromecast support built-in to it. This will appear as the cast button cast-icon within the app (or website) itself. Once you start casting, your device will hand off responsibility for the stream to the Chromecast, so it takes over all of the downloading and decoding of the video.

By using this technique, only a single WiFi connection is needed to stream, and you’re free to do something else on your device or laptop while the Chromecast works in the background.

Note that if you’re on a laptop and trying to cast from a supported website (e.g. Netflix), pressing the tab casting button in the top-right of the browser might work, but this can be misleading – you will see it being streamed (tab casted), but the quality will most likely be lower than it should be.

Sometimes these sites will attempt to switch you over to the higher quality app casting mode, but this doesn’t always work correctly.

  • It’s better to press the cast button within the app or website itself. This is usually located along with the other video controls such as screen size and quality setting. If the button isn’t available, it could mean that the app isn’t aware of any nearby Chromecasts to connect to.

App casting WiFi connection speed requirements

App casting can work well even with lower WiFi connection rates, since it only uses a single wireless link. We’ve estimated some minimum WiFi rates based on example video bitrates and WiFi overheads.

Many online streaming services use combinations of buffering and adaptive bitrates, so that the video doesn’t drop out entirely even if your wireless slows down temporarily. (all bitrates are stated in Megabits per second)

Video typeSuggested WiFi link rateVideo average bitrate
YouTube 360p1 Mbps+0.5 Mbps
YouTube 480p2 Mbps+0.8 Mbps
YouTube 720p5.5 Mbps+1.6 Mbps
YouTube 1080p9 Mbps+3 Mbps
Netflix1Mbps (low quality)

15 Mbps+ (high quality)
0.2 Mbps
- up to -
5.8 Mbps (1080p)
Plex 1 Mbps2 Mbps+1 Mbps
Plex 6 Mbps (eg. 720p)15 Mbps+6 Mbps
Plex 12 Mbps (eg. 1080p )30 Mbps+12 Mbps

These are best case minimum speeds without considering interference from other networks or link rate/video bitrate fluctuations.

If you’re casting from a local media server, you’ll get the best performance if that server is connected by ethernet cable to your WiFi router (either directly or via a network switch).

Otherwise, if your media server is connected wirelessly (or you’re using something like Videostream from a laptop or phone), this will significantly increase the strain and requirements on the wireless network when casting, since it will now have to support an additional simultaneous wireless data stream from media server to router.

In this case, double the link rate estimates for Plex in the table above. This can lead to the counter-intuitive situation where you might actually get better performance from casting the same content from an online or cloud file source, compared to saturating your local WiFi capacity with streaming video data being sent from one device to another.

App casting video quality 

Using Chromecast with supported apps and websites will typically result in better video quality compared to tab casting. The exact video quality will depend on the quality of the stream that the app is sending (and also your Internet connection speed). Let’s look at Netflix as an example.

  • Highest quality 1080p HD streams at 5.8Mbps. This used to be called a “Super HD” stream on Netflix, but they have discontinued using this label, now it’s just “HD”.
  • It’s been reported that Chromecast can support at least 20Mbps streams, so there should be no problem streaming the highest quality 1080p videos on Netflix.
  • Chromecast doesn’t support new 4k resolution streams – this isn’t a big problem right now, since there is very little 4k content available, and it won’t look any better on a standard 1080p HD TV.
  • You can see an example Netflix HD stream by clicking here.

    This will also display the current video resolution and bitrate (give it a few minutes to get up to speed). If you are watching this on a device such as a laptop that is less than 1080p, it will max. out at a lower resolution, so you may in fact get better quality with a Chromecast connected to a 1080p (or higher) TV, where it can automatically switch the stream to those higher resolutions.

Streaming Blu-ray quality videos from a media server

It’s possible to stream MP4 encoded or transcoded Blu Ray files (e.g. 12Mbps bitrate via Plex at 1080p which is about a 11GB file size for a 2 hour movie) from a local media server to Chromecast with good quality, but you will need to ensure that your wired & wireless setup is working properly to get the best results (see below).

  • Using something like Plex is one of the least-hassle solutions, since it will transcode high-bitrate videos down to a format that the Chromecast can handle, while also limiting high bitrate spikes in adaptive bitrate videos.

    Additionally, it provides a way to playback .mkv and other formats which Chromecast does not natively support.

    The disadvantage is that you need a Plex server box with a CPU reasonably powerful enough to handle the transcoding when necessary (they suggest a minimum of Core 2 Duo 2.4GHz). It’s been reported that Plex may have a 12Mbps limitation while streaming to Chromecast, but this is still quite an acceptable HD bitrate.
  • However, if you’re in a very heavily used WiFi area and intend to mostly stream local high-bitrate 1080p video, consider going with a wired solution instead for this purpose, or at least look at reducing the distance between router and Chromecast. See the section below for more details.

Improving casting quality

If your app or tab casting is slow, jittery or poor quality, there are some things you can look at to try to improve it:

  • Are you in a congested WiFi area?
    If you can see a lot of other WiFi networks listed when you connect to your own one, there’s a good chance that your casting may be slower due to heavy wireless traffic in the area.

    Often just changing the wireless channel that your router works on can help. You can see which channels are free (or less busy) by using a channel scanner such as inSSIDer 3 (Windows/Mac), Wifi Analyzer (Android) or similar. Unfortunately you can’t use .11a (5Ghz) channels since Chromecast doesn’t support these.
  • Are you using an older .11g router?
    It might be time to upgrade to at least a .11n router. One of the best, most cost effective at the moment is this model from TP-LINK (which can use the custom OpenWRT firmware – e.g.  this one for the most recent v9 version of the router, and also DD-WRT betas).

    It’s probably not worth upgrading to a .11ac router just for Chromecast, as the Chromecast device itself won’t take advantage of this newer standard, and a good .11n setup should work well.

    However if you’re in an area with a lot of wireless networks, it could make sense – see “Consider a dual band or .11ac router” below.
  • Is your .11n router configured to use 40MHz channels?
    This can make a big difference to your wireless connection speed. With older 802.11b/g routers, the normal wireless channel “width” was 20MHz. With .11n routers, this can be increased to 40MHz, which will give you around double the speed without any difference in WiFi range (when using devices that support .11n).

    Some .11n routers may not be setup to use this mode by default, so check on your router config page that it’s set to “20MHz/40MHz” or similar.

    You can confirm that it’s working by looking at the network display in something like inSSIDer, or checking on RX and TX rates of Associated Stations in OpenWRT (under “Network->Wifi”). Check these connection rates when streaming something over WiFi, otherwise you may not see the true connection rate.

    It’s unclear whether the Chromecast itself can make use of 40Mhz channels, however it’s still worth enabling as it may speed up the connection speed of other devices on your network. This mode does use additional wireless channels, so may be considered “greedy” in areas of high WiFi congestion, however for normal home router setups it’s less likely to be problematic.
  • Check that your wireless connection isn’t being saturated by other uses.
    This can be quite tricky to estimate correctly when there are a number of devices connecting to the same WiFi network. One thing to watch for here is background apps such as Google Drive or other file transfer networks, which can silently use up a lot of WiFi capacity.

    Another option here is when using OpenWRT or similar, check the “Realtime Traffic” (under “Status” and “Realtime Graphs”) tab to see the level of traffic on the local network. You’ll probably need to select “wlan0” to show graphs for the wireless network interface.

     realtime-traffic
  • If you’re tab casting, try lowering the quality setting
    cpu-usage3

    Windows Task Manager showing high CPU usage

    After pressing the cast-icon button in the Chrome browser, click on “Options”  and select the “Standard (480p)” option.

    Check the CPU usage on your laptop – if it’s hitting 90% or higher then it’s likely that your CPU is not powerful enough to tab cast smoothly.

    There’s not much that can be done in this case apart from either casting from a more powerful computer or trying to find the media you’re watching on a Cast-ready app or website.

  • Try using the HDMI extender that’s bundled with the Chromecast
    In each Chromecast box, there’s also a small (4″) HDMI extension cable which you can attach between the Chromecast and the HDMI socket in your TV.

    Chromecast with HDMI extender. <br class=' sb-br' />Image credit: minimachines.net

    Chromecast with HDMI extender.
    Image credit: minimachines.net

    The idea is that it by physically moving the Chromecast away from the TV, it may improve WiFi reception in cases where parts of the TV, for example the frame or bezel, are blocking the signal.

    If your Chromecast is already connecting at 72Mbps then it’s not going to make any difference. It’s likely that you might only see an improvement using this if a part of your TV protrudes between the Chromecast and the direction of your wireless router.
  • Try repositioning your router
    With WiFi, many connection problems can be solved by reducing the distance between the router and the connecting device, or avoiding large obstacles in the path between them (many walls etc.).

    Some more unusual ways of dealing with this problem include placing mirrors or tin foil sheets behind a router to act as a signal reflector, or printing out a very simple DIY antenna template, covering it with foil, and attach it to the router.
  • Consider a dual-band or .11ac router
    Dual-band routers can use both the 2.4Ghz and 5Ghz bands simultaneously. Although Chromecast doesn’t support the 5Ghz band, this may still be useful if you have an extensive wireless setup.

    By offloading some of your existing WiFi connections on to 5Ghz, it frees up capacity for devices like the Chromecast which can only use the 2.4Ghz portion. This can be especially useful in built-up areas where there is already saturation in the 2.4Ghz band.

    2.4ghz-vs-5ghz

    A wireless site survey using inSSIDer. The 2.4Ghz channels are often significantly more crowded compared to 5Ghz.


    Nearly all of the newer .11ac routers are also dual-band capable, so it’s worth looking at something like the TP-Link Archer C7 AC1750 for maximum capacity.

    You’ll still need to have .11ac compatible wireless devices to take full advantage of the increased speeds however.

Other casting options

casting-banner2 Although there are now a number of similar devices available such as the Roku or Amazon Fire sticks, Chromecast has a good combination of low cost, widespread app support, and flexible tab/screen mirroring options (from laptop and Android devices).

Not bad for a device that’s available online for less than $35.

Here are some alternative casting setups which might be worth exploring depending on what you want to watch, and where it’s stored:

  • Full-screen casting 
    You can cast your entire laptop screen from the tab casting interface. Needless to say, this is a very useful feature for anyone giving PowerPoint style presentations, for example, or classroom IT demonstrations.

    After clicking on cast-icon in the browser, click on the downward-pointing arrow on the right of the dialog box, where you can then select “Cast screen/window”.

    On Android, you can do the same by using the “Cast screen” button from the Chromecast app.

    You can’t currently mirror iPhone or iPad screens with Chromecast (at least, for non-jailbroken devices).
  • Cast local files – It’s possible to cast audio or video files that you have stored locally, by opening them directly in Chrome browser. On Windows or Mac, press Ctrl-O in the browser to open a file in a new tab. You can now tab cast this file as usual by pressing the cast-icon button.

    However there are a number of problems with this – only some basic files like .mp3 and some video files will actually play in a browser tab; other files not supported by the internal media player will simply start downloading. There’s also the additional network & CPU overheads of tab-casting mode to consider.

    A slightly better alternative is to install Plex on your laptop as if the laptop is acting as a local media server (see below).

    Another local streaming app/extension is Videostream (Chrome browser and Android), which is a more lightweight, but less polished alternative to installing Plex locally.

    For iPhone/iPad, you can try something like Photo/Video Cast.
    Android users can also check out LocalCast.
  • Cast from a local media server – You can use something like Plex to setup a local streaming media server, and connect that box directly via network cable to your WiFi router, so that you’re not using any additional wireless bandwidth when casting.

    Now simply start the cast using one of the Plex mobile or web apps, and it will hand-off the stream to the Chromecast in App casting mode, so that you’re only using a single Wifi connection when casting. Non-MP4 files may need to be transcoded by the Plex server, so it should be powerful enough to achieve this.

    Additionally, if your Plex library is installed on a WiFi-connected laptop, it may work, but will require a very solid connection, since there are now WiFi connections both from your laptop to your router, and from the router to the Chromecast.
  • Cast from a cloud file server – Android apps such as LocalCast can cast videos stored on Google Drive. For iOS, AllCast can cast from Google Drive and Dropbox, or try DbCast as an alternative for Dropbox casting. Chromebooks now support casting content from Google Drive.

    Another alternative for casting remote files is Plex, which works on all platforms. If you signup for Plex pass, you can use the Cloud sync feature to stream content stored on Google Drive, Dropbox etc.

    Again this uses app casting mode, so it will go directly from the cloud service to the Chromecast itself, instead of being re-transmitted through your laptop or other device.

Checking WiFi connection rates using OpenWRT / DD-WRT

mac-address-banner

  • Since the quality of your WiFi connection is a big factor in Chromecast quality, you need to be able to check exactly what’s happening with the connection between your devices and WiFi router.

    With laptops and some mobile devices, this is easy enough, as the current connection rate can often be seen by clicking/tapping on WiFi connection icons.

    Chromecast IP address from iPad app

    Chromecast details on iPad app

    However, it may not be immediately obvious how to see what speed your Chromecast is connecting to your router at. We need to look at the stats for connected devices on the wireless router for this.

  • First, you’ll need to find out your Chromecast IP and/or MAC address. You can find these details by using the Chromecast setup program or app, and scrolling down to the “Information” section.
  • Once you have your Chromecast IP or MAC address, you should be able to identify it on your routers “Associated Stations” or “Connected Devices” list. Not all router models give this info, so we’re going to use OpenWRT (version 14 – “Barrier Breaker”) as an example to check it.

    Login to your router, and scroll down to the Associated Stations list (under the “Status->Overview” tab). Now try to find the MAC address of your Chromecast (on some routers you can check for the IP address instead):

associated-stations

  • You should now be able to identify your Chromecast on the list, and confirm the rate it’s connecting at.

    In our example in OpenWrt, the Chromecast is connected at the maximum 72.2 Mbit for both sending and receiving. TX rate is from the point of view of the router – i.e. sending data to the Chromecast, so it’s more important in this case compared to the RX rate.

    If you’re tab casting, you can also check the TX and RX rates of your tab-casting devices here, taking into account the tab-casting data transfer layout described earlier.
  • Note that these speeds are simply the WiFi connection rates – they are maximum rates and don’t indicate the current amount of data being transferred. In practice, actual transfer speeds will be much lower than these rates, due to factors such as WiFi protocol overhead.

    Although it varies depending on the link rate and other settings, the actual transfer capacity can be thought of as 40% of the displayed rate, as a very rough estimate.
  • You should check these connection speeds while casting some content, otherwise the WiFi connection list on your router may appear to remain idle at a lower connection rate.

Your Chromecast setup

Maybe you have a specific way of casting that works especially well with your setup?

Or perhaps you’ve found that a different HDMI streaming stick does the job better?

Either way, let us know in the comments section below!

References – YouTube sample video bitrates – Bjoern Hassler – Google Chromecast minimum systems requirements