記事検索

検索ワードを入力してください。
Sky Tech Blog
SKYDIV 独自方​式の​カメラ/オーディオリダイレクト ​その​②​(カメラリダイレクトの​仕組み)

SKYDIV 独自方​式の​カメラ/オーディオリダイレクト ​その​②​(カメラリダイレクトの​仕組み)

SKYDIV Desktop Clientのカメラリダイレクト機能の技術紹介です。画像データのキャプチャから仮想カメラへのデータ送信、受信、OSへの返却までの流れと各工程の詳細を解説しています。

SKYDIV Desktop Client で実装されている機能(カメラリダイレクト)の仕組みについての技術紹介です。
リダイレクトについての基本的な内容は、前回の記事をご参照ください。

前回の​記事

前回は、独自方式の概要、背景、メリットなどについて記載していました。
今回は、カメラリダイレクトの仕組みについて、もう少し詳しく記載したいと思います。

カメラリダイレクトの​流れ

全体像は下記のようになっています。

図中の数字は以下を意味しています。
① 画像データのキャプチャ処理
② 画像データの変換・フレームデータを作成
③ フレームデータを送信
④ フレームデータを受信して仮想カメラにインプット
⑤ 仮想カメラからOSに対してフレームデータを返却

各工程の​解説

クライアントPC側

① 画像データの​キャプチャ処理

リモート接続先で仮想カメラが動作中になったことが検出されると、接続元のクライアントに通知されます。
それを受けて、SKYDIVランチャーが接続元PC上のカメラを起動し、画像の取得を開始します。
以降、実際のカメラデータのリダイレクトが開始されます。

② 画像データの​変換・フレームデータを​作成

フレームデータとは、動画を構成する個々の静止画像データのことを指します。
各フレームは、特定の時点での画面の情報を持ち、これを連続してつなげると動画になります。
これは、以下のようなイメージです。

また、フレームには、マスターフレーム(完全な一枚の画像)と差分フレーム(前回との変化分だけ)があり、 変化が大きい部分だけを抽出して差分フレームを構築するなど、なるべく送信データが小さくなるような工夫がされています。 これは例えるなら以下のようなイメージです。

その他、SKYDIVの設定に従って、設定されている画質への変換、設定されているフレームレートでの送信、設定されている転送量上限に抑えるための調整(画質を下げる・フレームレートを下げるなど)が行われます。

③ フレームデータを​送信

クライアント端末がつながっているリモート接続先にカメラのフレームデータを送信します。
リモートデスクトップ(RDP)の通信に任意のデータを流す仕組み(仮想チャネル)を用いて、データを送信します。

リモート接続先

④ フレームデータを​受信して​仮想カメラに​インプット

仮想チャネルに通した通信は、リモートデスクトップサービスを経由してSKYDIVの仮想デバイス管理に届き、仮想デバイスに受け渡されます。

⑤ 仮想カメラから​OSに​対して​フレームデータを​返却

デバイスが動作中になっていると、システムからフレームデータを要求する呼び出しが定期的に要求されるようになります。
これに対して、画像データ(静止画)を返すことを続けていると、ユーザーの見た目にはカメラが動画を出力している状態になります。

まとめ

全体の流れ、各工程での処理を簡単に記載いたしましたが、これに加えて、各コンポーネントの状態管理や通信コネクションの管理なども必要となります。
また、仮想デバイス周りは、デバイスドライバに関する深い知識が必要になります。
一人で作ると難しいのでチーム力が必要ですね。

以上、SKYDIV独自方式カメラリダイレクトの仕組みについての技術紹介でした。


XFacebookLINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム