Genvid SDK 1.21.0

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

私たちは、快適な製品展開のためにすべての機能を完成させるまで、定期的にリリースを行うことをお約束します。私たちは常に、リリース間のスムーズなアップグレードを保証し、可能な限りの後方互換性サポートを提供するよう努力しています。既知の問題と回避策の完全なリストは、弊社の Forum に掲載されています。何か問題がありましたら、ご連絡ください。

現在ご利用になれる機能

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

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

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

上記の内容に加えて、準備が整い次第公開できるように、新機能のパイプラインを開発中です。

  • クラスタを共有するためのリモート管理サービス。
  • 外部 API の SSL サポート。
  • 管理 API の ACL サポート。
  • ハードウェアエンコード。
  • インスタント リプレイ。
  • クラスタ設定の管理改善。
  • UI の改善および機能追加 (プラグインを含む)。
  • オフライン データストリームの記録と再生。
  • オフライン配信セッション編集。
  • SDK マネージャによる複数 SDK のインストール支援。

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

Twitch Extension サンプル

Genvid SDK が、Twitch Extension Developer Rig をサポートするようになりました。リグを使用するための開発環境のセットアップ方法の詳細については、Twitch Extension 開発サンプルの解説書を参照してください。

Terraform プロバイダ

Genvid SDK が Terraform プロバイダのカスタマイズをサポートするようになりました (https://www.terraform.io/docs/providers/)。プロバイダは、API の相互効果を理解し、リソースを Terraform に公開する必要があります。この新機能により、プロバイダ設定を構成し、使用するプロバイダの特定のバージョンを設定できるようになりました。この機能の詳細については、Genvid SDK 解説書の「クラスタの使用」の「クラウド環境ガイド」および「Terraform プロバイダ」セクションを参照してください。

その他小さな変更点や修正点

  • [bastion-ui] Terraform 設定でブラウザの戻るボタンをクリックしてもエラーが表示されなくなりました。
  • [cluster-ui] クラスタが使用しているすべての S3 イメージの Cluster-UI のリストを表示できるようになりました。
  • [cluster-ui] ストリームの開始を待っている間に、ロード中であることを示すスピナーを追加。
  • [nats] NATS サーバーをバージョン 2.0.4 にアップグレード。
  • [nats] NATS が、Cluster-UI Jobs ページに表示されないスタンドアロンサービスとして開始されるようになりました。
  • [nats] Genvid SDK が NATS のエラーに対応できるようになりました。
  • [studio] トランジションがビジーの際に破棄されず、待機するようになりました。
  • [studio] 編集ダッシュボード切り替え時のオーディオミキサーからのエラーメッセージを修正しました。
  • [terraform] Terraform コマンドページの 『INIT』 ボタンで、モジュールの再インポートを行うことなくプランの初期化ができるようになりました。
  • [terraform] Terraform 設定のブール値のサポートを修正。
  • [ツールボックス] 重大度別にヘルスチェックを並べ替えました。
  • [ツールボックス] genvid-clusters コマンドにフィルタ処理を追加。
  • [ツールボックス] 指定インスタンスの Terraform 作業ディレクトリを再生成できる BastionAPI.terraform_regenerate_instance を追加。
  • [ツールボックス] SDKが、ユニークなパスを作成するためにバックエンド構成で使用される新しいクラスタごとに UUID を生成するようになりました。これにより、S3 のようなバックエンドを使用して以前のクラスタと同じ名前の新しいクラスタを作成するときに、名前の競合を回避できます。
  • [ツールボックス] クラスタが実行されていないと genvid-sdk upload-images が動作しない不具合を修正。
  • [ツールボックス] sdk.pyupload_images* メソッドの安定性を高めるため、デフォルトではすべての場合に構成をアップデートしないように変更。
  • [ツールボックス] sdk.py の update_images_config メソッドを追加し、クラスタのイメージ構成を更新できるようになりました。
  • [ツールボックス] 新しい GENVID_VERBOSE_EXCEPTIONS 環境変数を追加。例外が発生した際に、完全なスタックトレースを出力できるようになりました。
  • [ツールボックス] ZIP ファイルやフォルダに、genvid-sdk package コマンドを追加。
  • [ツールボックス] docker イメージをパッケージする genvid-sdk docker-package コマンドを追加。
  • [ツールボックス] genvid-bastion install コマンドの安定性を改善し、フェールオーバーの競合状態を回避できるようになりました。
  • [ツールボックス] クローンクラスタに初めて読み込む際の Terraform init を修正。
  • [ue4] 設定を複数回連続して保存しても、複数の成功メッセージが表示されなくなりました。
  • [vault] 複数の Vault インスタンスがある場合の Vault 初期化を修正。

既知のバグ

プロキシを使用している場合に Compose ウィンドウが使用できない。

Bastion の将来のバージョンには、異なるマシンからのアクセスを許可するリモートサーバーが追加されます。現行バージョンではこの機能を限定的にサポートしており、Bastion ホストがクラスタファイアウォールに守られている場合に (Amazon EC2 マシンなど)、問題が発生することがあります。

回避方法としては、マシンのローカル IP がクライアントマシンからアクセスできるように、Bastion マシンへの VPN 接続を行うことです。

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

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

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

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

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

WASAPI のオーディオ自動キャプチャモードを使用した時に、マシンのデフォルトのオーディオ-デバイスを通過するサウンドがすべてキャプチャされてしまいます。これには、システムアラートやマイク入力だけでなく、Web ブラウザも含まれます。ゲームを実行しているのと同じローカルマシンを使用してゲームストリームをテスト視聴すると、ゲームは自分自身のオーディオストリームを~10秒の遅延でキャプチャします。これが次第に音質が劣化する (ストリーミングされる度に圧縮されるため) エコーを生み出します。

オーディオを無効にするには、次の 2 つの方法があります。

  • 設定で settings.encode.input.silenttrue にする。 (デフォルト設定をする。)
  • raw オーディオキャプチャを使用する (Unity のデフォルト設定)。

Firefox でのスタンドアロンプレイヤーが動作しない。

読み込み可能なストリームを Firefox で有効にする必要があります。about:config URL で、 dom.streams.enabledjavascript.options.streams のプリファレンスを有効にする必要があります。

オートカットのチェックボックス設定はローカルにのみ保存されます。

Studio では、Scene Widget 内の自動カットチェックボックスの設定はローカルストレージにのみ保存されます。ブラウザのキャッシュがクリアされるとユーザーからの入力もクリアされます。また、Studio セッション終了時に自動カットが「オン」になっている場合は、Studio セッションを再び開始すると、デフォルトで「オフ」に戻ります。

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

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

Genmad SDK では、Nomad で実行されていないアプリケーションは 1 つのみサポートされます。

Genvid SDK を使用したアプリケーションを Nomad を使用せずに起動した場合、デフォルトのセッション名が割り振られます。Unity エンジンや Unreal エンジンでアプリケーションをテストするときやアプリケーションを手動で起動するときに便利です。現在、環境変数 GENVID_SESSION_NAME をユニーク名に変更していない場合、Genvid SDK は、この方法で起動した複数のアプリケーションをサポートできません。修正プログラムが Genvid SDK に統合されるまでは、Nomad を使用してアプリケーションを起動することで、この問題を回避することをお勧めします。

ブロックされた transition は、Studio に再適用できません。

transition の処理中に Studio で別の transition がリクエストされた場合、GVEncode が新たにリクエストされた transition をブロックして、未定義の動作を防ぎます。ただし、Studio にはブロックされた transition が通知されず、transition が発生した状態に変わります。同じ transition を再適用しようとしても、Studio がすでにその状態にあると判断するため、機能しません。

この問題が発生した場合には、別の transition にカット後、以前ブロックした transition にもう一度カットすることをお勧めします。