このトピックでは、Push SDK for Windowsを使用する方法と、SDKのクラスとメソッドについて説明します。 このトピックでは、Push SDK for Windowsが提供する機能の使用例も紹介します。 このトピックを読むことで、SDKをライブストリーミングに使用する方法をよりよく理解できます。
特徴
共同ストリーミングと戦闘をサポートします。
ビデオエンコーディングにH.264、オーディオエンコーディングにOpusおよびAdvanced Audio Coding (AAC) を採用。
ビデオエンコーディングにH.265、オーディオエンコーディングにOpusとAACを採用しています。
ビットレート制御、解像度、表示モードなどの機能のカスタム設定をサポートします。
さまざまなカメラ操作をサポートします。
画面録画をストリーミングできます。
YUVやパルス符号変調 (PCM) など、さまざまな形式の外部オーディオおよびビデオ入力をサポートします。
複数のストリームの混合をサポートします。
オーディオのみとビデオのみのストリームの取り込みと、バックグラウンドでのストリーム取り込みをサポートします。
バックグラウンドミュージックをサポートし、バックグラウンドミュージックを管理できます。
自動再接続とエラー処理をサポートします。
オーディオ3Aアルゴリズムをサポートします。
ビデオファイルのソフトウェアとハードウェアのエンコードモードを切り替えることができます。 これは、符号化モジュールの安定性を改善します。
Windows用プッシュSDKのクラス
クラス | 説明 |
AlivcLivePushConfig | ストリーム取り込み設定のクラス。The class for stream ingest settings. |
AlivcLivePusher | ストリーム取り込み機能のクラス。The class for stream ingest features. |
AlivcLivePusherErrorListener | エラーコールバックのクラス。 |
AlivcLivePusherNetworkListener | ネットワークコールバックのクラス。 |
AlivcLivePusherInfoListener | ストリーム取り込みコールバックのクラスです。 |
手順
基本的なストリーム取り込み
次の表に、基本的なストリーム取り込みを実行する方法を示します。
ステップ | 説明 |
基本パラメータ、ビットレート制御モード、アダプティブ解像度などのストリーム取り込み設定を完了します。 | |
Push SDK for Windowsを初期化し、ストリーム取り込みコールバックを登録し、プレビュービューを作成した後、ストリームの取り込みを開始できます。 ビジネス要件に基づいて、ストリームの管理、BGMの設定、カメラ設定の設定、外部オーディオソースの取り込み、アニメーションステッカーの追加を行うことができます。 | |
画面録画をストリーミングする場合は、画面録画のストリーム取り込みを設定します。 |
1. ストリーム取り込みパラメーターの設定
AlivcLivePushConfigクラスを使用して、ストリーム取り込みパラメーターを設定できます。 各パラメーターにはデフォルト値が設定されてます。 基本的なストリーム取り込みでは、パラメーターのデフォルト値を使用することを推奨します。
ストリーム取り込み設定を完了します。
AlivcLivePushConfig config;
説明ストリームの取り込み中にリアルタイムでパラメーターを変更するには、AlivcLivePusherクラスで提供されるメソッドを参照してください。
ビットレート制御モードを指定します。
次の方法を使用して、ビットレート制御モードを指定できます。
1. enableBitrateControlパラメーターを初期化して、ビットレート制御モードを指定します。 パラメーターをtrueに設定すると、滑らかさ優先モードが使用されます。 パラメーターをfalseに設定すると、品質優先モードが使用されます。 デフォルト値:true
config.enableBitrateControl = true;
2. mMinVideoBitrate、mInitialVideoBitrate、mTargetVideoBitrateパラメーターなど、カスタム設定に基づいてビットレートパラメーターを設定します。 次の表に、これらのパラメーターの推奨値を示します。
解像度
initialVideoBitrate
minVideoBitrate
targetVideoBitrate
360p
600
300
1000
480p
800
300
1,200
540p
1000
600
1400
720p
1500
600
2000
1080p
1800
1,200
2,500
解像度
initialVideoBitrate
minVideoBitrate
targetVideoBitrate
360p
400
200
600
480p
600
300
800
540p
800
300
1000
720p
1000
300
1,200
1080p
1500
1,200
2200
説明targetVideoBitrate、minVideoBitrate、およびinitialVideoBitrateパラメーターを設定しない場合、Push SDKは解像度に基づいて適切なカメラビットレートを自動的に指定します。
アダプティブ解決機能を設定します。
適応解像度機能は、ストリームの解像度を動的に調整するために使用されます。 アダプティブ解像度機能を有効にすると、解像度が自動的に低下し、劣悪なネットワーク条件でビデオストリームの滑らかさと品質が保証されます。 サンプルコード:
config.enableAutoResolution = true;
イメージ取り込みを設定します。
Push SDK for Windowsでは、アプリがバックグラウンドに切り替えられたとき、またはビットレートが低いときに画像を取り込むことができます。 ユーザーエクスペリエンスが向上します。 アプリをバックグラウンドに切り替えると、ビデオストリームの取り込みが一時停止されます。 この場合、オーディオストリームのみが取り込まれる。 取り込みたいイメージを指定することもできます。 たとえば、などのメッセージが含まれる画像を取り込むことができます。ストリーマーはすぐに戻ってきます。 は視聴者に通知するために表示されます。 サンプルコード:
config.mPausePushImagePath = "The path of the specified image in the PNG format for stream ingest";// Specify the image for stream ingest when your app is switched to the background.
2. Push SDK for Windowsを使用してストリームを取り込む
AlivcLivePusherは、Push SDK for Windowsのコアクラスです。 このクラスは、初期化、ストリーム取り込みコールバック、カメラプレビュー、およびストリーム取り込み管理のパラメーターを提供します。 このクラスを使用して、ストリームの取り込み中にパラメーターを変更することもできます。
AlivcLivePusherクラスを初期化します。
ストリーム取り込みパラメーターを設定した後、initメソッドを呼び出してクラスを初期化します。 サンプルコード:
AlivcLivePushConfig config; pusher->init(config);
ストリーム取り込みコールバックを登録します。
次のストリーム取り込みコールバックがサポートされています。
Info: 通知とステータス検出に使用されるコールバック。
エラー: エラーが発生したときに返されるコールバック。
ネットワーク: ネットワークに関連するコールバック。
イベントが発生すると、対応するコールバックがトリガーされ、イベントが通知されます。 サンプルコード:
pusher->setLivePushErrorListener(errorListener); pusher->setLivePushInfoListener(errorListener); pusher->setLivePushNetworkListener(errorListener);
プレビューを開始します。
livePusherオブジェクトを初期化し、コールバックを設定した後、プレビューを開始できます。 サンプルコード:
pusher->startPreview(view, width, height);
ストリーム取り込みを開始します。
pusher->startPush(url);
他のストリーム取り込み設定を完了します。
Windows用プッシュSDKを使用すると、ストリームの取り込みを管理できます。 たとえば、ストリーム取り込みの開始、停止、再起動、一時停止、再開、ストリーム取り込みインスタンスのプレビューの停止、および破棄ができます。 これらの操作を実行するボタンを追加できます。
pusher->stopPush();
3。 (オプション) 画面録画のストリーム取り込みを設定する
共有画面からの画面録画をストリーミングできます。 これを行うには、共有ソースのリストを取得してから、ストリーム取り込み用の共有ソースを指定する必要があります。 特定のステップ:
共有ソースのリストを取得します。
pusher->getScreenShareSourceInfo();
共有ソースの取り込みを開始します。
pusher->startScreenShareByDesktopId(desktopId);
説明desktopIdは、デスクトップのIDを示します。 GetScreenShareSourceInfoメソッドを呼び出してIDを照会できます。
指定した領域を共有する場合は、その領域の解像度が16 × 16ピクセル以上であることを確認してください。 そうでなければ、領域の解像度は16 × 16画素にリセットされます。
領域の解像度がデスクトップの解像度よりも高い場合、デスクトップ全体が共有されます。
共同ストリーミングのストリーム取り込み
Push SDK for Windowsは、リアルタイム通信 (RTC) ベースのコストリーミング機能とRTCベースのバトル機能を提供します。 Windows用のPush SDKを使用すると、ストリーマーとビューアは300ミリ秒未満の超低レイテンシで相互作用できます。 インタラクティブストリーミングの詳細については、「共同ストリーミングの開発者ガイド」および「バトルの開発者ガイド」をご参照ください。