ストリームと通知

ストリームの統合

Genvid は、最近のビデオコンテナの機能と同様に、 ストリームの統合 コンセプトを採用しています。各カメラへの音声と映像ストリームの提供に加え、データタイプにかかわらず、追加のゲームストリームを好きなだけ指定することができます。

ストリームは streamID と呼ばれる任意の UTF-8 の文字列で識別されます。各ストリームは、タイムスタンプが入ったデータ片の連続として構成されます。これにより、それが同一ストリーム内か他ストリーム内かに関わらず、すべてのデータ要素が時間によって紐づけられるようになります。

たとえば、ゲームストリームにプレイヤーの位置を送信すれば、HTML オーバーレイでビデオストリームのプレイヤーをハイライトすることができます。追加コードにより、ビデオストリームを直接クリックすることで、プレイヤーを選択することもできます。

データのレートはストリームごとに個別に設定できます。Genvid はすべてのデータにタイムコードの関連付けを行うため、すべてのストリームの適切なアクティブな値を取得することができます。

たとえば、音声システムは通常、ミリ秒単位で更新されますが、映像は 30 Hz (33 ミリ秒ごと) で固定されています。同様に、ゲームストリームを個別のインターバルで更新することができます。従って、毎回、ゲームの開始時に一度だけプレイヤーリストを送信し、レンダリング時に同一レートでプレイヤーの位置情報を更新することができます。

Generalized Streams

図 13 ストリームの統合の例

図 13 は、ゲームから生成可能なストリームの例を示します。以下の点に注意してください。

  • 音声および映像データは、ストリーミングサービスに送信します。
  • 音声データは、映像データより送信頻度が高くなります。
  • ゲーム開始時に、一度プレイヤーリストを送信します。
  • 毎フレーム、プレイヤーの位置情報と視点カメラマトリクス (3D オーバーレイ用) を送信します。
  • プレイヤーは死ぬことがあります。
  • カメラはマッチ中に切り替わる可能性があります。
  • ラストキル後に、ゲームは終了します。

アノテーションストリーム

アノテーションはストリームと似ていますが、状態を表すものはありません。特定時点のイベントを表します。アノテーションの例としては、プレイヤーの死亡やクリティカルヒットなどがあります。アノテーションはタイムスタンプをまたいで持続するものではありません。

タイムコードの特定地点から別の地点にジャンプした時に、Genvid システムは、その期間に存在するすべてのアノテーションを返します。これにより、システムによるアノテーションの見落としをなくします。

通知

システムは、迅速にブラウザに対して通知を送ります。この時にはタイムコードの関連付けは行われません。通知の例としては、ゲームが終了したことや、ゲームの結果をブラウザに送信することがあります。