Genvid MILE SDK 1.16.0

Genvid SDK 1.16.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 のインストール支援。

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

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 形式でサマリーをダウンロードすることもできます。

配信図サンプル

新しいサンプル bcast は、配信の異なるジョブの概要を図で確認することができます。

ノード、ジョブ、サービス、ストリーム、配信データのステータスが含まれます。

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

  • [web-sdk] Web SDK ログの制御を追加しました。genvidConfig.IGenvidConfig.console で新しい設定を参照してください。
  • [web-sdk] Twitch Playerのコードを取得するためにhttpの代わりにhttpsを使用しました。これにより、httpsのWebページ上でTwitch Embed Playerを使用することが修正されました。
  • [cluster-api] Bastion の Vault の情報に基づいて、起動時にクラスタの Vault アドレスとトークンを正しく設定します。クラスタではなく Bastion の Vault にシークレットが保存される問題を修正しました。
  • [cluster-api] Nomad ジョブの必要なリソースを減らし、同じ PC から同時に複数のクラスタを管理することができます。
  • [toolbox] genvid.toolbox.BaseTool.install_file() メソッドにバックアップ引数を追加し、非静的にしました。
  • [toolbox] 環境変数 VAULT_TOKENVAULT_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 テンプレートの extradelayntp.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.silenttrue にする。 (デフォルト設定をする。)
  • raw オーディオキャプチャを使用する (Unity のデフォルト設定)。

Firefox でのスタンドアロンプレイヤー

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