Genvid SDK 1.16.0¶
Genvid Technologies SDK 1.16.0 へようこそ。このリリースで、安定した状態で統合を行うことができ、ローカルでの開発や、限定したクラウドでのデプロイに使用することができます。プロダクションを完全にデプロイするための一部の機能はまだ実装されていませんが、他のソフトウェアによって提供可能です。プロダクションのデプロイを予定している場合、support@genvidtech.com にお問い合わせください。
プロダクションの快適なデプロイを行うための機能がすべて備わるまで、定期的にリリースの更新を行っていきます。リリース間のアップグレードをスムーズに行うことができ、可能な限り後方互換サポートを行えるよう、常に努力しています。既知の問題や回避策については、 フォーラム でご参照ください。不明な点などございましたら、弊社までお問い合わせください。
現在の機能¶
現在の機能の概要を紹介します。本リリースの新機能一覧は以下を参照してください。
- 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 のインストール支援。
このバージョンの主な変更点¶
Genvid Studio の改善¶
バージョン1.16.0には、Genvid Studio のユーザー体験とサービス品質の様々な向上が含まれています。
- Genvid Studio は Wipe フィルタに対応しています。また、すぐに使える便利な要素がたくさん含まれています。
- 新しい Scene Widget でシーンの設定を保存して、再使用することができます。
- オーディオ、ビデオのトランジションのタイムインターポレータを追加
- Studio のパフォーマンスと操作性も改善しました。
クラスタページが Bastion UI の Terraform ページになりました。¶
Cluster Terraform の構成を含め、すべての Terraform の構成を Terraform ページにグループ化しました。クラスタの Terraform 構成を管理するプロセスは変更されていません。しかし、改善された UI により、より少ないクリック数で構成を完了することができ、構成をより簡単にナビゲートすることができます。
Leafd メトリクス¶
合計 22 個の新しいメトリックがリーフから放出されます。leafd の新規メトリックの詳細については、メトリックの解説書を参照してください。新規メトリクスの使用方法については tick のサンプルを参照してください。
新イベントページ¶
キャプチャしたイベントデータのイベントページでの表示方法を変更しました。トリガされたすべてのイベントのログではなく、各イベントの概要を表で表示するようにしました。JSON 形式でサマリーをダウンロードすることもできます。
その他変更点や修正点¶
- [web-sdk] Web SDK ログの制御を追加しました。
genvidConfig.IGenvidConfig.console
で新しい設定を参照してください。 - [web-sdk] http の代わりに https を使用して、Twitch Player コードを取得します。これにより、https Web ページ上で Twitch 埋め込みプレイヤーの使用上の不具合が修正されました。
- [cluster-api] Bastion の Vault の情報に基づいて、起動時にクラスタの Vault アドレスとトークンを正しく設定します。クラスタではなく Bastion の Vault にシークレットが保存される問題を修正しました。
- [cluster-api] Nomad ジョブの必要なリソースを減らし、同じ PC から同時に複数のクラスタを管理することができます。
- [toolbox]
genvid.toolbox.BaseTool.install_file()
メソッドにバックアップ引数を追加し、非静的にしました。 - [toolbox] 環境変数
VAULT_TOKEN
とVAULT_KEYS
が~/.vault-token
と~/.vault-keys
のファイルの中身より優先されます。 - [terraform] 信頼できるアクセスの管理を支援するために、クラスタモジュールに``trusted_security_groups`` リストを追加しました。
- [services] サービスのアドレスが、健全なサービスを指し示すようになりました。これにより、サービスが発見しやすくなりました。
- [services] Leafd に、リーフあたりの接続数を制限する新しい設定
services.leaf.maxConnections
を追加しました。これにより、リーフヘルスチェックが429 Too Many Requests
を返し、Discod で利用可能な URL からサーバーが削除されます。 - [composed] サーバーが停止している場合、bulb サービスに再接続します。この変更により、データストリームが強固になっています。
- [ingest] 2 つの取り込み間の待ち時間が 1 秒以下に短縮されました。
- [ingest] 取り込みからフレームに参照クロックを追加しました。FileSource フィルタの遅延が、この参照クロックを調整することができます。
- [youtube player] ゲームで不規則なストリームが生成されたときに、遅延のドリフトが起きないようにします。
- [cluster/bastion] ジョブの開始に失敗した場合、すべてのジョブの開始がエラーを戻すようになりました。
- [cluster-ui/bastion-ui] 読みやすくするため、ジョブ設定のモーダルウィンドウを大きくしました。
- [cluster-ui] クラウドでイベントが表示されない、イベントタブのバグを修正しました。イベントサブスクリプションエンドポイント /events/results/{counter:[0-9]+} を修正しました。
- [bastion-ui] すべてのジョブを開始すると、cluster-api のジョブも開始されます。
- [bastion-ui] Terraform ページで、左パネルの設定タブをアルファベット順にソートしました。
- [bastion-ui] Terraform All Configs 画面で、クラスタのリストが長い場合にスクロールできるようにしました。
- [studio] Studio で Wipe トランジションがサポートするようになりました。
- [studio] シーンウィジェットを追加しました。ユーザーが、ビデオレイアウトまたはそのオーディオミキサーの設定を保存およびロードできるようになりました。
- [studio] オーディオとビデオのトランジションにタイムインターポレータを追加しました。
- [studio] ゲームのビデオフレームが低下したときのモニターの遅延を回避。
- [studio] ソースパネルのスライダコントローラ以外のすべてのスライダコントローラの動作が、マウスや指を離すことなく、すぐにユーザー入力を反映するように変更しました。
- [samples] Web サンプルの
@types/bluebird
のバージョンを 3.5.20 に修正しました。これは TypeScript 2.5.2 と互換性がある最後のバージョンです。 - [rootd] CPU とメモリの使用効率を向上。
- [ingest] Ingest テンプレートの
extradelay
、ntp.server
パラメータを公開。これにより、ソースのエンコード遅延、クロックドリフトを正確に補うことができます。
既知のバグ¶
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.silent
をtrue
にする (デフォルト設定) 。 - raw オーディオキャプチャを使用する (Unity のデフォルト設定)。
Firefox でのスタンドアロンプレイヤー¶
スタンドアロンプレイヤーを適切に動作させるためには、読み込み可能なストリームを Firefox で有効にする必要があります。about:config
URL で、dom.streams.enabled
と javascript.options.streams
を true
に設定する必要があります。