全部產品
Search
文件中心

ApsaraVideo Live:超低延時直播常見問題

更新時間:Jun 30, 2024

本文主要介紹使用超低延時直播中遇到的常見問題。

對於同一場直播,可以同時使用標準直播和超低延時直播進行觀看嗎?

可以。針對同一場直播會分別產生標準直播和超低延時直播的播放地址用於觀看。例如,標準直播RTMP使用rtmp://${播放網域名稱}/AppName/StreamName?${鑒權串}播放,超低延時直播使用artc://${播放網域名稱}/AppName/StreamName?${鑒權串播放}

可以通過自研SDK的方式接入超低延時直播嗎?

可以。您需要遵循阿里雲的信令協議規範,具體操作,請參見WebRTC標準接入GRTN信令協議規範

超低延時直播Web端推播流,無法播放?

由於原生瀏覽器對WebRTC的限制,您在使用Web RTS SDK時存在以下限制:

  • 視頻不支援B幀(會出現畫面跳躍)。

  • 音頻不支援AAC編碼(會出現噪音)。

當您無法控制直播推流輸入情況時,可以在ApsaraVideo for Live控制台超低延時直播介面,開啟H5播放自動轉碼開關,去除B幀和AAC編碼。

說明
  • 超低延時直播開關開啟後,H5播放自動轉碼開關才可見。

  • H5播放自動轉碼開關開啟後,系統會自動進行去B幀和OPUS轉碼,無需配置RTS轉碼模板。若您已經配置了RTS轉碼模板,H5播放自動轉碼和RTS轉碼模板會同時生效,但不會產生兩份轉碼費用。

超低延時直播延時高?

超低延時直播提供毫秒級的直播延時體驗,若您的延時明顯多於1秒,可以通過以下2個維度進行定位:

  • 維度一:定位推流側的網路狀態。

    登入ApsaraVideo for Live控制台,在左側導覽列選擇資料監控 > 即時監控

    輸入推流對應的AppName和StreamName,觀察推流幀率、碼率、時間戳記等資訊是否出現異常

  • 維度二:擷取RTS TraceID提交工單聯絡技術人員定位。

    若發現推流側的幀率、碼率、時間戳記均無異常,且延時高、卡頓的現象仍然存在。請在播放器Demo中進行播放,擷取本次播放的TraceID,具體操作方法,請參見Demo播放擷取RTS TraceID,並提交工單聯絡阿里雲支援人員。關於如何提交工單,請參見聯絡我們

Web端使用超低延時推流時,HLS和FLV播放沒有聲音?

在Web端使用RTS推流時音頻編碼為OPUS,無法直接使用FLV和HLS進行播放。 若您有FLV和HLS的播放需求,建議使用RTMP推流,RTS播放,即可同時用於播放FLV和HLS。

使用H.265推流時,無法在瀏覽器播放超低延時直播的視頻?

瀏覽器原生WebRTC不支援H.265,您需要確保推流是H.264,或者將H.265在阿里雲轉碼為H.264進行播放。

超低延時直播相容哪些瀏覽器?

超低延時直播相容的瀏覽器類型,請參見瀏覽器要求

如何解決部分安卓手機QQ瀏覽器無法推拉流?

部分安卓手機(如華為P20、vivo iQOO)安裝QQ瀏覽器後首次開啟可能無法拉起X5核心,導致WebRTC相容問題推拉流失敗(報錯:Failed to execute 'setRemoteDescription' on 'RTCPeerConnection’)。如果遇到該情境請按照以下操作確保X5核心初始化:
  1. 串連WIFI網路。
  2. 重新整理當前頁面並等待大約30秒。
  3. 重啟瀏覽器,再次訪問頁面即可恢複正常。

為什麼部分瀏覽器不支援Web RTS SDK?

對於Web RTS SDK暫不支援的瀏覽器,主要有以下原因:
  • 瀏覽器未實現WebRTC相關API,或實現有缺陷(如IE瀏覽器、UC瀏覽器)。
  • 瀏覽器支援WebRTC API,但不支援H.264編碼,僅支援VP8(如部分安卓手機系統內建瀏覽器)。

為什麼Safari/iOS報錯:Failed to set remote answer sdp

如果遇到如下報錯:
Failed to set remote answer sdp: The order of m-lines in answer doesn't match order in offer.

是因為您整合了其他WebRTC相關SDK,其中的webrtc-adapter衝突導致的,為避免此衝突,RTS SDK提供了一個不包含adapter的版本,您可以在已經引入同類SDK的情況下使用此版本(從2.2.4版本開始支援)。

  • 如果使用JS方式引入SDK,則只需替換成2.2.4版本。
  • 如果使用NPM方式引入SDK,則使用以下方式引入:
    import { AliRTS } from 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js';
    在 TypeScript 專案中,為了獲得和普通版本一樣的類型支援,需要您進行模組聲明:
    // 專案根目錄建立檔案 typings.d.ts
    declare module 'aliyun-rts-sdk/dist/aliyun-rts-sdk-without-adapter.js' {
      import {AliRTS} from 'aliyun-rts-sdk';
      export {AliRTS}
    }