Genvid SDK 1.14.0

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

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

外部バイナリの更新

直接使用する場合は、それらの変更履歴を確認することをお勧めします。

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 でツールボックススクリプトのエラーを修正。
  • [ツールボックス] デフォルトの S3 バケットとレポジトリのロード元を {AccountID}-{bastionID}-{clusterID}-images/ から {AccountID}-{bastionID} に変更。SDK イメージのバーションは /images/SDK-{version} で、その他のイメージのデフォルトパスは /images/custom です。
  • [ツールボックス] genvid-bastion install コマンドで Bastion ID を強制的に使用します。
  • [ツールボックス] genvid-cluster global-update コマンドと関連 API から source パラメータを削除。
  • [ツールボックス] 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.silenttrue にする。 (デフォルト設定をする。)
  • raw オーディオキャプチャを使用する (Unity のデフォルト設定)。

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

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