Genvid SDK 1.20.0

Genvid MILE SDK 1.20.0へようこそ本リリースは、統合のために必要なすべての機能と安定性を備えています。ローカル環境での開発や限定されたクラウドでのデプロイに使用することができます。他のソフトウェアで提供されるような、プロダクション環境に向けて不足している機能もあります。プロダクション(本番)のデプロイをお考えの方は、support@genvidtech.com までご連絡ください。

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

現在ご利用になれる機能

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

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

今後追加を予定しているもの

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

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

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

通知用 API HTTP エンドポイントを追加

command API が新しいエンドポイント ( POST /notifications ) を公開し、ゲームから送信しなくても、配信者が全ユーザーに通知を送信できるようになりました。これにより、管理者用 Web サイトから通知を管理するなどのアクションが実行できるようになります。

Genvid SDK の新しいブランディング

このアップデートによる、機能面での SDK への影響はありません。新しくなったデザインをお楽しみください!

NodeJS to 8.12.0 LTS のアップグレード

Genvid SDK インストーラに NodeJS 8.12.0 LTS リリースがバンドルされます。これにより、NodeJS の旧バージョンが原因で、サンプルで発生していた互換性の問題が一部解決しています。SDK は、まだ NodeJS 10.13.0 LTS との互換性はありません。

HashiCorp Suite をアップグレード (Consul 1.4.4, Nomad 0.8.7, Vault 1.1.2, Terraform 0.11.13)

Genvid SDK で使用されている HashiCorp Suite の 4 製品をアップグレードしました。2019 年 4 月時点での最新機能とセキュリティ修正が含まれています。

Vault 管理インターフェイスの変更

クラスタ Vault を Cluster Status ページから直接管理できるようになりました。この新しいインターフェイスを使って、再初期化、リセット、ポリシー適用などの基本的なアクションを行うことができます。

新しい Genvid Web SDK モジュール

Javascript API のインポート方法を変更しました。ライブラリのモジュールインポート方法として 2 つの方法を用意しました。

  • 縮小した UMD Javascript ファイル。
  • 圧縮した node パッケージファイル。

詳細については バージョン1.20.0 のアップグレード情報 を参照してください。

ローカルクラスタが Bastion のセットアップ中に構成されなくなりました

