すべてのプロダクト
Search
ドキュメントセンター

:機能の使用方法

最終更新日:Nov 09, 2025

このトピックでは、Push SDK for Windows の機能と使用方法について説明します。SDK の主要なインターフェイス、基本的なプロシージャ、関連機能の使用例について説明します。この情報は、開発者がライブストリームのアップストリーミング操作のために SDK を理解し、使用するのに役立ちます。

機能

  • ビデオエンコーディングに H.264、音声エンコーディングに Opus および Advanced Audio Coding (AAC) をサポートします。

  • ビデオエンコーディングに H.265、音声エンコーディングに Opus および AAC をサポートします。

  • ビットレート制御、解像度、表示モードなどの機能のカスタム構成をサポートします。

  • さまざまなカメラ操作をサポートします。

  • 画面録画のストリーミングを可能にします。

  • YUV やパルス符号変調 (PCM) など、さまざまなフォーマットの外部音声およびビデオ入力をサポートします。

  • 複数ストリームの混合をサポートします。

  • 音声のみおよびビデオのみのアップストリーミング、およびバックグラウンドでのアップストリーミングをサポートします。

  • バックグラウンドミュージックをサポートし、バックグラウンドミュージック管理を提供します。

  • 自動再接続とエラー処理をサポートします。

  • 音声 3A アルゴリズムをサポートします。

  • ソフトウェアとハードウェアのビデオエンコーディングモードを切り替えることができます。この機能により、エンコーディングモジュールの安定性が向上します。

手順

基本的なプロシージャは次のとおりです。

  1. アップストリーミング パラメーターを構成する

  2. ストリームのアップストリーミング

機能の使用方法

アップストリーミング パラメーターの構成

AlivcLivePushConfig クラスを使用して、アップストリーミングパラメーターを構成できます。各パラメーターにはデフォルト値があります。基本的なアップストリーミングでは、デフォルト値を使用することをお勧めします。これにより、構成なしで簡単な初期化を実行できます。

AlivcLivePushConfig config;

ストリームのアップストリーミング(カメラから)

AlivcLivePusher は、Push SDK のアップストリーミング用コアクラスです。初期化、アップストリーミングコールバック、カメラプレビュー、アップストリーミングコントロール、アップストリーミング中のパラメーター調整などの機能を提供します。

  1. 初期化。

    アップストリーミングパラメーターを構成した後、Push SDK の init メソッドを呼び出して初期化を実行できます。次のコードに例を示します。

    AlivcLivePushConfig config;
    pusher->init(config);
  2. アップストリーミング コールバックを登録します。

    アップストリーミングコールバックは 3 つのタイプに分類されます。

    • Info: 通知とステータス検出に使用されます。

    • Error: エラーが発生したときに返されます。

    • Network: ネットワークイベントに関連します。

    特定のタイプのイベントが発生すると、対応するコールバック関数がトリガーされて通知されます。次のコードに例を示します。

    pusher->setLivePushErrorListener(errorListener);
    pusher->setLivePushInfoListener(errorListener);
    pusher->setLivePushNetworkListener(errorListener);

  3. プレビューを開始します。

    livePusher オブジェクトが初期化され、コールバックが構成された後、プレビューを開始できます。次のコードに例を示します。

    pusher->startPreview(view, width, height);

  4. アップストリーミングを開始します。

    pusher->startPush(url);

アップストリーミングの一般的な制御操作

アップストリーミングコントロールには、アップストリーミングの開始、停止、再開、一時停止、再開、プレビューの停止、アップストリーミングインスタンスの破棄などの操作が含まれます。必要に応じて、これらの操作を実行するためのボタンを追加できます。

pusher->stopPush();

画面録画からのストリームのアップストリーミング (画面共有)

画面録画からのストリームのアップストリーミングは、[画面共有アップストリーミング] とも呼ばれます。この機能を使用するには、共有ソースのリストを取得し、アップストリーミング用の共有ソースを指定する必要があります。プロシージャは次のとおりです。

  1. 共有ソースのリストを取得します。

    pusher->getScreenShareSourceInfo();

  2. 共有ストリームのアップストリーミングを開始します。

    pusher->startScreenShareByDesktopId(desktopId);
    説明
    • desktopId: デスクトップの ID。GetScreenShareSourceInfo インターフェイスを呼び出すことで ID を取得できます。

ビットレートコントロール

