Genvid SDK 1.14.0¶
Genvid Technologies SDK 1.14.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 のインストール支援。
このバージョンの主な変更点¶
外部バイナリの更新¶
Hashicorp および関連する多くのバイナリを最新版に更新しました。更新ログをご確認ください。
- Consul v1.1.0 (Changelog)
- Consul-Template v0.19.4 (Changelog)
- Terraform v0.11.7 (Changelog)
- Vault v0.10.1 (Changelog)
Hashi UI をバーション v0.25.0 に更新。
Genvid Terraform モジュールのリファクタリング¶
Terraform モジュールを再構成し、設定、編集をやり易くしました。Terraform 変数でクラスタのカスタマイズを行って、コンポーネントを再利用することができます。詳細は解説書の 「Terraform の構成」 を参照してください。
その他変更点や修正点¶
- [native-sdk] オーディオ機器が停止時に、オーディオを無音キャプチャ。
- [sdk] デフォルトオーディオのエンドポイントが存在する場合に ID をログに記録。
- [sdk] WASAPI の無音状態と、オーディオサンプルが停止する不具合を修正
- [bastion-api] 特定プランを適用する、新しい Terraform エンドポイントを追加
- [consul] Consul の最新バージョンで、サービスが停止した場合に Consul が反応しなくなる問題が改善されるはずです。
- [toolbox] bastion をローカルで使用していない GENVID_BASTION_URL でツールボックススクリプトのエラーを修正。
- [toolbox] デフォルトの S3 バケットとレポジトリのロード元を
{AccountID}-{bastionID}-{clusterID}-images/
から{AccountID}-{bastionID}
に変更。SDK イメージのバーションは/images/SDK-{version}
で、その他のイメージのデフォルトパスは/images/custom
です。 - [toolbox]
genvid-bastion install
コマンドで Bastion ID を強制的に使用します。 - [toolbox]
genvid-cluster global-update
コマンドと関連 API からsource
パラメータを削除。 - [toolbox]
genvid-bastion
で新しい制限付きbackup
コマンドが使用可能。主に、Consul の新バージョンへのアップグレード補助として使用。 - [terraform] すでに使われていない
genvid/aws
モジュールのimages_bucket
変数を削除。 - [terraform] タグによる AWS コンソール検索で検索しやすいように、AWS リソースに適切にタグ付け。名前空間、ステージによるグループ化のため、新しい Terraform 変数を追加。
- [services] compose サービスおよび discod へのHttp リスエストで、認証失敗時に、ステータス 500 ではなくステータス 403 を返すように変更。
- [services]
us.pool.ntp.org
をポイントするNTP サーバーのデフォルト値を修正。 - [composed] health サービスの null ポインタの例外により、compose サービスで、まれにクラッシュが発生する不具合を修正。
- [composed] オーディオサンプルを低下させるストリームの遅延問題を修正。
- [gvencode] オーディオ/ビデオの同期の問題を修正 (YouTube、スタンドアロン)。
- [gvencode] スイッチングのエラーがログに大量に記録される問題を修正。
- [standalone player] ビデオが開始していない場合、ビデオに再生ボタンを表示。
- [standalone player] 初期化プロセスの初めに onPlayerReady コールバックを呼び出す。
- [cluster-ui] クラスタが停止しているときに、http 接続が大量に発生する問題を修正。
- [cluster-ui] ジョブの編集中に、データが最新でないという間違った警告が出る不具合を修正。
- [cluster-ui] Settings/Config ダイアログで、key/value を変更した際のフィードバックを改善。
- [bastion-ui] UI により Terraform ワークフローが適用されます。
- [bastion-ui] モジュールリストは、クラスタ API をサポートするモジュールをデフォルトでフィルタ処理します。
- [bastion-ui] モジュールリストの帯域を軽減。
- [bastion-ui] アップグレード時の html キャッシュの問題を修正。
- [ue4-plugin] ゲームデータ、注釈、通知で全角文字を使用した際の不具合を修正。送信時のシステムによるバイト数計算が間違っており、受信データで欠落が発生していました。
- [ue4-plugin] イベントとコマンドの複製を許可するオプションを追加しました。
- [tutorial] SDKの初期化が失敗すると、サンプルが終了するようになりました。
- [studio] モニターの遅延を軽減。
- [studio] 新しいコンポジションを選択すると、新しいコンポジションがプレビュー表示されます。
既知のバグ¶
このリリースでは一部のバグが未修正のまま残っていますが、まもなく修正する予定です。
プロキシを使用している場合に 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
に設定する必要があります。