ローカルクラスタの作成は、デフォㇽトの動作ではなく、genvid-bastion install コマンド実行時のオプションになりました。初期化 <Initialize the local cluster>` を参照してください。詳細については、 ローカルクラスタの初期化 を参照してください。

Studio-UI 配信パネルの廃止

今後のリリースで Studio-UI の配信パネルを廃止します。Studio-UI の左下にある On Air ボタンは使用できます。ダッシュボードで配信パネルを現在使用されている方は、ダッシュボードの Edit ボタンをクリックして削除することもできます。

ツールボックスが名前付きプロフィールをサポートするようになりました

Genvid ツールボックスが、カスタムの名前付きプロフィールをサポートするようになり、複数の環境を管理しやすくなりました。Genvid ツールボックスが、カスタムの名前付きプロフィールをサポートするようになり、複数の環境を管理しやすくなりました。作成後、環境変数 GENVID_PROFILE および GENVID_PROFILES_PATH をデフォルト値 (「」 and 「~/.genvid/profile」) から変更して、使用するカスタムプロフィールを指定することができます。

注釈

GENVID_PROFILE の値を変更した場合、名前付きプロフィールが GENVID_PROFILES_PATHS で指定したフォルダに存在している必要があります。存在していない場合、例外処理が発生します。存在していない場合、例外処理が発生します。

GenvidClient インターフェイスが Leaf への再接続にサポートしました。

GenvidClient インターフェイスが、クライアントの websocket が閉じたときに呼び出される onDisconnect コールバックを公開するようになりました。

また、インターフェイスは reconnect 関数を公開します。します。新しいストリーム情報、新しい leaf URI、新しいトークンをパラメータとして受信し、提供された URI に新しい websocket 接続を確立します。

その他変更点や修正点

  • [sdk] IPv6 に対応。
  • [sdk] クラッシュ防止のため、SDK の関数で欠落していたパラメータ検証を追加。
  • [sdk] Genvid_Terminate() を呼び出したときに、メモリリークが発生する問題を修正。
  • [sdk] Genvid_Terminate() を呼び出したときに、クラッシュする問題を修正。
  • [sdk] genvid.sdk.frame* メトリクスのタグを修正。
  • [web] genvid モジュールが genvid-math に依存しないように変更。
  • [web] WebGL clearColor 値が数列になるように変更。
  • [web] イベント twitchextoncontext へのサポートを追加。[web] イベント twitchextoncontext へのサポートを追加。このイベントのハンドラに、新しいコンテキストと修正フィールドの配列のパラメータを追加。
  • [web] websocket が閉じた際に 発生する OnDisconnect コールバックを、GenvidClient が 公開するように変更。
  • [web] GenvidClient が leaf に接続できるかどうかを公開するように変更。
  • [web] スタンドアロン、YouTube、Twitch ビデオプレイヤーで、ボリューム状態が不均衡になる問題を修正。
  • [web] チュートリアルおよび UE4 サンプルで、オーバーレイのミュート状態の動作が不均衡になる問題を修正。
  • [web] Twitch プレイヤーのオーバーレイが、ストリーミング開始後、数秒間ポーズ状態となる問題を修正。
  • [web] 一時停止後、ビデオの再生を再開するときに、直前のビデオ時間から再開するようになりました。
  • [bins] Bastion およびクラスタで、Studio sample の代わりに、Binsd がデフォルトで開始されるように変更。
  • [studio] シーンが作成されていない場合、オートカットのチェックボックスを無効にしました。
  • [studio] オーディオストリームが無効なときに、Audio Mixer パネルを無効にしました。
  • [studio] スタンドアロンモードで、On Air ボタンを無効にしました。
  • [studio] シーンの表示をドロップダウンから折り畳みリストに変更。
  • [studio] 現在ストリーミング中のシーンを示す目印を追加。
  • [studio] 保存、削除ボタンを選択したシーンに移動。
  • [studio] 選択したシーンにやり直し機能を追加。直前に保存された設定までシーンをリセットします。
  • [studio] auto-cut を選択すると、変更内容を保存したときに現在配信中のシーンに切り替わります。
  • [studio] ライブ配信中のシーンで、保存された変更内容に切り替わっていない場合に警告メッセージを追加。
  • [studio] 現在ライブ配信中のオーディオ値を表示する値フィールドを追加。
  • [studio] ソース画面を選択するときに、モニターがフリーズしないように修正。
  • [studio] ビデオレイアウトスライダの範囲が更新されない問題を修正。
  • [studio] 機能完成まで、Still-Image ビデオレイアウトへのアクセスを一時的に無効化。
  • [studio] On Air 状態や、Cut アクションに関連する情報を表示する固定パネルを追加。
  • [studio] Web サイトでのライブ配信を阻害する Play in Editor の問題を修正。
  • [ingest] OBS でスタート/ストップをクリックしたときに、Ingest がクラッシュしてしまう確率を軽減。
  • [leafd] genvid.leafd.connection.current がゲージとして正しく更新されるようになりました。
  • [composed] セッションリストへの繰り返しアクセスにより、ComposeD が稀にクラッシュする問題を修正。
  • [rootd] Rootd がエラー後、バインディングアドレスをリッスンできない問題を修正。
  • [terraform] workers インスタンスの数が複数の場合に、userdata が変更されないようにモジュールの定義を修正。server_instance_count を修正した場合は、サーバーインスタンスが作成されます。server_instance_count を修正した場合は、サーバーインスタンスが作成されます。
  • [terraform] 再起動後、Consul をプライマリ DNS リゾルバーとして使用しない Linux サーバーのバグを修正。
  • [terraform] VPC Terraform Module をバージョン 1.66.0 に固定。モジュールがバージョン 2.x との互換性がないためです。
  • [terraform] クラスタ作成時に、すべての AWS ポリシーを渡すため、iam_policy_auto_create Terraform 変数を 「1」 に変更する必要がなくなりました。
  • [ツールボックス] genvid-bastion status が、bastion および cluster インスタンスのバージョンを表示する。
  • [ツールボックス] genvid-sdk setup が正しいキーパスで SDK イメージを検索するように修正。
  • [ツールボックス] 古い SDK イメージのクリーンアップのため、genvid-sdk clean-images-sdk コマンドを追加。
  • [ツールボックス] 新しいサブコマンド genvid-sdk version が、cluster インスタンスのバージョンを表示する。
  • [ツールボックス] genvid-sdk update-images コマンドを追加。作成済の S3 バケットを元にクラスタのイメージ設定を更新することができます。
  • [toolbox] genvid-sdk upload-images および genvid.toolbox.DockerTool.update_image--basedir の引数をオプションとして追加。これは、ファイルを格納するディレクトリに設定します。さらに genvid.toolbox.SDK.update_archive のメソッドを追加。これは、genvid.toolbox.DockerTool.RE_IMAGE_IMAGEID の正規表現と一致するように ZIP ファイルの名前を変更します。最新の関数が使用できるように、した。最新の関数が使用できるように、すべてにサンプルをアップデートしました。
  • [toolbox] DOCKER_MACHINE_NAME が設定されていない場合、genvid.toolbox.DockerTool は、環境設定に default をしないようにしました。 その替わりに、デフォルトのクライアント接続を使用します。これにより、システムが Docker for Windows を使用してビルド可能です。
  • [ツールボックス] Genvid ツールボックスに新しい BastionTool を追加。ローカル Bastion の管理に使用できます。
  • [ツールボックス] genvid.toolbox.sdk.get_config がシークレットを戻すように変更。
  • [ツールボックス] 引数として渡したときに、genvid-bastion start non-autostart のジョブも開始するように変更。
  • [ツールボックス] genvid.toolbox.SDK.load_config_template テンプレートを追加。consul-template (他の大半のサンプルスクリプトと同様) で設定ファイルを解析します。
  • [ツールボックス] SDK バージョンナンバーは、Bastion-UI および Cluster-UI の下部に表示されるようになりました。
  • [ツールボックス] Cluster-UI で、画面左下に関連 Bastion へのリンクを追加しました。
  • [ツールボックス] Bastion-UI および Cluster-UI をAngular 7 にアップグレード。
  • [ツールボックス] Bastion-UI で、Terraform-設定エディタのレイアウトを、値のタイプ (ローカル、グローバル、デフォルト) を表示するラベルに合わせて更新しました。
  • [ツールボックス] Bastion-api と Cluster-api が共有できるように、API スキーマの格納場所を genvidtools/libs に変更。
  • [ツールボックス] Swagger UI を Bastion-API 解説書の Bastion-UI に追加。
  • [ツールボックス] genvid-ami setup が Terraform 変数から取得したリージョンを使用して AMI を作成するが、環境の AWS 設定を使用してアクセスしようとする不具合を修正。
  • [ツールボックス] クローンクラスタを作成すると、Terraform モジュールが初期化されます。
  • [ツールボックス] 新しい環境変数 GENVID_PROFILE および GENVID_PROFILES_PATH を使用したユーザープロフィールの読み込みサポートを追加。
  • [ツールボックス] genvid-local-services および genvid-systemd-services が、--node-id パラメータで Consul node ID を設定できるようになりました。
  • [ツールボックス] genvid-bastion install--node-id および --node-name を受信して、Bastion Consul Agent の node 名と ID を設定できるようになりました。
  • [ツールボックス] genvid-clusters terraform-plan が成功時に終了コード 1 を戻すバグを修正。
  • [ツールボックス] 既存の Vault トークンが再使用に失敗する問題を修正。
  • [toolbox] BastionTool``に3 つの新しいメソッドを追加: ``update_terraform_repositoriesinitialize_backendsupdate_global_tfvars
  • [ツールボックス] コマンド genvid-sdk load-config-sdk がローカルクラスタのバイナリパスを更新するようになりました。
  • [ツールボックス] genvid-bugreport broadcast を使用する際に、バグレポートに含まれるアロケーション数を指定できるようになりました。
  • [ツールボックス] genvid-sdk setup が既存のローカル クラスタのバイナリを正しく更新できるようになりました。
  • [ツールボックス] S3 バケットのキープレフィックスで、フォーマットによっては複製した / を含むことができるバグを修正しました。
  • [ツールボックス] genvid-sdk setup が、ローカルクラスタの使用準備ができる前に返されるバグを修正しました。
  • [ツールボックス] 完全に初期化される前にポリシーを設定しようとする競合状況を修正しました。
  • [ツールボックス] 一部のジョブが、特定の環境で正常に停止しないバグを修正しました。
  • [ami] VAULT_ADDR 値を http://vault.service.consul から http://active.vault.service.consul に変更。
  • [ami] 再起動後、Windows DNS が適切に設定されるようにしました。
  • [ami] Windows で、DNS キャッシュを定期的に消去して、動的アドレスの解析を高速化しました。
  • [ami] genvidtech-wingame AMI で、Windows Negative DNS Cache を 0 に設定しています。
  • [genvid-ami] 設定コマンドに新しい --ami-version 引数を追加。このオプションは、解説書またはエキスパートユーザーから排他的に記述されている場合にのみ、使用できます。
  • [wingame-ami] ゲーム AMI は、Z:\ ドライブのないインスタンスタイプをサポートするようになりました。これにより、G3 のように新しいインスタンスタイプが使いやすくなります。
  • [cluster-api] CLUSTER_ID 環境変数が各ジョブに適切に適用されるようになりました。
  • [gvencode] メモリー・フットプリントが無限に増大しないように修正。
  • [gvencode][composed] Linux でスタックトレースのシンボル名の欠落を修正。
  • [ue4] Unreal Engine v4.21 の UE4 プラグインへの互換性を追加。
  • [ue4] Unreal サンプルにマニフェストファイル機能を追加。
  • [ue4] UE4 Cube サンプルがVisual Studio 2015 または 2017 固定でビルドを行うようになりました。
  • [ue4] クラスタを選択した状態で Unreal Editor でプレイする際の通常のラグ増大を修正しました。
  • [ue4] Cube の向きを修正。
  • [unity] イベント/コマンドに関連する Genvid 終了の問題を修正。
  • [unity] Cube の正しいクリックができない原因となっていた Web サイトマトリクス変換コードを修正。
  • [unity] サンプルのフリーズを修正するため、D3D11 全画面モードを全画面ウィンドウに変更。
  • [unity] Genvid SDK を起動する際の Unity アプリケーションの初期化時に、コマンドライン引数を追加。
  • [unity] クラウドで使用する際に、Unity 2018 の解像度との互換性を持たせるため、サンプルの ProjectSettings.asset ファイルを調整。
  • [unity] Genvid.dll がパッケージインストールの問題を解決できるように、Genvid ウィンドウに更新ボタンを追加。
  • [unity] Genvid ウィンドウに Unity editor ログを表示するボタンを追加。
  • [unity] C# ラッパーで新しい関数を使用して、Genvid のステータスをerror、warning、success でフィルタできるように、Unity プレハブおよびサンプルを更新。
  • [unity] Genvid ウィンドウを使用中の不正な Web リクエストの処理を改善。
  • [unity] Genvid Unity プレハブ内の Genvid SDK の手動アクティベーションを修正。
  • [unity] Unity editor でスタート/ストップを行う際に、10 秒間のフリーズが発生する問題を修正。
  • [unity] Genvid Editor ウィンドウで、Unity に選択したクラスタが記憶されない不具合を修正。
  • [unity] Genvid Editor ウィンドウのクラスタ切り替え時に、クラッシュが発生する不具合を修正。
  • [unity] 実行中 Genvid ウィンドウを開く際の DLL 処理に関連する問題を修正。
  • [samples] UE4 および Unity で、Web サイトに結果を表示するアノテーションサンプルを追加。
  • [docker-machine] Docker Machine をv0.13.0 から v0.16.1 にアップグレード。
  • [hashi-ui] Hashi-UI を v1.0.0 にアップグレード。
  • [consul-template] Consul Template ソフトウェアを v0.19.4 から v0.20.0 にアップグレード。
  • [nomad] Nomad-UI リンクを Bastion UI、Cluster UI に追加。
  • [bastion] ローカルクラスタがデフォルトで作成されなくなりました。作成するには、genvid-sdk setup を実行する必要があります。
  • [consul] Consul 設定に、disable_host_node_id のパラメータを設定しました。Consul Agent がホスト名をもとに、より安定した node ID を使用できるようになります。
  • [consul] Leaf Websocket エンドポイントが genvid/services/leaf/websocketURLSuffix の Consul で設定 (静的) できるようになりました。

既知のバグ

Twitch Extension Developer Rig が動作しない。

Twitch Extension Developer Rig から、データ同期のためのビデオストリーム、リアルプレイヤーが提供されない。このため、Web クライアントがデータを再生できません。

プロキシを使用している場合に 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 つのコントロールへ入力することはお勧めできません。