In case its of interest to anyone or anyone can help me, I had a quick play and got stuck...
A lot of this is based on assumptions as I don't have time to do massive amounts of research. Please correct me where I'm wrong.
I really want to stream natively in MPEG2-TS. The new beta player library (
https://developers.google.com/cast/docs/player) seems to support this via MPEG-DASH, so I naively tried hooking a stream up to a custom receiver app that executes "cast.player.api.CreateDashStreamingProtocol(host)". Having sent a url of "http://x.x.x.x:8081/dvblink/direct?client=TestClient&channel=10040000" via a custom chrome sender app. Nothing, a black screen and no errors in the chromecast console. If I point it at a public stream on the internet it works.
Its also worth noting that I had to use a reverse proxy to get around CORS (
https://developers.google.com/cast/docs/player). I don't think I can place an xml file at "http://x.x.x.x:8081" so it was the only way of getting the custom receiver to attempt a connection to the stream. The reverse proxy made it look like the custom receiver html was on the same address and port as the stream. I confirmed that the reverse proxy worked with the tv stream by running the proxied url through VLC.
I then tried requesting a HLS stream with transcoding via c# and feeding the returned url to the custom receiver app via the sender app, again a black screen and no errors in the chromecast console.
"provider.PlayChannel(new RequestStream("x.x.x.x", int.Parse(channel.ID), clientId, RequestStream.IPHONE_TYPE, new Transcoder(1280, 768, 4048, "eng")));"
I can confirm that the Plex add in works ok via chromecast and with transcoding in Plex, but again I don't really want the hit of transcoding.