Chromecastデバイスは、「レシーバーデバイスで、レシーバーアプリケーションを使用して縮小されたChromeブラウザーを実行する」デバイスです。このレシーバーアプリをダウンロードしてWindowsのノートブックなどのChromeブラウザにインストールできますか?独自のChromecastデバイスを構築する
答えて
クロマキャストデバイスは、DIALプロトコルを使用して動作します。いくつかの単純なコードを使用してこのプロトコルをエミュレートして、マルチキャストグループ上で検出をリッスンしてから、アプリケーションを起動するHTTP要求を処理することは完全に可能です。その後、キャスティングデバイスと通信するアプリケーションが起動しました。私はRAMPプロトコルを使用すると信じています。
幸いなことに、私たちのために、クロマキャストデバイスが使用するアプリケーションは主にWebアプリケーションです。デバイスエミュレータは、Webブラウザを起動してアプリケーションリクエストを受信すると、特定のURLを指定する必要があります。
たとえば、デバイスの検出後、アプリケーションがどこに配置されているかを確認する(DIALの一部)。ペアリングキーを含むHTTP POST要求を/<apps url>/YouTube
に送信します。すべてのエミュレートデバイスは今ブラウザウィンドウで開いてhttps://www.youtube.com/tv?<pairing key>
です。ここから、私は、YouTubeアプリケーションを制御するための通信は、キャスティングデバイスを介してではなく、キャスティングデバイスとエミュレータの開いているタブを介して送信されると信じています。
これは私の理解しているのは、クロムキャストデバイスがどのように動作していて、具体的にはyoutubeアプリがhttps://github.com/dz0ny/leapcastを見ていて、それはyoutubeとgoogleの音楽を持っているpythonエミュレータです。
V2 Chromecastは現在[mDNS現在](https://github.com/jloutsenhizer/CR-Cast/wiki/Chromecast-Implementation-Documentation-WIP)を使用していますが、 protobuf](https://github.com/google/protobuf)残りの部分は流れの多かれ少なかれ同じです。残念ながら、リンクされたLeapcast(まだYouTubeのためにうまくいく)でV2を動作させるための開発が遅れているようです。 – Wrikken
それは正しいです、最近、私はいくつかのパケットをキャプチャした後、少なくともこれらのプロトコルが交渉の一部をしていることを発見しました: - 239.255.255.250へのUDP/IGMPメンバーシップ。 - TCP/XML応答を含む239.255.255.250へのUDP/SSDP m-検索。 - ChromeCastからPCへのUDP/uPnP応答ユニキャスト。 - ChromeCastからのマルチキャスト応答を含む224.0.0.251へのUDP/MDNS質問。 – JCM
Googleはクロームキャストの一部をオープンソーシングしています。
https://code.google.com/p/chromium/codesearch#chromium/src/chromecast/
https://code.google.com/p/chromium/issues/list?q=label:Chromecast
だから、理論的には、あなたが同様のデバイスを構築することができます。
私がGoogle PlayストアとAmazonのストアで利用できるYouMap CHROMECASTレシーバーと呼ばれる完全なChromecastのv2の受信機、、、ここでXDA-開発者のスレッドを実装している残念ながら、ChromecastエコシステムはGoogleが所有し、管理している暗号化によって保護されているため、最初の部分(オープンソーシング)は2番目を意味しません(理論的には同様のデバイスを構築できます)。 – mjaggard
現在のChromecastプロトコルは、オリジナルとは全く異なるものですDIALベースのプロトコル。現在のところ、YouTubeだけが以前のプロトコルを使用しています。これは、chromecastが下位互換性を維持しています。
発見はmDNSで、Apple TVのBonjourプロトコルとまったく同じです。
最も困難な部分はデバイス認証であり、送信者と受信者はキーと証明書をやりとりするのが非常に難しい方法でハンドシェイクを実行します。 AppleTVはFairPlay暗号化を使用して同じことを行います。
次の難しい部分は、非常に複雑で、パケット分割、パケット再送信に対処する必要があるミラーリングプロトコルです。全体として、クロマキャストミラーリングプロトコルは、ミラキャストよりもうまく設計されており、AirPlayミラーリングより優れています(私は両方とも実装しているので、私が何を話しているのか分かります)。
私はチャンスを得るとき、ここでもっと書きます。
ハードウェアDRMが使用されているようです?)を使用してキャスト受信者を認証します。これは、受信者をエミュレートしたい場合は、少なくとも正当な犠牲デバイスを必要としています。 – deed02392
- 1. ASP.NET - 独自のルーティングシステムを構築する
- 2. OSが独自に構築するパス
- 3. 独自のモジラを構築するためのリソース
- 4. WP7:独自のDatePickerPageを構築して使用する
- 5. 例/使用 - 独自のControllerFactoryを構築する場合?
- 6. 独自のStreamTokenizerをJavaで構築する
- 7. 独自のCura GUIを構築するには?
- 8. Symfony 2:独自のDBアクセス層を構築する
- 9. 独自のiOSスタティックライブラリの構築 - 他のフレームワークとのリンク
- 10. 独自のコンストラクタ内のGdiplus :: Fontの構築
- 11. Apple用のBluetoothデバイスを構築する
- 12. 私は独自のライブラリの上にGPLのアプリケーションを構築できますか?
- 13. SwiftでUISlider自動スライドを単独で構築する方法は?
- 14. sbtを使用して独自のスタンドアロンコンソールを構築できますか?
- 15. mavenプロジェクトは独自の依存関係を構築していますか?
- 16. 独立したオブジェクトディレクトリにツリー外のLinuxカーネルモジュールを構築する
- 17. ダガー自体を構築する方法
- 18. SQLエンジンとは独立したアプリケーションを構築する
- 19. 私たちはPHPフレームワークを使用するか、独自のものを構築すべきですか?
- 20. 自動構築常にオン
- 21. ノードでJavaで自分自身のキューを構築する
- 22. アンドロイド用に独自のJavaベースのYouTubeのhtml5ビデオプレーヤーを構築するオプションはありますか?
- 23. 電話以外のデバイスのフレーバーを構築する
- 24. アプリケーションがデバイスに構築されない
- 25. uber apiを使用して独自のバックエンドサービスを構築することはできますか?
- 26. 独自言語のASTを構築するにはどうすればよいですか?
- 27. 独自のカスタムセッションストアクラスを構築するにはどうすればよいですか? (:cookie_store)
- 28. 独自のSQLパーサーを構築するにはどうすればいいですか?
- 29. Windows Azure VM(Mac)でiosデバイス用のIonicアプリを構築する
- 30. ハッシュマップの独自のプロローグ構造を実装する方法
これはプログラミングに関する質問ではないので、Stack Overflowはこのための場所ではありません。しかし、あなたの質問に対する答えは「いいえ」です。 –
これはプログラミングに関する質問ではありませんが、このアプリケーションをダウンロードすることができれば、私のソフトウェアでこれをどのように統合するのか見てみたいと思います。それはプログラミングの質問になります。 –
Chromecast APIを使用してコンテンツをChromecastに送信するアプリケーションを作成する場合は、コンテンツ制限を理解するためにAPI(およびデバイス)が出てくるのを待つ必要があります。 ChromecastはGoogleが販売するデバイスで、Chromecast APIを介して通信することができるため、「自分のデバイスを作成できますか?」という質問には「いいえ」と答えています。 –