GameLift Streamsでサウンドが鳴らない時のチェック項目
こんにちは。ゲームソリューション部の出村です。GameLift Streams、活用してますか?
ローカルのWindows環境では問題なく音が鳴るアプリが、GameLift Streamsで動かすと無音になってしまう——そんなトラブルに遭遇したことはないでしょうか。本記事では、GameLift Streamsでサウンドが再生されない場合のチェック項目を、切り分け手順から具体的な対処法まで整理してご紹介します。
サウンドデータの流れ
まず前提として、GameLift Streamsにおけるサウンドは以下の経路を通って再生されます。
Windowsアプリ
↓
クラウド上の仮想オーディオデバイス(Amazon Audio Device)
↓
ストリーミングエンコーダ
↓
ネットワーク
↓
クライアントブラウザ
この経路のどこかで音声データが途切れると、最終的にユーザーには無音として届きます。トラブルシューティングは「どの段階で音が止まっているのか」を突き止めることから始まります。
ステップ1:問題の切り分け(GameLift Streams側 or ブラウザ側)
最初にやるべきは、不具合の原因がGameLift Streams側(=クラウド上のWindowsアプリやエンコーダ)にあるのか、それともブラウザ側(=クライアントPC)にあるのかの切り分けです。
確認手順
確認手順としては以下の通りです
- GameLift Streamsのテストストリームでアプリ(ゲーム)を起動する
- BGMなど、本来サウンドが鳴っている場面を表示する
- Chromeのアドレスバーに
chrome://webrtc-internals/を入力する - 表示された画面から 「Stats graphs for inbound-rtp (kind=audio, ...)」 で始まる行を探して開く
- 左上の
audioLevelのグラフを確認する
次のスクリーンショットは、Google Chromeにて「chrome://webrtc-internals/」で開いた直後の画面です。文字が多くて探すのが大変ですが、囲まれている箇所をクリックすることで、WebRTCでクライアント側に送られているサウンドデータが確認できる項目となります。

先の囲まれた箇所をクリックした後の画面です。
audioLevel は、ブラウザ側に転送されてきた音量を示すグラフです。これを見ることで、ブラウザに音声データが届いているのかどうかが判別できます。

判定の見方
audioLevel の状態 |
原因の所在 |
|---|---|
| ずっと 0 のまま | GameLift Streams側で音が再生されていない(≒ クラウド上のアプリやエンコーダの問題) |
| 0より大きい値でグラフが描画されている | ブラウザ側 / クライアントPC側の問題(ブラウザの音量設定、PCのサウンド出力先など) |
つまり、BGMが鳴っているはずのシーンなのに audioLevel がずっと0であれば、原因はクラウド側にあります。逆に、グラフは動いているのに音が聞こえないなら、ローカル環境を疑いましょう。
本記事では、ここからは GameLift Streams側に原因がある場合 の対処法を掘り下げていきます。
ステップ2:GameLift Streams側の原因と対処法
GameLift Streamsでは、デスクトップ上で動作するWindowsアプリをクラウドで動かすのが一般的な使い方です。「ローカルWindowsでは音が鳴るのに、GameLift Streamsに載せると無音になる」というケースで確認すべきポイントは、次のとおりです。
アプリのオーディオ要件を満たしているか
WindowsアプリがGameLift Streams環境で正しく音声を出力するためには、GameLift Streamsに適した実装になっている必要があります。
オーディオデバイスの指定方法
Windowsインスタンス内では、デフォルト再生デバイスとして "Amazon Audio Device"(またはそれに類する仮想ドライバ)が設定されています。アプリは特定のサウンドカードを名指しで指定せず、「System Default Output(システム既定の出力)」 を使うように実装されている必要があります。
出力フォーマット
推奨は 48kHz / 16-bit / Stereo です。44.1kHzやモノラルなど、これ以外の設定だとnVidiaのエンコーダ側でリサンプルに失敗し、音切れや無音の原因になります。
今回問題が発生した原因は、出力フォーマットが48kHz / 16-bit / Stereoではなかったためでした。これを先の設定にすることで問題が解決しました。
まとめ
このように、GameLift Streamsのアプリで問題が発生した場合は以下のように進めるとよいです。
- クライアント側(ブラウザ側)で発生している問題か、アプリ側で発生している問題か?
- アプリ側で発生している問題であれば、最初から音が鳴らないか? なにかの条件で鳴らないのか? の確認
- 最初から鳴らないのであれば、サウンドの初期化設定や出力フォーマットを確認する
GameLift Streamsはローカル環境とは異なるオーディオ経路を持っているため、特に「System Default Output」「48kHz」はアプリ実装段階から意識しておくと、トラブルを未然に防げます。