ビットレートコントロールは 2 つのモードで構成できます。

  1. enableBitrateControl 初期化パラメーターを使用したコントロール。

    config.enableBitrateControl = true;
    説明

    このパラメーターを有効にすると、SDK 内で設定されたターゲットビットレートと最小ビットレートの間でビットレートが自動的に調整されます。このパラメーターを有効にすることをお勧めします。このパラメーターを無効にすると、ビットレートは初期ビットレートに固定されます。これにより、ネットワークが不安定な場合に再生が途切れる可能性があります。このパラメーターは注意して使用してください。

  2. カスタムビットレート。

    mInitialVideoBitrate、mMinVideoBitrate、および mTargetVideoBitrate パラメーターを使用して、初期、最小、およびターゲットビットレートを構成できます。

    config.mTargetVideoBitrate = 1400; // ターゲットビットレートは 1,400 kbit/s です。
    config.mMinVideoBitrate = 600; // 最小ビットレートは 600 kbit/s です。
    config.mInitialVideoBitrate = 1000; // 初期ビットレートは 1,000 kbit/s です。

    次の表に、これらのパラメーターの推奨値を示します。

    解決策

    初期ビットレート initialVideoBitrate

    最小ビットレート minVideoBitrate

    ターゲットビットレート targetVideoBitrate

    360P

    600

    300

    1000

    480P

    800

    300

    1200

    540P

    1000

    600

    1400

    720P

    1500

    600

    2000

    1080P

    1800

    1200

    2500

    解決策

    初期ビットレート initialVideoBitrate

    最小ビットレート minVideoBitrate

    ターゲットビットレート targetVideoBitrate

    360P

    400

    200

    600

    480P

    600

    300

    800

    540P

    800

    300

    1000

    720P

    1000

    300

    1200

    1080P

    1500

    1200

    2200

    説明

    ターゲット、最小、または初期ビットレートを構成しない場合、SDK は解像度に基づいて適切な送信ビットレートを自動的に割り当てます。デフォルトの構成はカメラ用です。

イメージストリームのアップストリーミング

ユーザーエクスペリエンスを向上させるために、Push SDK では、アプリケーションがバックグラウンドで実行されているときやビットレートが低すぎるときにイメージをアップストリーミングできます。

SDK がバックグラウンドに切り替わると、デフォルトでビデオストリームのアップストリーミングは一時停止され、音声ストリームのみがアップストリーミングされます。この場合、イメージをアップストリーミングできます。たとえば、[ストリーマーはまもなく戻ります。] などのメッセージを含むイメージを表示してユーザーに通知できます。

config.mPausePushImagePath = "Path of the PNG image for background stream ingest";//アプリケーションがバックグラウンドで実行されているときのアップストリーミング用のイメージを設定します。

コールバックをリッスンする

Push SDK コールバックを介して、アップストリーミングの例外とエラーを受信して処理できます。Push SDK for Windows には、次の主要なコールバックが含まれています。

コールバックタイプ

クラス名

アップストリーミングコールバック

AlivcLivePushInfoListener

ネットワーク関連のコールバック

AlivcLivePushNetworkListener

エラーコールバック

AlivcLivePushErrorListener

ストリームインジェストのコールバック

アップストリーミングコールバックは、SDK のステータスをアプリケーションに通知します。これらのコールバックには、プレビューの開始、最初のビデオフレームのレンダリング、最初の音声およびビデオフレームの送信、アップストリーミングの開始、アップストリーミングの停止などのイベントが含まれます。

  • onPushStarted および onFirstFramePushed: SDK がストリームのアップストリーミングに成功したことを示します。

  • onPushStarted: サーバーへの接続が成功したことを示します。

  • onFirstFramePushed: 最初の音声およびビデオフレームが正常に送信されたことを示します。

ネットワーク関連のコールバック

