Genvid SDK 1.17.0¶
Genvid Technologies SDK 1.17.0 へようこそ。このリリースで、安定した状態で統合を行うことができ、ローカルでの開発や、限定したクラウドでのデプロイに使用することができます。プロダクションを完全にデプロイするための一部の機能はまだ実装されていませんが、他のソフトウェアによって提供可能です。プロダクションのデプロイを予定している場合、support@genvidtech.com にお問い合わせください。
プロダクションの快適なデプロイを行うための機能がすべて備わるまで、定期的にリリースの更新を行っていきます。リリース間のアップグレードをスムーズに行うことができ、可能な限り後方互換サポートを行えるよう、常に努力しています。既知の問題や回避策については、 フォーラム でご参照ください。不明な点などございましたら、弊社までお問い合わせください。
現在の機能¶
現在の機能の概要を紹介します。本リリースの新機能一覧は以下を参照してください。
- Windows C++ API、C# ラッパー
- D3D11 または raw フレームのビデオキャプチャ。
- WASAPI オーディオキャプチャ。
- ビデオエンコード (H264 + AAC)。
- YouTube への動画ストリーミング。
- Twitch への動画ストリーミング。
- 複数のインスタンスからの、複数の動画およびデータのストリーミング。
- 任意の追加ゲームイベントおよび通知のストリーミング。
- スケーラブル イベント メッセージ システム。
- 埋め込み型 Web ページ用 Javascript SDK。
- ビデオとゲームデータストリームの自動同期。
- オーディオ/ビデオおよびデータの複数のソース (ベータ版)。
- ライブ動画編集と基本コンポジション効果 (ベータ版)。
- RTMP Ingest サーバー (ベータ版)。
- Unity3D 統合 (ゲームと管理)。
- Unreal Engine 統合 (ゲームと管理)。
- サービス制御用 REST API (ベータ版)。
- ローカル、リモートクラスタの管理用ツール、スクリプト。AWS 用サンプルスクリプト。
- メトリクス フィード (ベータ版)。
- 負荷テストライブラリ。
- 詳細な解説書。
- 複数の統合サンプル。
今後追加を予定しているもの¶
上記の内容に加えて、準備が整い次第公開できるように、新機能のパイプラインを開発中です。
- クラスタを共有するためのリモート管理サービス。
- 外部 API の SSL サポート。
- 管理 API の ACL サポート。
- ハードウェアエンコード。
- インスタント リプレイ。
- クラスタ設定の管理改善。
- UI の改善および機能追加 (プラグインを含む)。
- オフライン データストリームの記録と再生。
- オフライン配信セッション編集。
- SDK マネージャによる複数 SDK のインストール支援。
このバージョンの主な変更点¶
Web API の新しいパッケージ¶
Web API が再パッケージされています。CommonJS
ターゲットを削除し、Node
ターゲットは WebPack にバンドルされています。詳細については、アップグレードノートを参照してください。
新しい New SDK JPEG エンコーダ¶
内部エンコーダを libjpeg-turbo に変更しました。 これはゲーム機の CPU 負荷を軽減し、帯域幅を縮小するのにも役立ちます。これは、ストリームの品質向上と、より高い解像度を可能にする最適化の取り組みの第一歩です。
新イベントページ¶
キャプチャしたイベントデータのイベントページでの表示方法を変更しました。トリガされたすべてのイベントのログではなく、各イベントの概要を表で表示するようにしました。JSON 形式でサマリーをダウンロードすることもできます。
Terraform ページのクラスタのサポート強化¶
複数のクラスタ管理のため、ページの反応強化、クラスタリストのソート、多数のクラスタが存在する場合のスクロールなど、多くの改善要素を追加しました。多くのプロジェクトの公開後、さらに多くの改善要素を導入予定です。
その他変更点や修正点¶
- [installer] Visual Studio Build Tools Installer を C++ 対応のものに変更しました。C++ サンプルのコンパイルが可能です。
- [sdk] オーディオエンドポイントデバイスでオーディオエンジンミキサー形式がサポートされていない場合の、オーディオクライアント初期化の問題を修正しました。
- [sdk] ゲームループをフリーズする合成操作の競合状態を修正しました。
- [wingame-ami] リモート画面が15分後にスリープモードになったときのゲームのフレームレートの問題を修正しました。
- [terraform] Git のインストールが必要な
basic_cluster
モジュールの AWS VPC モジュールを変更しました。現在、Terraform レジストリから直接取得可能な標準モジュールを使用しています。 - [cluster-api] Cluster API が Consul と Vault を間違って使用して、初期化の問題が発生し構成が失われてしまう問題を修正しました。
- [cluster-ui/bastion-ui] 読みやすくするため、ジョブ設定のモーダルウィンドウを大きくしました。
- [cluster-ui] 単一ノードのクラスタで、ノードのステータスを非表示にしました。
- [cluster-ui] Genvid 設定ページの入力ラベルにツールチップを再統合しました。
- [studio] アクションの状態を通知するため、アラートとメッセージを追加しました。
- [studio] カットボタンと、他のシーンへの自動カットオプションを、Scene Widget に実装しました。
- [studio] 自動オーディオ追従モードが、シーンに保存されるようになりました。
- [ingest] Ingest テンプレートの
extradelay
、ntp.server
パラメータを公開。これにより、ソースのエンコード遅延、クロックドリフトを正確に補うことができます。 - [ue4-plugin] Genvidモジュールに Unreal Engine 4.20.1 への互換性を追加。
- [ue4-plugin] 廃止された GenvidSteamer クラスの2つのテンプレートの FGenvidTimecode とのコンパイルエラーを修正。
- [ue4-plugin] Blueprint にゲームフレームレートと Genvid ビデオストリームのフレームレートを設定するオプションを追加しました。
- [ue4-plugin] 関数とパラメータがフォーマットと一致するように、gameData に名前を変更。
- [unity-plugin] Genvid ウィンドウエディタで、ユーザーがボタンをクリックしても何も起こらない問題を修正しました。
- [loadtester] consul パッケージを更新し、最も近くにある健全な statsd に接続するようにしました。クライアントのパフォーマンスとメトリクスを向上させました。
既知のバグ¶
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
に設定する必要があります。
オートカットのチェックボックス設定はローカルにのみ保存されます¶
Studio では、Scene Widget 内の自動カットチェックボックスの設定はローカルストレージにのみ保存され、ブラウザのキャッシュがクリアされるとユーザーからの入力はクリアされます。Studio セッションが終了する前に自動カットが「オン」になっている場合は、Studio セッションを再び開始すると、デフォルトで「オフ」に戻ります。
Studio は、複数のウィンドウから同じコントロールの入力を受け取ることはできません¶
Studio が、複数のブラウザウィンドウで開かれており、異なるソースから 1 つのコンロールに入力を受信した場合、最後の値は最新のものに更新されるのではなく、異なる入力間でバウンスされます。たとえば、Audio Mixer Widget で、ユーザーが Master Gain のスライダを 20 db に変更し、別のユーザーが 0 db に変更した場合、スライダハンドルは 0 db に設定される代わりに 20 db と 0 db の間でバウンスします。この問題が解決されるまで、異なるウィンドウから 1 つのコントロールへ入力することはお勧めできません。