リリース & アップグレードノート

Genvid SDK の最新バージョンのリリースノートを以下に記載しています。このセクションには、SDK の これまでのリリース および リリース & アップグレードノート が含まれています。



Genvid SDK 1.32.0

Genvid SDK 1.32.0 へようこそ。このリリースで、安定した状態で統合を行うことができ、ローカルでの開発や、限定したクラウドでのデプロイに使用することができます。プロダクションを完全にデプロイするための一部の機能はまだ実装されていませんが、他のソフトウェアによって提供可能です。プロダクションのデプロイを予定している場合は、support@genvidtech.com にお問い合わせください。

プロダクションの快適なデプロイを行うための機能がすべて備わるまで、定期的にリリースの更新を行う予定です。リリース間のアップグレードをスムーズに行うことができ、可能な限り後方互換サポートを行えるよう、常に努力しています。既知の問題や回避策については AnswerHub でご参照ください。詳細についてのご不明点は、弊社までお問い合わせください。

現在の機能

現在の機能の概要を紹介します。本リリースの新機能一覧は以下の 主な修正と変更 を参照してください。

  • ビデオとゲームデータストリームの自動同期。
  • YouTube および Twitch へのライブ動画配信。
  • 埋め込み型 Web ページ用 Javascript SDK。
  • オーディオ/ビデオおよびデータの複数のソース。
  • 任意の追加ゲームイベントおよび通知のライブ配信。
  • スケーラブル イベント メッセージ システム。
  • Windows C++ API、C# ラッパー。
  • ビデオエンコード (H264 + AAC)。
  • Unity3D 統合 (ゲームと管理)。
  • Unreal Engine 統合 (ゲームと管理)。
  • D3D11 または未処理フレームのビデオキャプチャ。
  • WASAPI オーディオキャプチャ。
  • ローカル、リモートクラスタの管理用ツール、スクリプト。AWS および Azure 用サンプルスクリプト。
  • ライブ動画編集と基本コンポジション効果 (ベータ版)。
  • RTMP Ingest サーバー (ベータ版)。
  • サービス制御用 REST API (ベータ版)。
  • メトリクス フィード (ベータ版)。
  • 負荷テスト用ライブラリ。
  • 複数の統合サンプル。
  • 詳細な解説書。

主な修正と変更

その他変更点や修正点

  • [解説書] メトリクスの表に抜けていたタグを追加。
  • [sdk] 値が空のコマンドメッセージが処理されない問題を修正。
  • [sdk] オーディオバッファで不具合が発生する問題を修正。
  • [toolbox] genvid-sdk upload-images-sdk が SDK フォルダから利用可能なイメージのリストを検出するように改良。
  • [ツールボックス] ソースが 1 つのファイルの場合や、呼び出し時に名前が設定されていない場合に、genvid-sdk package がエラーを返す問題を修正。
  • [ツールボックス] メソッド genvid.toolbox.ClusterAPI.get_cluster_info を呼び出したときに retry_request パラメータが無視される問題を修正。
  • [gvencode] 最後に受信したフレームとストリームの終わりとの間の遅延が重要な場合に、オーディオとビデオが非同期になる問題を修正。
  • [bastion-api] 小型デバイスでコンテンツが重なったり隠れたりしないように Cluster-UI と Bastion-UI を改良。
  • [bastion-api] クラスタでイメージを 12 回以上更新した際に 「too many transactions」 のエラーが表示される問題を修正。
  • [studio] UI のスライダを 11.0.3 から 15.4.0 にバージョンアップ。
  • [studio] autocut の解説書を改良。
  • [consul-template] consul-template を v0.24.1 から v0.27.1 にアップグレード。
  • [terraform] 廃止された template プロバイダを新しい templatefile 関数に置き換え、Terraform モジュールを改良。
  • [ami, vhd] Linux サーバーで新しいライブラリを更新またはインストールしようとすると、 ldconfig が segfault する問題を修正。新しいイメージでは、カーネルの sys パラメータの設定がデフォルトの Debian の設定と異なることがなくなりました。
  • [ami, vhd] Linux サーバーイメージで Python を使用する際、基本パッケージが不足する問題を修正。
  • [cluster-api] すべての consul-template の実行において、サンドボックスのパスを /dev/null に設定し、セキュリティの問題を修正。
  • [cluster-api] 新しい /v1/template_renderer API を cluster-api に追加。テンプレートフォルダとカスタム環境変数をレンダリングできるようになりました。
  • [consul] Consul フォルダにすべての Key/Values のペアが含まれていない場合に、デフォルト値が使用されない問題を修正。
  • [twitch extension] Twitch CSP が外部ファイルを指定している場合、 script-src をブロックする問題を修正。

