构建自己的Chromecast设备

时间:2013-07-24 17:39:34

标签: google-cast

Chromecast设备是一款“接收设备[运行”缩小版Chrome浏览器,带有接收器应用程序“)。我可以在Chrome浏览器上下载和安装此接收器应用程序,例如在我的Windows笔记本上吗?

3 个答案:

答案 0 :(得分:12)

chromecast设备使用DIAL协议。完全可以使用一些简单的代码来模拟此协议,以侦听多播组以进行发现,然后处理HTTP请求以启动应用程序。然后是推出的应用程序与铸造设备通信,我相信使用RAMP协议。

幸运的是,Chromecast设备使用的应用程序主要是Web应用程序,这意味着我们的设备模拟器只需要启动Web浏览器并在收到应用程序请求时将其指向特定URL。

例如youtube app,在设备发现并确定应用程序所在的位置(DIAL的一部分)之后。将包含配对密钥的HTTP POST请求发送到/<apps url>/YouTube。现在,所有仿真设备都需要在浏览器窗口中打开https://www.youtube.com/tv?<pairing key>。从这里开始,我相信,用于控制youtube应用程序的通信不是通过转换设备发送的,而是通过转换设备和仿真器上的打开选项卡发送的。

这是我对chromecast设备如何工作的理解,特别是通过查看https://github.com/dz0ny/leapcast的youtube应用程序,这是一个有youtube和google音乐工作的python模拟器。

答案 1 :(得分:12)

我已经在Google Play商店和亚马逊商店xda-developer线程中实现了一个名为YouMap ChromeCast Receiver的完整chromecast v2接收器:http://forum.xda-developers.com/android-tv/chromecast/app-youmap-chromecast-receiver-android-t3161851

目前的Chromecast协议与原始基于DIAL的协议完全不同。目前,只有YouTube仍然使用旧协议,Chromecast会保持其向后兼容性。

该发现是mDNS,与Apple TV bonjour协议完全相同。

最困难的部分是设备认证,发送者和接收者通过以极难破解的方式交换密钥和证书来进行握手。 AppleTV使用FairPlay加密也是如此。

下一个困难的部分是镜像协议,它也非常复杂,需要处理数据包分裂,数据包重传。总的来说,chromecast镜像协议设计得很好,比miracast更好,比AirPlay镜像更好(我也实现了它们,所以我知道我在说什么)。

当我有机会时,会在这里写更多。

答案 2 :(得分:1)

Google正在公开采购部分Chrome演员。

https://code.google.com/p/chromium/codesearch#chromium/src/chromecast/

https://code.google.com/p/chromium/issues/list?q=label:Chromecast

所以理论上你可以建立一个类似的设备。