全部產品
Search
文件中心

ApsaraVideo Live:功能使用

更新時間:Jul 20, 2024

本文主要介紹了Windows端直播推流SDK的功能和使用方法。包括SDK的主要介面、基本使用流程說明,同時還提供了相關功能的使用樣本。旨在協助開發人員更好地理解和應用SDK進行直播推流操作。

Windows推流SDK特性

  • 支援連麥互動和PK互動。

  • 使用視頻H.264編碼以及音頻OPUS\AAC編碼。

  • 使用視頻H.265編碼以及音頻OPUS\AAC編碼。

  • 支援碼控、解析度、顯示模式等自訂配置。

  • 支援多種網路攝影機相關操作。

  • 支援錄屏直播。

  • 支援自訂YUV、PCM等外部音視頻輸入。

  • 支援多路混流功能。

  • 支援純音視頻推流以及後台推流。

  • 支援背景音樂及其相關操作。

  • 支援自動重連、異常處理。

  • 支援音頻3A演算法。

  • 增加視頻軟編、硬編切換邏輯,提升編碼模組穩定性。

推流主要介面類列表

說明

AlivcLivePushConfig

推流初始配置

AlivcLivePusher

推流功能類

AlivcLivePusherErrorListener

錯誤回調

AlivcLivePusherNetworkListener

網路相關通知回調

AlivcLivePusherInfoListener

推流相關資訊回調

推流SDK使用流程

基礎推流

基礎推流的使用流程如下

步驟

描述

一、配置推流參數

完成推流基本配置、碼率控制配置、解析度自適應配置等。

二,使用推流SDK推流

初始化SDK、註冊推流回調、建立預覽視圖後可以開始推流。使用者可以根據業務需求添加推流量控制、設定背景音樂、網路攝影機、外部音頻、動態貼紙等。

三,其他使用-設定錄屏推流(按需)

如需使用錄屏推流,可以使用錄屏推流相關的配置。

一、配置推流參數

AlivcLivePushConfig可以實現對推流參數的配置,推流配置對應參數都有預設值。基礎推流建議採用預設值,即您可以進行簡單初始化,不做配置。

  1. 推流配置

    AlivcLivePushConfig config;
    說明

    如需在推流過程中即時修改參數,請參見AlivcLivePusher提供的屬性和方法。

  2. 配置碼率控制。

    碼率控制配置可通過有兩種模式。

    1,通過初始化參數enableBitrateControl控制,true時表示流暢優先,false表示清晰度優先。預設值為true

    config.enableBitrateControl = true;

    2,自訂碼率,通過mMinVideoBitrate,mInitialVideoBitrate,mTargetVideoBitrate參數進行配置,各參數取值如下:

    解析度

    初始碼率 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會根據解析度自動分配合適的碼率進行發送,預設配置給網路攝影機。

  3. 配置解析度自適應。

    解析度自適應即動態調整推流解析度。開啟功能後,當網路較差時會自動降低解析度以提高視頻的流暢度和清晰度。範例程式碼如下:

    config.enableAutoResolution = true;
  4. 配置圖片推流。

    為了更好的使用者體驗,推流SDK提供了後台圖片推流和碼率過低時進行圖片推流的設定。當SDK退至後台時預設暫停推流視頻,只推流音頻,此時可以設定圖片來進行圖片推流和音頻推流。例如,在圖片上提醒使用者主播離開片刻,稍後回來。範例程式碼如下:

    config.mPausePushImagePath = "退後台png圖片路徑";//設定使用者後台推流的圖片

二,使用推流SDK推流

AlivcLivePusher為使用推流SDK推流的核心類,提供初始化操作、推流回調、網路攝影機預覽、推流量控制、推流過程中的參數調節等功能。

  1. 初始化。

    在配置好推流參數後,可以使用推流SDK的init方法進行初始化。範例程式碼如下:

    AlivcLivePushConfig config;
    pusher->init(config);
  2. 註冊推流回調。

    推流回調分為三種:

    • Info:主要做提示和狀態檢測使用。

    • Error:錯誤回調。

    • Network:主要為網路相關。

    使用者通過對應的回調通知,當發生對應的類型的事件時,相應的回呼函數被觸發運行。範例程式碼如下:

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

  3. 開始預覽。

    livePusher對象初始化及回調配置完成之後,可以進行開始預覽操作。範例程式碼如下:

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

  4. 開始推流。

    pusher->startPush(url);

  5. 設定其他推流量控制。

    推流量控制主要包括開始推流、停止推流、停止預覽、重新推流、暫停推流、恢複推流、銷毀推流等操作,使用者可以根據業務需求添加按鈕進行操作。

    pusher->stopPush();

三,設定錄屏推流(按需)

錄屏推流即共用螢幕推流,實現過程為擷取共用源列表,然後指定共用源進行推流。具體操作:

  1. 擷取共用源列表。

    pusher->getScreenShareSourceInfo();

  2. 開始共用推流。

    pusher->startScreenShareByDesktopId(desktopId);
    說明
    • desktopId:案頭Id(可通過GetScreenShareSourceInfo介面擷取)。

    • 配置指定地區分享時,分享地區最小解析度為16 x 16,設定地區小於最小解析度時重設為最小解析度。

    • 配置指定地區分享時,設定分享地區超過實際案頭解析度時,將分享整個案頭。

連麥互動推流

Windows推流SDK提供基於RTC的連麥互動能力,以及基於RTC的連麥PK互動能力,使用者可以使用推流SDK版本完成主播和連麥觀眾超低延時(300ms以內)互動,直播連麥相關的功能使用。請參見連麥互動開發指南主播PK互動開發指南

相關文檔

直播推流介面說明