音声と映像の設定 — Linux

以下の項目について、音声や映像の設定を変更できます。 公開された そして 購読済み ストリーム:

オーディオまたはビデオのみの公開

以下の関数を呼び出すことで、音声と映像のオン/オフを切り替えることができます。 otc_publisher_set_publish_audio() そして otc_publisher_set_publish_video() 関数に、 OTC_FALSE または OTC_FALSE として publish_audio そして publish_audio パラメータ。たとえば、次のコードは音声をオフにします:

otc_publisher_set_publish_audio(publisher, OTC_FALSE);

音声のみのセッションでの発表

を設定する。 音声のみ セッションで、 otc_publisher_settings struct の場合、 otc_publisher_settings_set_video_track() 関数に、以下を引数として渡して OTC_FALSE として enabled パラメータ。次に、 otc_publisher_new_with_settings() 作成する関数。たとえば、次のコードは音声専用セッション用のパブリッシャーを作成します:


otc_publisher_settings publisher_settings = otc_publisher_settings_new();
otc_publisher_settings_set_video_track(publisher_settings, OTC_FALSE);
otc_publisher_callbacks publisher_callbacks = {0};
// Set callbacks for the publisher. Then:
otc_publisher publisher = otc_publisher_new_with_settings(publisher_callbacks, publisher_settings);

カスタムビデオキャプチャーの使用

について otc_publisher_new() この関数には、 capturer パラメータ。これを NULL, SDKは、公開されるビデオストリームのソースとして、デフォルトのシステムカメラを使用します。ただし、次のように定義することで、パブリッシャー用にカスタムビデオキャプチャ機能を使用することも可能です。 otc_video_capturer_callbacks struct として定義し、それを capturer パラメーターの otc_publisher_new() 関数である。その otc_video_capturer_callbacks この構造体には、パブリッシャーの動画に関連するイベント(たとえば、動画キャプチャ機能が新しい動画フレームを必要とする場合など)が発生した際に呼び出されるコールバック関数への関数ポインタが含まれています。

例については、の「Custom Video Capturer」サンプルを参照してください。 vonage-linux-sdk-samples レポ。

配信者の動画のローカル画面をミラーリングする

デフォルトでは、公開動画のローカルレンダラは動画をミラーリングします。この場合 mirror_on_local_render プロパティの otc_video_capturer_settings インスタンスを呼び出すことで得られる。 get_capture_settings(capturer, settings) 関数に設定します。これを true に設定すると、パブリッシャーのローカルレンダラーでビデオがミラーされます。次のように設定します。 false ミラーリングされないようにする。

この設定は、パブリッシャのクライアント アプリケーションでレンダリングされる動画にのみ影響します。サブスクライブしているクライアントの動画には影響しません。

カスタムオーディオドライバの使用

カスタムオーディオデバイスを定義することで、クライアント内のすべてのパブリッシャーにオーディオを配信したり、クライアントがサブスクライブしているすべてのストリームから生成される混合オーディオストリームを処理したりすることができます。

カスタムオーディオデバイスは、 otc_audio_device struct。そして、 otc_audio_device_callbacks この構造体には、OpenTok Linux SDK が呼び出すオーディオ関連のコールバックとして機能する関数への関数ポインタが含まれています。

例については、の「カスタムオーディオデバイス」サンプルを参照してください。 vonage-linux-sdk-samples レポ。

加入者の音声音量の設定

を呼び出すことで、各加入者の音声ボリュームを個別に設定できます。 otc_subscriber_set_audio_volume() 関数である。

オーディオまたはビデオのみの購読

デフォルトでは、サブスクライバーは、音声および動画が利用可能な場合、それらを購読するように初期化されます。音声のオン/オフは、 otc_subscriber_set_subscribe_to_audio(otc_subscriber *subscriber, otc_bool subscribe_to_audio) :

// audio off:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_FALSE);
// audio on:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_TRUE);

次の関数を呼び出すことで、動画の表示/非表示を切り替えることができます。 otc_subscriber_set_subscribe_to_video(otc_subscriber *subscriber, otc_bool subscribe_to_video) :

// video off:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_FALSE);
// video on:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_TRUE);

ストリームがオーディオかビデオかを検出する

を呼び出すことができます。 otc_stream_has_audio() そして otc_stream_has_audio() のメンバ関数です。 otc_stream インスタンスにオーディオまたはビデオがあるかどうかを確認する。

音質の調整

パブリッシャーストリームの音質を微調整するには、以下の方法があります:

オーディオ・ビットレート

otc_publisher_set_max_audio_bitrate(otc_publisher* publisher, uint32_t bitrate);