既知の問題

インストールされているバージョンが Unity 2020 LTS のみの場合、Unity Sample のビルドが失敗する

インストールされている Unity バージョンが Unity 2020 LTS の場合、Unity Sample のビルドが失敗し、次のエラーが表示されます。 「Cannot find executable in the path:Unity.exe」

回避方法としては、 build スクリプトの使用時に 「-v」 オプションを使用してください。

例: py unity.py prepare -v 2020.3.20f1

Nomad を使用して起動していない場合、Genvid SDK が統合されたアプリケーションは一度に 1 つしか実行できません。

Genvid SDK を使用しているアプリケーションを Nomad なしで起動した場合、デフォルトのセッション名が割り当てられます。Unity engine や Unreal engine でアプリケーションのテストを行う場合や、アプリケーションを手動で起動する際に便利です。

現在、環境変数 GENVID_SESSION_NAME をユニーク名に変更していない場合、Genvid SDK は、この方法で起動した複数のアプリケーションをサポートできません。Nomad を使用してアプリケーションを起動することで、この問題を回避することもできます。

この問題は、今後のリリースで修正予定です。

Azure のレポートでは、要求されたインスタンスサイズが利用できない。

Azure では、ゲームマシン用の計算インスタンスタイプ Standard_NV6 を使用しています。一部のアカウントでは、このインスタンスタイプのプロモバージョンしか利用できません (Standard_NV6_Promo)。

Azure モジュールで Terraform のセットアップを行うと、エラーが発生することがあります:

The requested size for resource 'XXXX-game-1' is currently not available in location 'XXXX'

回避策としては、Terraform の設定ページで instance_game_typeStandard_NV6_Promo に変更し、コマンドページで Plan apply -> Apply を再度行ってください。

スタンドアロンプレーヤーでの iOS デバイスへのストリーミングは現在、機能していません。

スタンドアロンプレーヤーでの iOS デバイス (iPhone、iPad) へのストリーミングは現在、機能していません。この問題は、今後のリリースで修正予定です。

Azure でアベイラビリティゾーンを変更する際には、リソースを破壊して再構築する必要があります。

Azure で AZ を変更する際に、パブリック IP が仮想マシンから切り離されていないため、パブリック IP の削除に失敗することがありました。これは、Terraform プロバイダのバグです。詳しくは、Hashicorp Github の issue をご覧ください。

回避策としては、問題のあるパブリック IP を Azure ポータルの仮想マシンから手動で切り離します。

genvid-sdk upload-images-sdk コマンドが、Azure Cloud 上での Docker イメージのアップロードに失敗します。

一部の Docker イメージは、サイズが大きいため、 genvid-sdk upload-images-sdk コマンドを使用して Azure Cloud にアップロードできません (SSL エラーと Max retries exceeded のメッセージが表示されます)。

回避策:

  1. Azure UI を開きます。
  2. イメージを手動でアップロードします。
  3. もう一度 genvid-sdk upload-images-sdk を起動します。

既存の AWS クラスタでサブドメインを更新する際に、サブドメイン NS レコードを手動で削除する必要があります。

