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

以下では、最新バージョンの Genvid MILE SDK のリリースノートをご覧いただけます。このセクションには、SDK の以前のバージョンの リリースノート以前のバージョンのアップグレード の手順も含まれています。



Genvid MILE SDK 1.42.0

Genvid MILE SDK 1.42.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 (ベータ版)

  • メトリクス フィード

  • 負荷テスト用ライブラリ

  • 複数の統合サンプル

  • 詳細な解説書

主な修正と変更

新しいリクエスト機能(ベータ版)

Webgatewayサービスにおいて、新しいリクエスト機能のRESTとC APIが利用できるようになりました。これは初期のベータリリースであり、最終版になるまでに大きな変更があるかもしれません。将来のリリースで完全なドキュメントを提供する予定です。

静的クラスタの新機能

新しいRESTおよびC APIにより、genvid toolboxから静的クラスタの作成および更新ができるようになりました。

  • [toolbox] genvid-clustersstatic-cluster-createstatic-cluster-update コマンドを追加しました。

その他変更点や修正点

  • [sdk] NULLコールバックやIDを持つコマンドの登録を解除するとエラーが発生する問題を修正しました。

  • [sdk] コールバック内でサブスクリプション関連のAPIを呼び出すとデッドロックやレースコンディションが発生する問題を修正しました。詳しくは upgrade notes を参照してください。

  • [sdk] ゲームデータ、アノテーション、または通知を空のサイズで送信すると、エラーが発生する問題を修正しました。

  • [web-sdk] genvidClient2 にデバッグオーバーレイを追加しました。

  • [toolbox] genvid-clusters cluster-showgenvid-clusters cluster-list の出力を、リストとdictをJSONに変換してから出力するように改善しました。

  • [toolbox] Logs インターフェースに 'plain text' と 'download' のリンクを追加し、それに対応する API を追加しました。

  • [toolbox] ローカルドライブと Amazon S3 の間でフォルダを効率的に同期できるように genvid-sync を追加しました。

  • [gvencode] 不正な出力FPSが記録される問題を修正しました。

  • [gvencode] IVSとの接続が切れたときにブロードキャストエラーが報告されない問題を修正しました。

  • [samples] Unity Cube のサンプルシーン UnitySceneRoot で "PPtr cast failed when dereferencing! Casting from PrefabInstance to Prefab"のエラーを修正しました。

  • [samples] 異なるCubeサンプルの通知を更新し、一貫したデータ形式を使用できるようにしました。

  • [samples] Unity 2021を使用したUnity Cube サンプルのライティングの問題を修正しました。

  • [unity] GenvidVideoUtils.cs 内の不要な GetParameters コールを削除し、エラーログが発生するようになりました。

  • [unity] GenvidPlugin が Unity の実行ファイルを Windowed モードで強制実行するのを止めました。詳しくは upgrade notes を参照してください。

  • [unity] DLLがメモリにロードされた後に同期しようとすると警告メッセージが表示されるようになりました。(例えば、エディターでゲームを実行しているとき) Unityがスクリプトからネイティブプラグインをロードすると、それは決してアンロードされません。アンロードする唯一の方法は、Unityを再起動することです。

  • [unity] 名前空間のないプラグインクラスを Genvid 名前空間へ追加しました。

  • [unity] Fixed an issue where the stack get corrupted when a C# callback was called from the DLL. The bug was only apparent in 32-bits but could have had other side effects in 64 bits.

  • [unity] クラスメンバーにアクセス指定子を適用し、MonoBehaviour 関数のアクセスを private に制限することで、Unity プラグインのコード一貫性を改善しました。

  • [nats] nats-server を v2.7.2 から v2.9.9 にアップグレードしました。

  • [studio ui] Cluster UI の Monitor セクションの下に Studio UI のリンクを移動しました。

  • [unreal] UE4 プラグインにリクエスト API を追加 (ベータ版)

  • [unreal] UE4 モジュールを 1 つのプラグインに統合し、モジュールの依存関係を使用することにより、UE4 モジュールの管理を改善しました。詳細は、アップグレードノートと Unreal Engine の統合についてのドキュメントを参照してください。

  • [unreal] Cook Runを実行する際にエディターモジュールが初期化され、エラーを表示して失敗する問題を修正しました。

  • [unreal] 調理中にMainMapが Collect Cubes 関数にアクセスできない問題を修正しました。

  • [unreal] Cube Sample for Unreal EngineがWindowsをターゲットとし、デフォルトでD3D11を使用するように強制しました。

  • [unreal] 非推奨のクラス UGenvidStreamerUGenvidWorldSettings を Unreal プラグインから削除しました。

  • [unreal] 初期化されていないメンバーにアクセスしようとすると、ゲームサーバーがクラッシュする問題を修正しました。

  • [unreal] Genvid SDK がサーバーモードでも正しく初期化されるようになりましたが、ストリーム(Audio、Video、Data)は作成されません。

既知の問題

genvid-sdk upload-images または upload-images-sdk はエラー ERROR: (InvalidValuesForRequestParameters) を発生させる。

genvid-sdk upload-images または genvid-sdk upload-images-sdk を実行すると、以下のエラーメッセージが表示される場合があります:

ERROR: (InvalidValuesForRequestParameters) Values for request parameters are invalid: networkAcls.ipRules[].

どちらかのコマンドを実行すると、Genvid ToolboxはストレージアカウントにBastionのIPアドレスを追加します。ただし、Azureのストレージアカウントには、200個のIPアドレスの制限があります。そのため、どちらかのコマンドを実行すると、その制限を超える可能性があります。詳しくは、Azure公式ドキュメント を参照してください。

回避策として、ストレージアカウントから余分な IP アドレスを削除することができます。Azure ポータルから。

  1. Home ‣ Storage Accounts ‣ [Your account] ‣ Networking に移動します。

  2. 選択した仮想ネットワークとIPアドレスから**有効にする**を選択します。

  3. リストからIPアドレスを削除する。

  4. 変更内容を保存します。

  5. エラーの原因となった genvid-sdk コマンドを実行します。

Nomadを使用して起動しない場合、Genvid MILE SDK を統合したアプリケーションは、一度に1つだけ実行できます。

Genvid MILE SDK を使用したアプリケーションを Nomad を使用せずに起動した場合、デフォルトのセッション名が割り振られます。Unity エンジンや Unreal エンジンでアプリケーションをテストするときや、アプリケーションを手動で起動するときに便利です。

現在、環境変数 GENVID_SESSION_NAME をユニーク名に変更していない場合、Genvid MILE 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'

回避策:

  1. Terraform Settings ページを開きます。

  2. instance_game_typeStandard_NV6_Promo に変更します。

  3. Commands ページを開きます。

  4. もう一度 Plan apply ‣ Apply を選択します。

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

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

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 をクリックしてモーダルウィンドウを閉じてください。

Studio UIが反応しなくなる。

ビンやNATSのサービスが不健全になった場合、Studio UIが応答しなくなります。

回避策としては、ビンとNATSジョブが健全な状態に戻ったら、Studioジョブを再起動します

Azureでは、オーディオとビデオのストリームが非同期化されることがあります。

Azure上で60FPSのビデオストリームをキャプチャすると、ビデオストリームと比較してオーディオストリームが徐々に非同期化されます。

制限事項

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

クラウド上で 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 文字以上にすることは可能ですが、結果は予測できないものになります。