16

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

4

3 回答 3

15

我已经实现了一个完整的 chromecast v2 接收器,称为 YouMap ChromeCast Receiver,可在 Google Play 商店和亚马逊商店购买,xda-developer 线程在这里: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 镜像好(我也实现了这两个,所以我知道我在说什么)。

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

于 2015-08-15T19:42:24.650 回答
12

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

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

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

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

于 2013-08-03T18:05:47.983 回答
1

谷歌正在开源部分 chrome cast。

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

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

所以理论上你可以制造一个类似的设备。

于 2014-07-16T17:27:09.640 回答