[Google Chromecast] Asphyx:
I hate to break it to you but the video may have started off as a 1080P when Uploaded, but YouTube encoded it at a different Res.

timestamp seconds 341.039
[B]640x360,[/B] 0 average kbps, 100% volume
TagStreamPlayer, HTTP, 190350 kbps
10 stage fps, 30 video fps, 6 dropped, 0 kbps
software video rendering, software video decoding
NaN db, 1 audio factor

You are however getting 20Mbps which is why the picture is so clear! But I'm not so sure how accurate their Stats for Geeks info really is. So take all those stats with a grain of salt.

Correct. But I'm not sure if the 4Mbps is the TOP limit but the low limit as is mentioned in the parameter isRequired="false" Plex only transcodes if it has to, It works best though when it doesn't transcode. On the Plex Site I have seen a few posts regarding Surround and Transcoding. It seems transcoding is not passing Surround Multichannel but when it passes the video clean surround works fine.

There are two Transcode target profiles (protocols) Plex uses...HLS and DASH. From the looks of it HLS (guessing High Level Stream here) may be a minimalist TRANSCODE profile. It merely takes Non H264/AAC Codec Material and sends it off in H264 format uncompressed with MP3 Audio. It has no parameters for Bitrate defined meaning whatever the file is as far as Bitrate will pass onto the CCast which jives with aVia assertion that the CCast can handle Video Bitrate up to 10Mbps. (That may even be a conservative number on their part and only relevant to their way of doing things.) HLS also has no Video Transcode target definition which is why I think this is not really transcoded and just doing Codec Flipping.

It does however get defined in the transcode Target section, It just doesn't have a target profile or change the video resolution and Bitrate in any way I can see. Only thing it does seem to change is the Video (to H264) and Audio (to MP3) codec. I suspect this in only used when the codec is not H264 and the Audio codec is not AAC or Multichannel.

<VideoProfile protocol="hls" container="mpegts" codec="h264" audioCodec="mp3" context="streaming">
<Setting name="VideoEncodeFlags" value="-x264opts bframes=3:cabac=1" />
<Setting name="SubtitleSize" value="100" />
</VideoProfile>

Dash protocol however is the one that is limited to 720P and sets the Bitrate at 4Mbps.

<VideoProfile protocol="dash" container="mp4" codec="h264" audioCodec="aac" context="streaming">
<Setting name="VideoEncodeFlags" value="-x264opts bframes=3:cabac=1" />
</VideoProfile>

and later in the XML

<TranscodeTargetProfiles>
<VideoTranscodeTarget protocol="dash" context="streaming">
<VideoCodec name="*">
<Limitations>
<UpperBound name="video.width" value="1280" />
<UpperBound name="video.height" value="720" />
<UpperBound name="video.bitrate" value="4000" isRequired="false" />
</Limitations>
</VideoCodec>
</VideoTranscodeTarget>
</TranscodeTargetProfiles>

Note... Dash does send Surround as AAC but also brings the video down to 720P. Best guess is this is used when the video is not MP4/H264 and/or the audio is not AAC but some other multichannel surround format.

How Plex determines when to transcode (and which profile to use) and when not to I don't really know. And I note a DIRECTPLAY Profile which may be that third protocol I mentioned above. One for Video, Two for Music and one for Pictures.

It's possible this set of XML is what determines if transcoding happens or not...

<DirectPlayProfiles>
<VideoProfile container="mp4" codec="h264" audioCodec="aac" />
<MusicProfile container="mp4" codec="aac" />
<MusicProfile container="mp3" codec="mp3" />
<PhotoProfile container="jpeg,gif,bmp,png" />
</DirectPlayProfiles>

Note there is no Bitrate mentioned there....But it does seem that anything that is not MP4/H264 and AAC will not play DIRECT (sans Transcoding) and use the Dash or HLS Protocols. Which one and how it determines this I'm I'm not sure.

Best guess is that if the file is not MP4/H264 or Multichannel audio it will use HLS and convert Video to H264 and Audio to MP3.

Dash gets used when the file is not MP4/H264 and Multichannel Audio is present but not AAC. MP4/H264 with AAC audio goes direct without transcoding.

Now it might be interesting to play with the XML parameters and see just how far we could push it.

I bet the Direct Play parameters could be tweaked to support other formats like VP8 which the CCast can handle Natively. But it may not work because if Plex sends an App (like Netflix) it may be their App is only capable of H264 and AAC/MP3 so transcoding happens when they know that is not the case or the player app reports an issue back to the server that there is an issue playing back the file.