Genvid SDK 1.4.0

Genvid SDK 1.4.0 へようこそ。このリリースでは、まだプロダクションのデプロイを行うことはできませんが、完全な Genvid のライブ配信体験を既存のプロジェクト内に開発できます。

当社の開発チームは、プロダクションのデプロイが可能な SDK のバージョンを近日中に公開できるよう日々努力を積み重ねています。また今後のリリースで、スムーズな移行ができると期待しています。それまでに、是非とも統合を始めておかれることをお勧めします。

現在の機能

現在、ゲームを実行して YouTube にライブ配信するためのコア機能が用意されています。また、実際の Genvid のストリーミング体験を実現するゲームの追加イベントやメッセージなども用意されています。

  • D3D11 ビデオキャプチャ
  • WASAPI オーディオキャプチャ
  • ビデオエンコード (H264 + AAC)
  • YouTube へのライブ動画配信
  • 任意の追加ゲームイベントおよび通知のライブ配信
  • スケーラブル イベント メッセージ システム
  • ビデオとゲームデータストリームの自動同期
  • 統合しやすいネイティブおよび Web SDK
  • サンプル チュートリアル プロジェクト
  • サンプル Unreal Engine 4 プロジェクト
  • 詳細な解説書
  • ローカル デプロイ用ツールとスクリプト
  • クラウド デプロイ用ツールとスクリプト (ベータ)
  • Genvid SDK の Unity engine 統合 (ベータ)

今後追加を予定している機能

さらに、最初のローンチ後にリリースされるすべての新機能のパイプラインを作成中です。

  • クラウドでクラスタを直接管理する bastion ホスト
  • シークレット (secret) パラメータの取り扱いの安全性向上
  • ユーザーの認証と確認
  • 対応動画フォーマットの追加
  • ハードウェアエンコード
  • 複数のデータセンターに対応
  • 複数の配信セッション管理
  • 同一インスタンス、または複数のインスタンスからの、複数の動画およびデータのストリーミング
  • 外部ソースからのオーディオ/ビデオストリーミングをサポート
  • インスタント リプレイ
  • ライブ動画編集と基本コンポジション効果
  • データストリームのオフライン録音と再生
  • オフライン配信セッション編集

このバージョンの主な変更点

Genvid-UI を3 分割

Genvid-UI は 3 つのサービスになりました。 cluster-api サービスは、特定のクラスタを管理できます。 bastion-api は、クラスタへのアクセス管理、新しいクラスタの作製と破棄を行うことができます。 genvid-ui は、以前と同様、2 つのサービスのフロントエンドを提供します。これらのサービスのインターフェイスは、まだベータ版のため、将来変更される可能性があります。

Unity Plugin 用の新 SDK バージョン

Genvid SDK の統合には、従来とは違い、コードが簡単で使いやすいメソッドを使用するように変更しました。現在、Genvid SDK 用 C# ラッパーを使用することで、C# アプリケーションとの互換性を実現しています。GenvidPlugin は、Unity アプリケーションのビデオキャプチャにしか使用できません。ファイルおよび統合方法については、 Unity サンプル統合 ページを参照してください。

Unity サンプルの Web SDK 統合の簡略化と詳細な資料

プロジェクト構造の簡略化で、Unity サンプルの Web ページで使用するファイル数が少なくなりました。それぞれのファイルについて、詳細な説明を作成しました。このページで紹介している Genvid Web SDK 統合は、ほとんどのプロジェクトでご利用いただけるため、Genvid Web SDK 統合方法について不明点がある場合にご欄ください。 Web サンプル で確認いただけます。

