Audio and Video Quality

1、ビデオに関する質問

TRTCのビデオ画面に現れた黒い枠を消すにはどうすればいいですか?

TRTCVideoFillMode_Fill(フィル)を設定すれば解決できます。TRTCのビデオレンダリング方式はFillとFitに分かれ、ローカルのレンダリング画面はsetLocalViewFillMode()で設定でき、リモートレンダリング画面は setRemoteViewFillModeで設定できます:
TRTCVideoFillMode_Fill:画像を画面一杯に広げ、表示するビューウィンドウからはみ出た映像部分はカットされます。よって画面の表示は完全にはなりません。
TRTCVideoFillMode_Fit:画像の長辺が画面一杯になるように広げ、短辺の部分はブラックで補います。ただし、画面のコンテンツは完全なものになります。

TRTCにラグが発生した場合はどのように調べればいいですか?

通話品質は、対応するRoomIDとUserIDを用いて、TRTCコンソールの監視ダッシュボードページで確認することができます:
受信端末の視点から送信端末と受信端末ユーザーの状況を確認します。
送信端末と受信端末のパケット損失率が高いかどうか確認します。パケット損失率が通常より高い場合、ネットワーク状態が不安定なためにラグが発生しています。
フレームレートとCPU使用率を確認します。フレームレートが低くCPU使用率が高いと、ラグが発生します。

TRTCに画質の不良、ぼやけ、モザイクなどが発生する場合はどのように調べればいいですか?

解像度は主にビットレートに関係しています。SDKのビットレートが低く設定されているか確認してください。解像度が高く、ビットレートが低いとモザイク現象が起こりやすくなります。
TRTCは、クラウドQOSトラフィックコントロールポリシーを通じて、ネットワークの状態に応じ、ビットレートと解像度を動的に調整します。ネットワークが貧弱な場合、ビットレートが下がりやすくなり、解像度が低下します。
入室時にVideoCallモードとLiveモードのどちらを使用しているかチェックします。通話シーン向けのVideoCallモードは低遅延とスムーズさの維持に重点を置いています。したがって脆弱なネットワークの場合、スムーズさを確保するために画質が犠牲になりやすくなります。画質の方が大事なシーンには、Liveモードの使用をお勧めします。

TRTCでは、自分のローカル画面とリモート画面の左右が逆になりますか?

ローカルでキャプチャした画面のデフォルト設定はイメージです。App側は、setLocalViewMirrorインターフェースで設定できますが、このインターフェースで変更できるのはローカルカメラのプレビュー画面のミラーモードだけです。setVideoEncoderMirrorインターフェースによってエンコーダが出力する画面のミラーモードを設定することもできますが、このインターフェースではローカルカメラのプレビュー画面は変更できません。ただし、相手側のユーザーが見る(およびサーバーが録画する)画面効果を変更できます。Web端末ではcreateStreamインターフェースのmirrorパラメータによって設定できます。

TRTCではビデオコーデックの出力の方向設定は効果がありませんか?

setGSensorMode()をTRTCGSensorMode_Disableに設定し、重力センサーをオフにしてください。そうしない場合、setVideoEncoderRotationを呼び出した後、リモートユーザーが視聴できる画面が変化しません。

TRTCの通常のアップストリームにはデータがあるのに、Relayed Pullでは失敗して画面が見られなくなるのはなぜですか?

アプリケーション管理> 機能設定 の中でAuto-Relayed Pushがオンになっているか確認してください。

プレビュー/再生画面に回転が発生しましたが、どうすればいいですか?

TRTCSDKを使用してカメラキャプチャを行っている場合
SDKを最新バージョンに更新することをお勧めします。
特殊なデバイスの場合は、ローカルプレビュー画面レンダリング角度インターフェースsetLocalViewRotation、リモートビデオ画面レンダリング角度インターフェースsetRemoteViewRotation、エンコーダ出力画面のレンダリング角度設定インターフェースsetVideoEncoderRotationを使用して調整することができます。具体的なインターフェースの使用説明については、ビデオ画面の回転をご参照ください。
カスタマイズされたビデオキャプチャを使用している場合
SDKを最新バージョンに更新することをお勧めします。
キャプチャしたビデオ画面の角度が正確であることを確認します。
ビデオデータをTRTCSDKに入力し、TRTCCloudDef.TRTCVideoFrameに回転角度を設定しているかどうかを確認します
特殊なデバイスの場合は、ローカルプレビュー画面レンダリング角度インターフェースsetLocalViewRotation、リモートビデオ画面レンダリング角度インターフェースsetRemoteViewRotation、エンコーダ出力画面のレンダリング角度設定インターフェースsetVideoEncoderRotationを使用して調整することができます。具体的なインターフェースの使用説明については、ビデオ画面の回転をご参照ください。