basic_cluster_alb_ssl または minimal_cluster_alb_ssl を使用して AWS クラスタを作成する場合、ドメインとサブドメインが提供されます。既存クラスタのサブドメインを更新する場合、以前のサブドメインの route53 の NS レコードをメインドメインから手作業で削除する必要があります。これは Terraform 内での NS レコードの処理のためです。

AWS を使用しているクラスタ basic_cluster_alb_ssl のサブネットを削除できません。

basic_cluster_alb_sslsubnet_cidr_block_size を変更したり、AZ の数を減らしたり、既存の AZ を並べ替えたりすると、クラスタはサブネットを削除しようとして止まってしまいます。

設定を再適用しても、問題は解決しません。

回避策: クラスタを削除して作り直してください。

Bastion クラスタの設定ページのモーダルウィンドウが閉じない。

クラスタの Bastion 設定 ページで、クリックしても、カスタムタグの Properties モーダルウィンドウが閉じない。

回避策としては、もう一度 Properties をクリックしてモーダルウィンドウを閉じてください。

制限事項

誤った順序で設定をロードすると、値が上書きされることがあります。

クラウド上で SSL を使用している場合でも、ローカルクラスタで SSL を使用している場合でも、Web サンプルを読み込む前に youtube.sample.hcl を読み込むと、Web サンプルは web.hcl ファイルから embed_ssl に関連付けられた値を上書きします。

NTP の時間オフセットが大きいと、ストリームの再生ができなくなります。

大きな NTP 時間オフセットが発生した場合、ストリームの再生が停止する可能性があります。回避策としては、ゲーム機が自動的に時計を更新するように設定されていることを確認してください。ローカル設定では、AWS IP アドレスを pool.ntp.org に置き換えてください。

詳細については、 AWS 設定セクション を参照してください。

Studio は、複数のウィンドウから同じコントロールの入力を受け取ることはできません。

Studio が、複数のブラウザウィンドウで開かれていて、異なるソースから 1 つのコントロールに入力を受信した場合、最後の値は最新のものに更新されるのではなく、異なる入力間でバウンスされます。たとえば、Audio Mixer Widget でユーザーが Master Gain のスライダを 20 db に変更し、別のユーザーが 0 db に変更した場合、スライダハンドルは 0 db に設定される代わりに 20 db と 0 db の間でバウンスします。

この問題が解決されるまで、複数の Studio ウィンドウから 1 つのコントロールへ入力することはお勧めできません。

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

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

SDK はフレームレートを 1.0 以下に固定します。

問題を回避するためにストリームのフレームレートを 1.0 に下げました。フレームレートが 1.0 以下の場合は、SDK が 1.0 FPS に固定します。

Azure リソースグループ名のデフォルト値が長すぎる場合がある。

変数 resource_group_name に値が設定されていない場合、 {bastionid}-{clustername} の組み合わせで設定されます。そのため、Azure リソースグループ名が最大文字数である 64 文字よりも長くなってしまう場合があります。

この問題を避けるために、変数 resource_group_name には必ず 64 文字以下の値を指定してください。

Azure での命名についての詳細は Azure Github を参照してください。

AWS クラスタサブネットの競合エラー

AWS クラスタの subnet_cidr_block_size を減らして AZ 数を増やすことを同時に行うと、サブネットの競合エラーが発生します。

この問題が発生した場合、設定を適用しなおしてください。

クラスタの更新時に、Azure ディスクに新しいタグが追加されない。

新しいタグを Azure クラスタに適用する際、ディスクを所有する仮想マシンインスタンスが apply プロセス中に再作成されない限り、 disk にタグは適用されません。

回避策としては、クラスタを削除して再作成することで問題が解決します。

クラスタ名は 64 文字までです。

クラスタ名は、Windows のファイルシステムの制限により、64 文字に制限されています。ファイルディレクトリの最大文字数には、システムのユーザー名やクラスタ名などが影響します。

技術的には 64 文字以上にすることは可能ですが、結果は予測できないものになります。