その他変更点や修正点

  • [sdk] NV12 テクスチャバッファ形式のサポートを追加。

  • [sdk] 任意のビデオフレームフォーマットの送信サポートを修正。

  • [project] Genvid プロジェクトに、

    Genvid UI のテンプレートリンクを追加できるようになりました。

  • [ツールボックス] python ツールボックスが、cluster api の設定の検証を行うようになりました。

  • [toolbox] python ツールボックスが、リンクを開くために cluster API を使用するようになりました。

  • [toolbox] local.py open がリンクリストを返すようになりました。

  • [toolbox] Windows で有効な DNS アドレス確認を改良しました。

  • [ツールボックス] Genvid-UI で、ログレベルを設定できるようになりました。

  • [ツールボックス] ログのリストを cluster-api で管理できるようになりました。

  • [ツールボックス] DockerToobox.build_docker() にログを返します

  • [ツールボックス] static_binding は、GENVID_STATIC_BINDING 環境で使用するようになりました。

  • [data streams] Websocket ストリームが圧縮をサポート。

  • [documentation] 新規ゲームの追加方法のセクションを追加。

  • [documentation] ストリームのパラメータ一覧の誤字を修正 (video.source.id3d11texture2d)。

  • [cloud] ゲームインスタンスの AWS アベイラビリティゾーンのサポートを追加。

既知のバグ

このリリースでは一部のバグが未修正のまま残っていますが、まもなく修正する予定です。

Vault 初期化のエラー

Vault 初期化中に競合が発生しています。もう一度設定コマンドを実行することで、解決します。

Windows がスリープ状態から復帰後、アプリケーションが正常に動作しない

Nomad 自体の動作を含め、スリープ中のジョブで問題が発生する場合があります。Nomad 側で修正される可能性は低いですが、プロダクション環境では発生しません。最善の回避方法としては、サービスの実行中は Windows がスリープ状態にならないようにするか、 local.py reinstall でサービスを開始しなおすことです (local.py restart だけでは不十分です)。

手動で再スタートした後、YouTube のストリームが正しくリセットされない

サービスが停止して、その直後に再スタートした場合、YouTube のライブ配信サービスは、同一ライブ配信セッションであると判断します。ほとんどの場合は、これで問題ありませんが、サービスと実際の視聴との間に長い遅延が発生するために、直前のセッションが表示されてしまう可能性があります。今後のバージョンでは、新しいストリームを適切にリクエストする方法を実装する予定ですが、それまでは、YouTube ダッシュボードからストリームキーをリセットするか、サービスを再スタートする前に、しばらく (数分程度) 時間を空けるようにしてください。

オーディオがマイクの音声やループを無限にキャプチャする

ループバックデバイスでオーディオをキャプチャしているため、ゲームを実行しているマシンを通過するすべてのサウンドがキャプチャされます。これには、システムアラートやマイク入力だけでなく、Web ブラウザも含まれます。ゲームを実行しているマシンからゲームストリームを鑑賞した場合、最大 10 秒の徐々に音質が劣化 (ストリーミングのたびに圧縮がかかるため) するエコーがかかった状態で、ゲーム自体のオーディオをキャプチャしているのが確認できます。推奨する解決策としては、オーディオを無効にする (設定ファイルの genvid.encode.input.silent = true) 方法、または、Web サイト監視に別のマシンを使用することです。この問題は、ゲームをクラウド環境でデプロイした際には発生しません。

オーディオが同期しない

オーディオに若干同期のズレが発生する場合があります。次回のリリースで修正予定です。それまでは、設定ファイルでビデオの遅延を設定することで、ビデオに遅延を追加してください。デフォルト値は genvid.encode.output.videodelay = "1250ms" (最後が ms で終わる文字列の形式) です。

シャットダウン後、AWS サーバーが正常に動作しない

サーバーをシャットダウンすると、パブリック IP アドレスが消失し、システムが新しいアドレスをうまく取得できなくなります。 cloud.py reinstall でサーバーを再インストールする必要がありますが、長い時間が掛かってしまいます。クラウド サポートの公式リリースで、この問題が解消できるよう、作業を行っています。

Unity エディタがビデオキャプチャをサポートしない

スタックを実行中、Unity editor でアプリケーションを開始しようとした場合、問題が発生することがあります。現時点では、アプリケーションが実行ファイルとして組み込まれている場合にのみ、スタックを実行するようにしてください。なお、クリックするだけで、Unity サンプル用 Genvid SDK を無効にするオプションを追加しました。

Unity アプリケーションが最前面でなくなると、短いハングアップが発生することがある

スタックを使用して Unity アプリケーションを実行中、別のウィンドウに切り替えると、数秒後に短時間のハングアップが発生することがあります。このハングアップは、マウスを動かすと解消されます。ビデオ、オーディオ、データのキャプチャには影響しません。