ビデオにミラーリングの問題が発生しましたが、どうすればいいですか?

使用前にカメラでビデオ通話を行うと、ミラー効果が生じ、ローカルプレビュー、リモート視聴者の画面が左右反転することがあります。

横画面でプッシュを行うにはどうすればよいですか?

開発者が使用するデバイスがテレビの場合、またはケースに応じて横画面でのプッシュが必要となる場合があります。

ライブストリーミング中に再生スクリーンが黒くなるのは何が原因ですか?

再生の失敗またはデコードの失敗です。再生失敗の対処方法をご参照ください。
Metadataの問題です。例えば、metadataにはオーディオストリームの情報しかないのに、実際のデータにはオーディオもビデオも含まれる場合、あるいは開始時のデータはオーディオのみですが、ある程度の時間再生した後にビデオの情報が加わった場合などがあります。このような場合、一般的にはソースストリームのmetadata情報の変更をお勧めします。
ビデオコーデックデータに画面情報がなく、SEIに似たタイプのフレームのみがある場合、デコードを行っても画面が出ず、黒いスクリーンのままとなります。これは通常、 カスタマイズタイプのビデオデータで起こります。

ライブストリーミング中に再生画面がちらついたり、緑色になったりするのは何が原因ですか?

一般的な原因はIフレームがなくなったことです。PフレームとBフレームのデコードはすべてIフレームに依存しているため、Iフレームがなくなると、PフレームとBフレームのデコードも失敗する場合があり、それにより画面にちらつき、ぼやけ、緑色などが生じます。まず最初に、ffplay、VLC、Potplayerなどの異なるプレーヤーを使用して同一のストリームを再生してみて、すべてのプレーヤーでちらつき、緑色が生じた場合は、通常はオーディオビデオソースストリームに問題があり、ソースストリームを確認してください。
Metadataに変化が生じた場合です。大多数のプレーヤーは一般的に、デコード開始前に1回だけmetadataのデコードパラメータ設定を解析します。解像度の変化など、画面に変化が生じた場合も、プレーヤーのデコードパラメータは再設定されないため、画面がちらついたり緑色になったりすることがあります。この場合、最適な方法は、プッシュ端末でライブストリーミング中にコーデックパラメータを変更しないことです。そうすればmetadata情報が変更されることはありません。
ハードウェアのコーデックの互換性の問題です。この状況は通常、Androidデバイスで発生します。一部のAndroidデバイスのハードウェアはコーダ・デコーダの実装が不良であり、互換性に問題があります。この場合には、ソフトウェアでのエンコード・デコードに変更し、比較してください。
プッシュ端末と再生端末のカラーフォーマットが異なることが原因である場合があります。例えば、プッシュ端末でNV12を使用し、一方再生端末はI420をサポートしている場合、デコードの際にカラーフォーマットの不一致により、画面がちらついたり緑色になったりすることがあります。この場合は、プッシュプル双方のカラーフォーマットを統一します。

2、オーディオについての質問

TRTCで通話と同時にVODプレーヤーTXVodPlayerを使って再生すると、再生のボリュームがとても小さくなるのはなぜですか?

setSystemVolumeTypeインターフェースで通話時に使用するシステムの音量タイプを設定します。設定をメディアボリュームモード TRTCSystemVolumeTypeMediaにすれば解決できます。

どうすればメディアボリュームや通話ボリュームを選べますか?

setSystemVolumeTypeインターフェースで、通話ボリュームとメディアボリュームを自分で選択する機能をサポートしています。
TRTCAudioVolumeTypeAuto :デフォルト設定のタイプ。マイクオン(発言)時は通話ボリューム、マイクオフ(非発言)時はメディアボリュームです。
TRTCAudioVolumeTypeVOIP :終始通話ボリュームを使用します。
TRTCAudioVolumeTypeMedia :終始メディアボリュームを使用します。

音量が小さい場合はどうすればよいですか?

全視聴者に聞こえる音量がすべて小さい場合は、アップストリーム側の要因によるものです:
WindowsとmacのsetCurrentDeviceVolume、全プラットフォームのsetAudioCaptureVolumeインターフェースのvolume値が50より小さくなっていないかを確認し、適宜音量を大きくすることができます。
3A処理のオートゲインコントロール(AGC)がオンになっていないか確認します。
Bluetoothイヤホンによるものかどうかを確認します。
一部の視聴者に聞こえる音量が小さい場合は、ダウンストリーム側の要因によるものです。
setAudioPlayoutVolumesetCurrentDeviceVolumeインターフェースのvolume値が50より小さくなっていないかを確認し、適宜音量を大きくすることができます。
setAudioRoute APIを呼び出してヘッドホン再生に切り替えていないかを、携帯端末で確認することができます。

