見出し画像

〜Google Cast〜 Local画面共有

AppleのAirPlayやGoogle Castを使えば、BRAVIA(SONY)に接続して、簡単に画面共有が可能。HDMIケーブルなしで複数デバイスを使った会議にも対応できるので、スムーズに進行できてとても便利です!

ーー Google Cast 補足技術情報 ーー 
Chromeブラウザを使用の場合
Chromeブラウザの右上にあるメニュー(縦に3つの点)をクリックします。メニューの中に「キャスト」オプションがあるので、それをクリックします。キャスト可能なデバイスが表示されるので、ストリーミング先を選択します。タブ全体、デスクトップ全体、または特定のメディアファイルをキャストすることができます。

Google Castは、ローカルネットワーク内でmDNSやDIALを使ってデバイス間のディスカバリを行い、WebSocketによるリアルタイム通信で制御を行います。実際のコンテンツは、Receiverデバイスがインターネットから直接取得し、HTTPSによって安全に再生されます。このアーキテクチャにより、ユーザーはスマートフォンやPCをリモコンとして使用しながら、直接インターネット上のリソースにアクセスする快適なストリーミング体験が実現しています。

(ChatGPTの会話より)
Google Castは、主に「Chromecast」デバイスで使用される技術で、スマートフォンやPCなどからテレビやスピーカーにコンテンツをストリーミングするためのプロトコルです。この技術は、主に次の要素で構成されます。

1. 全体的な動作の流れ

Google Castは「sender(送信者)」と「receiver(受信者)」という二つの主要な役割に分かれています。

  • Sender: スマートフォン、タブレット、PCなどのデバイスで、Google Cast対応アプリがインストールされているデバイス。

  • Receiver: ChromecastやGoogle Cast対応デバイス。これがコンテンツを再生する役割を担う。

コンテンツをキャストするとき、実際には「Sender」デバイスから直接データが送信されるわけではなく、「Receiver」デバイス(Chromecastなど)がインターネット上のコンテンツ(YouTubeやNetflixなど)に直接アクセスして再生します。Senderは単にリモコンとして機能します。

2. 通信プロトコル

Google Castの技術的な通信プロトコルは、DIAL(Discovery And Launch)とmDNS(Multicast DNS)、そしてHTTPSを使用しています。

2.1 DIALプロトコル

DIALは、Google Castが最初に使用していた**「アプリの起動」「ディスカバリ」**のためのプロトコルです。DIALは、デバイスが同じローカルネットワーク上にいるときに、受信側デバイス(Chromecastなど)を検出し、アプリケーションを起動します。

  • ディスカバリ: DIALを使って、同じネットワーク内のデバイスを発見し、互いに通信を確立します。

  • ランチ: SenderがReceiverに対してアプリを起動する指示を送ります。例えば、YouTubeアプリを起動して、その中で特定の動画を再生するように命令します。

2.2 mDNS(Multicast DNS)

DIALのディスカバリ部分では、マルチキャストDNS(mDNS)を利用して、ローカルネットワーク上のデバイスを特定します。mDNSは、デバイスがネットワーク上で自分の名前を公開し、他のデバイスがそれを検索できるようにします。これにより、Chromecastデバイスはローカルネットワーク内で見つかり、通信が開始されます。

  • mDNSの役割: スマートフォンやPCがローカルネットワーク内でChromecastデバイスを探し出し、そのIPアドレスを取得します。

2.3 HTTPS通信

コンテンツを再生する際には、Chromecastはインターネット上のリソース(例えばYouTubeの動画)にアクセスします。この通信には、セキュリティを確保するためにHTTPSが使用されます。これは、コンテンツの転送や認証の際に通信が暗号化されることを保証します。

  • コンテンツの取得: Chromecastは、Senderが指定したコンテンツのURLに直接アクセスし、HTTPSプロトコルを使用してそのコンテンツを取得、再生します。

3. Cast Application Framework (CAF)

CAFは、開発者がGoogle Cast対応アプリを作成するためのフレームワークです。このフレームワークには、SenderとReceiverの両方のSDKが含まれ、アプリケーションがGoogle Castの機能を簡単に統合できるようになっています。これにより、例えばYouTubeやNetflixのアプリは、キャスト機能を使って簡単にコンテンツを送信できるようになります。

4. メッセージングと制御

Google Castでは、SenderとReceiver間の制御やメッセージングに、WebSocketベースの通信が利用されます。このメッセージングシステムは、キャストセッションの制御に使用され、SenderがReceiverに再生や停止、シークなどの指示を送るためのリアルタイムな通信を行います。

  • WebSocket: SenderとReceiver間で、再生開始、停止、シーク、ボリューム調整などのリアルタイムの指示がWebSocketを通じて行われます。

5. セッション管理

Google Castでは、各キャスト操作は「セッション」として扱われます。セッション管理は非常に重要で、Senderがキャストを開始してから、キャストを停止するまでの間、このセッションを管理します。たとえば、再生中に他のアプリに切り替えても、キャストセッションはバックグラウンドで動作し続けます。

6. セキュリティ

Google Castのセキュリティは、主にHTTPS通信の使用と、各デバイスが固有の認証トークンを使って通信することに基づいています。これにより、キャストリクエストや通信内容が暗号化され、悪意ある第三者が介入するリスクが低減されています。

7. P2Pモード

Google Castには、インターネット接続がなくてもデバイス間でキャストを可能にするP2Pモードもあります。これはWi-Fi Directを利用して、SenderとReceiver間で直接通信する方式です。


いいなと思ったら応援しよう!