パブリッシュされるオーディオの希望するビットレート(bits per second)。設定可能な値の範囲は6,000~510,000です(無効な値は無視されます)。(無効な値は無視されます。) 高品質な音声を有効にする (または低品質の音声で帯域幅の使用量を減らす) には、この値を設定します。このオプションを設定しないと、OpenTok は自動的にストリームの音声ビットレートを割り当てます。

以下は推奨設定です:

  • 8,000~12,000(ナローバンド(NB)スピーチ用
  • 16,000~20,000(ワイドバンド(WB)スピーチ用
  • フルバンド(FB)スピーチで28,000~40,000ドル
  • フルバンド(FB)音楽用48,000~64,000ドル

オーディオ処理を無効にする

otc_publisher_settings_set_disable_audio_processing (otc_publisher_settings* settings, otc_bool disabled);

公開音声のエコーキャンセル、自動ゲインコントロール、ノイズ抑制を無効にするかどうか。これを true 高音質オーディオを公開するときに使用します。デフォルト値は false.

自動ゲインコントロール

otc_publisher_settings_set_auto_gain_control(otc_publisher_settings* settings, otc_bool enabled);

公開オーディオの自動ゲインコントロールを有効にするかどうか。これを false 高音質オーディオを公開するときに使用します。デフォルト値は true.オーディオ処理を無効にすると、この設定は無視されます。

エコーキャンセリング

otc_publisher_settings_set_echo_cancellation(otc_publisher_settings* settings, otc_bool enabled);

公開音声のエコーキャンセレーションを有効にするかどうか。これを false 高音質オーディオを公開するときに使用します。デフォルト値は true.オーディオ処理を無効にした場合、この設定は無視されます。

ノイズ抑制

otc_publisher_settings_set_noise_suppression(otc_publisher_settings* settings, otc_bool enabled);

公開音声のノイズ抑制を有効にするかどうか。これを false 高音質オーディオを公開するときに使用します。デフォルト値は true.オーディオ処理を無効にした場合、この設定は無視されます。

ステレオ

otc_publisher_settings_set_stereo(otc_publisher_settings* settings, otc_bool enabled);

ステレオ音声を公開するかどうか。デフォルト値は false.

パブリッシャーの動画画質低下設定の設定

帯域幅やCPUが制限されている場合、ビデオエンジンはパブリッシャービデオのフレームレートや解像度を下げ、制限に合わせることができる。

「劣化優先度」は、この動作を微調整できる設定項目です。

開発者は、ユースケースや要件に応じて、劣化プリファレンスを定義し、適用する責任がある。

これはプリファレンスとして機能し、ビデオエンジンは選択されたプリファレンスに従おうとするが、結果は保証されない。

を使用する場合、このプリファレンスは異なる動作をすることがあります。 スケーラブルビデオビデオエンジンは、解像度を落とす代わりにレイヤーを削除することができる。

コンテンツのヒント とデグラデーション・プリファレンスは、異なるが関連した目的を果たす:Content Hint は伝送されるコンテンツのタイプを記述し、Degradation preference はエンコーディング戦略を制御します。コンテンツヒントを設定すると、ビデオエンジンは自動的に適切なデグラデーションプリファレンスを決定します(たとえば、"text" は自動的に解像度を維持するように選択します)。劣化プリファレンスを明示的に設定すると、この自動選択が上書きされます。

この値は、提供された otc_degradation_preference 価値観の違いだ:

未設定

otc_publisher_set_degradation_preference(publisher, OTC_DEGRADATION_PREFERENCE_NOT_SET);

デフォルト値です。ビデオエンジンが最適な画質低下設定を決定します。

フレームレートと解像度を維持する

otc_publisher_set_degradation_preference(publisher, OTC_DEGRADATION_PREFERENCE_MAINTAIN_FRAMERATE_AND_RESOLUTION);

ビデオエンジンは、フレームレートを安定させ、解像度を下げないように努めます。

フレームレートを維持する

otc_publisher_set_degradation_preference(publisher, OTC_DEGRADATION_PREFERENCE_MAINTAIN_FRAMERATE);

ビデオエンジンはフレームレートを一定に保つよう努めますが、必要に応じて解像度を下げる場合があります。

解像度を維持する

otc_publisher_set_degradation_preference(publisher, OTC_DEGRADATION_PREFERENCE_MAINTAIN_RESOLUTION);

ビデオエンジンは解像度を下げることはありませんが、必要に応じてフレームレートを下げる場合があります。

バランスが取れている

otc_publisher_set_degradation_preference(publisher, OTC_DEGRADATION_PREFERENCE_BALANCED);

ビデオエンジンは、必要に応じて解像度とフレームレートの両方を調整し、バランスを取るよう努めます。