ネットワーク関連のコールバックは、ネットワークと接続のステータスをアプリケーションに通知します。

  • onConnectFail: アップストリーミングが失敗したことを示します。アップストリーミング URL が無効であるか、無効な文字が含まれているか、認証に問題があるか、同時ストリームの最大数を超えているか、アップストリーミングが無効になっているブラックリストに載っているかを確認することをお勧めします。ストリームを再度アップストリーミングする前に、アップストリーミング URL が有効で利用可能であることを確認してください。特定のエラーコードは 0x30020901 から 0x30020905 および 0x30010900 から 0x30010901 です。

  • onConnectionLost: 接続が失われた場合のコールバック。接続が失われた後、SDK は自動的に再接続を試み、onReconnectStart コールバックをトリガーします。再接続の最大試行回数 (config.connectRetryCount) に達してもアップストリーミング接続が回復しない場合、onReconnectError コールバックがトリガーされます。

  • onNetworkPoor: ネットワーク接続が悪い場合のコールバック。このコールバックを受信すると、現在のネットワークがアップストリーミングを完全にサポートできないことを示します。この時点では、アップストリーミングはまだ進行中であり、中断されていません。ここで、ユーザーに UI 通知を表示するなど、ビジネスロジックを処理できます。

  • onNetworkRecovery: ネットワーク回復のコールバック。

  • onReconnectError: 再接続失敗のコールバック。これは再接続が失敗したことを示します。現在のネットワークを確認し、ネットワークが回復した後にアップストリーミングを再開することをお勧めします。一般に、構成された再接続タイムアウト期間と試行回数 (AlivcLivePushConfig) 内にネットワーク切断が発生した場合、SDK は自動的に再接続します。再接続が成功すると、アップストリーミングが続行されます。ネットワーク切断が構成されたタイムアウト期間と試行回数を超えた場合、自動再接続は失敗します。この場合、onReconnectError コールバックが返されます。ネットワークが回復した後、reconnectAsync インターフェイスを呼び出して再接続できます。プレーヤーも再接続する必要があります。ApsaraVideo Player を使用している場合は、タイムアウト通知を受信してから 5 秒後にプレーヤーを再接続することをお勧めします。

    説明
    • SDK の外部でネットワークを監視することをお勧めします。

    • ストリーマーのクライアントとプレーヤーのクライアントは直接通信できません。サーバーを介して調整する必要があります。たとえば、ストリーマーのネットワークが切断された場合、サーバーは CDN からアップストリーミング中断コールバックを受信します。サーバーはこのコールバックをプレーヤーのクライアントにプッシュし、プレーヤーのクライアントは対応する操作を実行します。アップストリーミングを再開する場合も同じロジックが適用されます。

    • ApsaraVideo Player を再接続するには、まず再生を停止してから再度開始する必要があります。インターフェイスの呼び出しシーケンスは stop > prepareAndPlay です。ApsaraVideo Player の詳細については、「SDK の紹介」をご参照ください。

  • onSendDataTimeout: データ送信タイムアウトのコールバック。現在のネットワークを確認することをお勧めします。ネットワークが回復した後、アップストリーミングを終了してから再開できます。

  • onPushURLAuthenticationOverdue: アップストリーミング URL の認証がまもなく期限切れになることを示すコールバック。アップストリーミングの URL 認証機能 (アップストリーミング URL に auth_key が含まれている) を有効にすると、SDK はアップストリーミング URL を検証します。アップストリーミング URL の有効期限が切れる約 1 分前に、このコールバックを受信します。このコールバックを実装した後、アップストリーミング URL の有効期限切れによるアップストリーミングの中断を避けるために、新しいアップストリーミング URL を返す必要があります。

エラー コールバック

  • onSystemError: システムデバイス例外のコールバック。DPI エンジンを破棄して再試行する必要があります。

  • onSDKError: SDK エラーのコールバック。エラーコードに基づいて異なる方法で処理する必要があります。

    • エラーコードが 805438211 の場合、デバイスのパフォーマンスが低く、エンコーディングとレンダリングのフレームレートが低すぎます。ストリーマーにプロンプトを表示し、高度なレタッチやアニメーションなど、アプリケーション層での時間のかかるビジネスロジックを停止する必要があります。

    • アプリケーションにマイクまたはカメラの権限がない場合のコールバックを具体的に処理する必要があります。マイク権限がない場合のエラーコードは 268455940 です。カメラ権限がない場合のエラーコードは 268455939 です。

    • 他のエラーコードについては、ログを記録するだけで、他の操作は必要ありません。

一般的なクラスのリスト

クラス

説明

AlivcLivePushConfig

初期アップストリーミング構成

AlivcLivePusher

アップストリーミング機能クラス

AlivcLivePusherErrorListener

エラーコールバック

AlivcLivePusherNetworkListener

ネットワーク関連の通知コールバック

AlivcLivePusherInfoListener

アップストリーミング関連の情報コールバック