このトピックでは、API 呼び出しを使用してビデオエンコーディングプロパティを設定する方法について説明します。
概要
リアルタイム音声・映像 (ARTC) SDK は、開発者にビデオエンコーディングの精密な制御を提供します。setVideoEncoderConfiguration
メソッドを使用すると、さまざまなビデオエンコーディングプロパティを簡単に設定できます。このメソッドを使用すると、ビジネス要件に合わせて、ビデオ解像度、ビットレート、フレームレート、印刷の向きなどのプロパティを柔軟かつ動的に調整できます。
仕組み
エンジンが作成された後、setVideoEncoderConfiguration
メソッドを呼び出して、ビデオエンコーディングプロパティを設定できます。また、チャンネルに参加した後に、ビジネスの変化に応じてプロパティを動的に変更するために、このメソッドを呼び出すこともできます。
使用上の注意
ストリームリレーが必要なライブストリーミングシナリオでは、サーバーがトランスコードを実行しないため、キーフレーム間隔を設定する必要があります。(ここで説明しているのは、混合ストリームではなくストリームリレーであることに注意してください。)
特定の画面の印刷の向きを強制する場合、データが変更された場合に解像度を一致させるために、
orientationMode
パラメーターを構成する必要があります。
サンプルコード
Android
/* 1st エンコーディング設定のデータ構造を構築します。 */
AliRtcVideoEncoderConfiguration video_encoder_config = new AliRtcVideoEncoderConfiguration();
video_encoder_config.dimensions.width = 720; /* 幅を指定します。 */
video_encoder_config.dimensions.height = 1280; /* 高さを指定します。 */
video_encoder_config.frameRate = 15; /* フレームレートを指定します。 */
video_encoder_config.bitrate = 800; /* ビットレートを指定します。単位:Kbit/s。 */
video_encoder_config.orientationMode = AliRtcVideoEncoderOrientationModeAdaptive; /* 画面の印刷の向きを指定します。 */
video_encoder_config.keyFrameInterval = 2000; /* I フレーム間隔を指定します。単位:ミリ秒。このパラメーターは、ライブストリーミングシナリオで必須です。 */
video_encoder_config.forceStrictKeyFrameInterval = false; /* I フレームの生成を強制するかどうかを指定します。 */
/* 2st setVideoEncoderConfiguration メソッドを呼び出して、パラメーターを構成します。 */
mAliRtcEngine.setVideoEncoderConfiguration(video_encoder_config);
iOS
/* 1st エンコーディング設定のデータ構造を構築します。 */
AliRtcVideoEncoderConfiguration *config = [[AliRtcVideoEncoderConfiguration alloc] init];
config.dimensions = CGSizeMake(720,1280); /* 幅と高さを指定します。 */
config.frameRate = 15; /* フレームレートを指定します。 */
config.bitrate = 800; /* ビットレートを指定します。単位:Kbit/s。 */
config.orientationMode = AliRtcVideoEncoderOrientationModeAdaptive; /* 画面の印刷の向きを指定します。 */
config.keyFrameInterval = 2000; /* I フレーム間隔を指定します。単位:ミリ秒。このパラメーターは、ライブストリーミングシナリオで必須です。 */
config.forceStrictKeyFrameInterval = NO; /* I フレームの生成を強制するかどうかを指定します。 */
/* 2st setVideoEncoderConfiguration メソッドを呼び出して、パラメーターを構成します。 */
[self.engine setVideoEncoderConfiguration:config];