Genvid SDK 1.1.0

Genvid MILE SDK 1.1.0へようこそ このリリースでは、まだプロダクションのデプロイを行うことはできませんが、Genvid のライブ配信体験を既存のプロジェクト内で開発できます。

弊社の開発チームは、プロダクションのデプロイが可能な SDK のAバージョンを近日中に公開できるよう日々努力を積み重ねています。また今後のリリースで、スムーズな移行ができると期待しています。それまでに、是非ともローカル開発環境を使用して統合を始められることをお勧めします。

現在の機能

現在、ゲームを実行して YouTube にライブ配信するためのコア機能が用意されています。また、実際の Genvid のストリーミング体験を実現するゲームの追加イベントやメッセージなども用意されています。

  • D3D11 ビデオキャプチャ
  • WASAPI オーディオキャプチャ
  • ビデオエンコード (H264 + AAC)
  • YouTube へのライブ動画配信
  • 任意の追加ゲームイベントおよび通知のライブ配信
  • スケーラブル イベント メッセージ システム
  • ビデオとゲームデータストリームの自動同期
  • 統合しやすいネイティブおよび Web SDK
  • サンプル チュートリアル プロジェクト
  • サンプル Unreal Engine 4 プロジェクト
  • 詳細な解説書
  • ローカル デプロイ用ツールとスクリプト
  • クラウド デプロイ用ツールとスクリプト (ベータ)

今後追加を予定している機能

さらに、最初のローンチ後にリリースされるすべての新機能のパイプラインを作成中です。

  • Genvid SDK の Unity engine 統合
  • クラウドでクラスタを直接管理する bastion ホスト
  • シークレット (secret) パラメータの取り扱いの安全性向上
  • ユーザーの認証と確認
  • 対応動画フォーマットの追加
  • ハードウェアエンコード
  • 複数のデータセンターに対応
  • 複数の配信セッション管理
  • 同一インスタンス、または複数のインスタンスからの、複数の動画およびデータのストリーミング
  • 外部ソースからのオーディオ/ビデオストリーミングをサポート
  • インスタント リプレイ
  • ライブ動画編集と基本コンポジション効果
  • データストリームのオフライン録音と再生
  • オフライン配信セッション編集

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

プロジェクトファイルの実装

新しい Genvid プロジェクトファイルが追加され、独自のプロジェクトが作成できるようになりました。簡単に独自のプロジェクトを作成でき、SDK のバージョンアップも簡単にできるようになります。これは、さまざまなプロジェクトやクラスタを管理するための、第一歩でもあります。 詳細については、クイックツアーガイドで確認してください。

Windows イメージバイナリの変更

Windows AMI の初期セットアップ方法を若干改善しました。 従来の python パッケージを使用したインストールから、公式の Windows インストーラから AWS パッケージをインストールするように変更しました。 これにより、AWS ツールのパスが、 C:\\Program Files\\Python35\\Scripts\\aws.cmd から C:\\Program Files\\Amazon\\AWSCLI\\aws.exe に変更になります。 cloud-servicesupdate.nomad.tmpl テンプレートも更新されています。 また、Sysinternal Suite Utilities は削除しています。 必要に応じて、Windows Sysinternals の Web サイト: https://technet.microsoft.com/en-us/sysinternals/default からインストールしてください。

サードパーティのバイナリ更新

最新の修正プログラムや機能を利用するため、多くのツールのテストおよび更新を行っています。主な変更には、consul-template があります。キーがすぐに失敗しないで、使用可能になるまでブロック状態となるようになりました。 この動作は、consul やその他のサービスの設定時間を確保するために役立ちます。 ただし、キーを間違えてしまうと失速する可能性があります。 これを回避するため、テンプレートのレンダリング処理に 30 秒のタイムアウトを追加しています。

install-requirements.py スクリプトの廃止

インストーラの仕様変更により、このスクリプトが重複されたために、削除しました。

コマンドコールバックに追加パラメータを追加

コマンドコールバックは、イベント用の仕様に合わせ、追加 void* userData パラメータを使用するようになりました。 関数 Genvid_SubscribeCommand()Genvid_UnsubscribeCommand() 、および GenvidCommandCallback タイプも、すべて調整しました。 追加パラメータが不要な場合は、 NULL 値を送信してください。

既知のバグ

このリリースでは一部のバグが未修正のまま残っていますが、まもなく修正する予定です。

Windows がスリープ状態から復帰後、アプリケーションが正常に動作しない。

Nomad は、それ自体も含み、スリープ中のジョブで問題が発生する場合があります。Nomad 側で修正される可能性は低いものの、プロダクション環境では発生しません。 そのための最良の回避策は、サービスを実行しているときに Windows をスリープ状態しないようにするか、あるいは単に tutorial.py reinstall でサービスを再起動することです (残念ながら、 tutorial.py restart では不十分です)。

手動で再スタートした後、YouTube のストリームが正しくリセットされない

サービスが停止して、その直後に再スタートした場合、YouTube のライブ配信サービスは、同一ライブ配信セッションであると判断します。ほとんどの場合は、これで問題ありませんが、サービスと実際の視聴との間に長い遅延が発生するために、直前のセッションが表示されてしまう可能性があります。今後のバージョンでは、新しいストリームを適切にリクエストする方法を実装する予定ですが、それまでは、YouTube ダッシュボードからストリームキーをリセットするか、サービスを再スタートする前に、しばらく (1 分程度) 時間を空けるようにしてください。

オーディオがマイクの音声やループを無限にキャプチャする

ループバックデバイスでオーディオをキャプチャしているため、ゲームを実行しているマシンを通過するすべてのサウンドがキャプチャされます。これには、システムアラートやマイク入力だけでなく、Web ブラウザも含まれます。ゲームを実行しているマシンからゲームストリームを鑑賞した場合、最大 10 秒の徐々に音質が劣化 (ストリーミングのたびに圧縮がかかるため) するエコーがかかった状態で、ゲーム自体のオーディオをキャプチャしているのが確認できます。 推奨する解決策としては、オーディオを無効にする (設定ファイルの genvid.encode.input.silent = true) 方法、または、Web サイト監視に別のマシンを使用することです。 この問題は、ゲームをクラウド環境でデプロイした際には発生しません。

オーディオが同期しない

オーディオに若干同期のズレが発生する場合があります。この問題は、今後のリリースで修正予定です。それまでは、設定ファイルでビデオの遅延を設定することで、ビデオに遅延を追加してください。デフォルト値は genvid.encode.output.videodelay = "1250ms" (最後が ms で終わる文字列の形式) です。

シャットダウン後、AWS サーバーが正常に動作しない

サーバーを停止すると、パブリック IP アドレスが消失し、システムが新しいアドレスをうまく取得できなくなります。 cloud.py reinstall でサーバーを再インストールする必要がありますが、これには長い時間がかかります。 クラウド サポートの公式リリースで、この問題が解消できるよう開発を進めています。