Genvid SDK 1.11.0¶
Genvid Technologies SDK 1.11.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 の更新¶
新しいダッシュボードサポートを使用して、Genvid Studio UI のカスタマイズができるようになりました。 linear
および accelerate-decelerate
インターポレータを使用したディゾルブ、フェードイン、フェードアウトのビデオトランジションなど、新しい視覚効果を追加しました。
Twitch への試験的サポート¶
Twitch および Twitch エクステンション への試験的サポートを追加しました。現在、同期の精度の低さなど、多くの問題があります。
詳細は、」ライブ配信サービス」 を参照してください。
新たな Unity プレハブサンプル¶
ユーザーからのフィードバックを元に、Unity サンプルのプレハブを更新し、古いものを削除しました。以前の SDK のコードも使用可能ですが、新しいコードを使用することをお勧めします。
その他変更点や修正点¶
- [sdk] ビデオのサブミッション時間の延長につながるロックを修正。
- [sdk] BGRA8 ピクセルフォーマット使用時の例外を修正。
- [sdk] チュートリアルの raw キャプチャサンプル関連の問題を修正。
- [sdk c#] タイムコード値の変換エラーを修正。
- [sdk c#] GenvidPlugin.dll を使用せずに raw ビデオキャプチャ、dxswapchain キャプチャを行うための SubmitVideoData メソッドを追加。
- [sdk c#] JSON .NET For Unity プラグインとの互換性のため、Newtonsoft.dll を 8.0.3 にバージョンダウン。
- [sdk c#]
GenvidSDKCSharp
、GenvidRESTCSharp
DLL の両方に AssemblyInfo を追加。 - [web] 定義されていない変数を避けるため、constructor で
IGenvidClient.clientSteamMS
を初期化。 - [web] Genvid クライアントの同期の問題を修正。データフレームを間引くため、
onDraw
を停止。 - [web] YouTube プレイヤーを使用して GenvidClient の連続インスタンスができない問題を修正。
- [web] onDraw コールバックで間違ったタイムコードが送信される問題を修正。
- [cluster-api] API のヘルプページを追加。
- [cluster-api] json のスキーマが
$and
、$or
の条件を受け付けないイベントを修正。 - [cluster-api] すべてのジョブの開始、停止を行う新しい API。
/v1/jobs/startall
、/jobs/stopall
。 - [cluster-api] ジョブを実行中はジョブの定義編集を禁止。
- [bastion-api] バックエンドの編集可能フィールドを修正。
- [bastion-api] ステータスが empty の時の Terraform S3 バックエンドのサポートを修正。
- [bastion-api] 初期化中のランタイムエラーを回避するため、
terraform/init
、terraform/importmodule
に強制パラメータを追加。 - [bastion-ui] コンテンツ読み込み中の busy インジケータを追加。
- [ツールボックス] カスタムバケットおよびパス (
-b
、-p
オプション) で使用中、genvid-sdk upload-images
、およびupload-images-sdk
の設定 (オプション-u
) が正常に更新されない。 - [ツールボックス] 環境変数を追加。
GENVID_BASTION_URL
は、リモート bastion への接続に使用可能。 - [ツールボックス]
genvid-clusters repository-update
コマンドとの整合性のため、メソッドgenvid.toolbox.Clusters.repository_update_repository
の名前をrepository_update
に変更。 - [terraform]
game/aws
モジュールのスクリプトが、Z:
ドライブのサービスディレクトリの設定を行うように変更。 - [terraform モジュール] セキュリティグループが信頼済み IP アドレスの範囲を複数許可するための新しい変数
trusted_cidrs
が存在します。 - [サービス] 値が 2**31 より大きくなると、タイムコードがオーバーフローする問題を修正。
- [サービス] 初期ログレベルを
compose
、gvencode
サービスのデフォルトログレベルに設定。 - [composed] ストリーム終了をログに追加。
- [composed] ヘルスチェックのステータスにストリームタイプ情報を追加。
- [gvencode] ストリームサーバーフィルタに non stop を追加。これにより、UT4 サンプルの inter-matches 中の問題が修正されます。
- [gvencode] バーンインタイムコードの TS フィールドの形式を修正。
- [gvencode] ピッチが異なる場合の、ビデオフレームコピーを修正。
- [rtmsp] ヘッダの部分読み込みの問題を修正。
- [rootd] アノテーションストリームの欠落フィールド (SessionId) を追加。
- [leafd] leafd の WSS への予備的サポートを追加。
- [vault] サーバーのメモリリークを修正するため、Vault を 0.9.1 に更新。
- [ui] Cluster-UI, Bastion-UI、studio web サイトを angular5 に更新。
- [bugreport] バグレポートを作成して、ジョブを実行する際のフリーズを修正。
- [ue4 プラグイン] ビデオキャプチャ (swapchain モード) の問題を修正。常にテクスチャをリセットし、ビデオストリームの問題を発生させる可能性があります。
- [ue4 プラグイン]
GenvidStreamer
tick rate をオーバーライドするコマンドラインオプションを追加。 - [ue4 プラグイン] スキップされたストリームデータのストリームレポートを追加。
- [samples] インストールディレクトリ以外でも実行できるよう、構築用 web スクリプトを修正。
- [tutorial] 古い raw キャプチャサンプルを修正。
- [ut4 サンプル] ut4_engage.ts の未使用の変数を削除 (ts_lint エラーを修正)。
- [ut4 サンプル] プレイヤーのステータスが null の時にクラッシュする不具合を修正。
- [ut4 サンプル] キャラクターにカプセルコンポーネントが存在しない時にクラッシュする不具合を修正。
- [ut4 サンプル] プレイヤーの info structure に新しい情報 (Health、WeaponName、IsDead) を追加。
- [ut4 サンプル] プレイヤーのロケーションエラー処理を更新。
- [ut4 サンプル] ゲームデータの更新レートの問題を修正。
- [ut4 サンプル] マッチ開始時に低確率でクラッシュする問題を修正。
- [documentation] オーディオ形式の enum 値をメインストリームのパラメータに明示。GenvidStreamer class。
既知のバグ¶
このリリースでは一部のバグが未修正のまま残っていますが、まもなく修正する予定です。
プロキシを使用している場合に 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 のデフォルト設定)。
サービスが statsd サービスを検出できない¶
GENVID_STATSD_URL
変数を使用していない場合、開始前に statsd サービスを検出することができません。次回のバージョンで修正予定です。
Firefox でのスタンドアロンプレイヤー¶
スタンドアロンプレイヤーを適切に動作させるためには、読み込み可能なストリームを Firefox で有効にする必要があります。 about:config
URL で、 dom.streams.enabled
と javascript.options.streams
のプリファレンスを有効にする必要があります。
すべてのストリームが破壊された場合、Genvid Studio の動作が停止する¶
Genvid SDK でライブ配信を行うアプリケーションで Genvid Studio を使用している時に、オーディオ/ビデオ ストリームを破棄して作成しなおすと、スタックを再開するまで、ビデオ/オーディオ ストリームが動作を停止します。
Genvid Studio UI のレイアウトがセッションごとに保存されない¶
保存されたレイアウトは、現在の Genvid Studio インスタンスのポートおよび IP アドレスに関連付けられています。今後、セッションが変更されてもレイアウトが継続されるように、修正を行っています。