音声ラグが断続的に起こりますが、どうすればいいですか?

監視ダッシュボードを開き、オーディオオプションタブで次のことを確認します:
受信者と送信者の「デバイス状態」のCPUが90%を超えている場合は、他のバックグラウンドプログラムを閉じることをお勧めします。
オーディオのアップストリームとダウンストリームに明らかなパケット損失があり、rtt値の変動が大きい場合は、ユーザーのネットワーク品質に問題があることを表しており、安定したネットワークへの切り替えをお勧めします。

エコーはなぜ発生するのですか?

通話双方のデバイス間の距離が近すぎる場合に発生する正常な現象です。テストの際に距離を少し離してみてください。また、誤って3A処理のエコーキャンセラー(AEC)をオフにしていないか確認してください。

音質が悪い、または音量が大きくなったり小さくなったりしますが、どうすればいいですか?

サウンドカードを外部接続し、インイヤーモニタリングをオンにしている場合は、マイク接続時にこの問題が起こることがあります。サウンドカードには一般的にインイヤーモニタリング機能が搭載されているため、サウンドカードを外部接続する場合はインイヤーモニタリングをオフにすることをお勧めします。

Web通話中にエコー、雑音、ノイズ、音量が小さくなる問題が発生しますが、どうすればいいですか?

通話双方のデバイス間の距離が近すぎる場合に発生する正常な現象です。テストの際に距離を少し離してみてください。他の端末でWeb端末の音声のエコー、ノイズ、雑音などが聞こえる場合、Web端末の3A処理が有効になっていないことを意味します。ブラウザネイティブのgetUserMediaAPIを使用してユーザー定義キャプチャを行っている場合は、3Aパラメータを手動で設定してください:
echoCancellation:エコー除去スイッチ
noiseSuppression:ノイズ抑制スイッチ
autoGainControl:自動調整スイッチ
TRTC.createStreamインターフェースを使用してキャプチャを行う場合は、3Aパラメータを手動で設定する必要はありません。SDKでは3Aがデフォルトでオンになっています。

3、その他の質問

TRTCでネットワーク状態をモニタリングし、信号の強さを表示する機能を実現するにはどうすればいいですか?

onNetworkQuality()を使用して現在のネットワークのアップリンクとダウンリンクの品質を監視できます。Androidを例にとると、TRTC-API-Exampleを参照して信号の強さ機能を実現できます。

デバイスのカメラまたはマイクが占有される等の異常が起きるのはなぜですか?

exitRoom() インターフェースの呼び出しによってルーム退出の関連ロジックが実行されます。例えば、オーディオ・ビデオデバイスのリソースやコーデックなどのリソースのリリースですが、ハードウェア装置のリリースは非同期の操作となり、リソースのリリースが完了してから、SDKが TRTCCloudListenerの中の onExitRoom()のコールバックによって上の階層に通知します。enterRoom() を再度呼び出したい、またはその他のオーディオ・ビデオSDKに切り替えたい場合は、onExitRoom()のコールバックを待ってから再度関連操作を行ってください。

どうすればカメラの起動完了を確認できますか?

コールバックメソッドonCameraDidReadyによって、このコールバックを受け取った時にカメラがすでに準備完了状態にあると表示されます。

どうすればマイクの起動完了を確認できますか?

コールバックメソッドonMicDidReadyによって、このコールバックを受け取った時にマイクがすでに準備完了状態にあると表示されます。

カメラの起動に失敗しましたが、どうすればいいですか?

カメラの権限が承認されているかどうか確認してください。
デバイスがテレビ、ボックスなどの場合、使用するカメラは外部接続になります。現時点でTRTCSDKは外部接続カメラの認識をサポートしています。このため、カメラの接続部とデバイスがきちんと接触していることを確認してください。

TRTCにはどのような技術統計指標がありますか?

ご注意:
このケースはiOS/Mac、Android 、Windowsプラットフォームに適用されます。
SDKが提供するコールバック方法はonStatistics(TRTCStatistics statics)で、2秒ごとに技術指標をコールバックします。現時点でのappCpu(AppのCPU使用率)、systemCpu(現時点でのシステムのCPU使用率)、rtt(遅延)、upLoss(アップストリームのパケット損失率)、downLoss(ダウンストリームのパケット損失率)、およびローカルメンバーとリモートメンバーのオーディオビデオ統計情報が含まれます。具体的なパラメータについてはTRTCStatisticsのタイプ説明をご参照ください。