分享視訊直播常見問題與解決辦法彙總

捷訊技術17發表於2018-08-01

今天小編給大家分享視訊直播常見問題與解決辦法,因為最近視訊直播受到很多人的關注。如果大家有其他的問題需要諮詢,可以線上諮詢我們的客服人員。

1、視訊直播服務支援哪些推流協議?

阿里雲視訊直播服務支援 RTMP 推流

RTMP 即實時訊息傳輸協議,Real Time Messaging Protocol,是 Adobe 公司開發的一個基於 TCP 的應用層協議,目前國內的視訊雲服務都是以 RTMP 為主要推流協議。

RTMP 推流的地址通過直播服務控制檯新增一個直播加速域名,在域名管理中可檢視到分配給每個域名的推流地址,推流地址可按相應規則自行組織。

2、支援哪些直播流播放協議?

視訊直播服務支援輸出 RTMP、FLV、HLS 三種協議

RTMP 協議比較全能,既可以用來推送,又可以用來直播。其核心理念是將大塊的視訊幀和音訊幀“剁碎”,然後以小資料包的形式在網際網路上進行傳輸,且支援加密,因此隱私性相對比較理想,但拆包組包的過程比較複雜,所以在海量併發時容易出現一些不可預期的穩定性問題。

HTTP-FLV 協議由 Adobe 公司主推,格式極其簡單,只是在大塊的視訊幀和音視訊頭部加入一些標記頭資訊,由於這種極致的簡潔,在延遲表現和大規模併發方面都很成熟。唯一的不足就是在手機瀏覽器上的支援非常有限,但是用作手機端 APP 直播協議卻異常合適。

HLS 協議:蘋果推出的解決方案,將視訊分成 5-10 秒的視訊小分片,然後用 m3u8 索引表進行管理。由於客戶端下載到的視訊都是 5-10 秒的完整資料,故視訊的流暢性很好,但也同樣引入了很大的延遲(HLS 的一般延遲在 10-30s 左右)。相比於 FLV,HLS 在iPhone 和大部分 Android 手機瀏覽器上的支援非常給力,所以常用於 QQ 和微信朋友圈的 URL 分享。

RTMP、HLS、HTTP-FLV 協議對比

3、常見的推流包括哪幾種形式?

a.臺式計算機或筆記本,使用攝像頭或者桌面

使用第三方軟體採集攝像頭視訊或桌面影像,將視訊或桌面推流至RTMP推流地址。第三方推流軟體包括:OBS(推薦)、FMLE、XSplit 等。

b.Android/iOS,使用手機攝像頭

使用第三方軟體或SDK採集攝像頭視訊,並推送視訊流至RTMP推流地址。

c.視訊採集裝置

高清攝像機類裝置如果具備 HDMI 或者 SDI 輸出介面,可以接入編碼器,以 RTMP 推流的方式向直播服務推送直播內容。您需要將直播推流地址配置到編d.碼器的 RTMP 釋出地址。

網路攝像頭類裝置,如果支援RTMP推流,則可將直播推流地址配置到攝像頭的 RTMP 釋出地址。

e.視訊檔案轉視訊流

讀取某個視訊檔案,並以 RTMP 流方式輸出作為視訊源來向直播服務的 RTMP推流地址進行視訊釋出。可以使用 ffmpeg 命令來實現 (Windows/Linux/Mac 均適用)。例如,使用如下命令列:

ffmpeg -re -i {your_video_file} -r 30 -s 1280×720 -f flv {your_rtmp_address}

4、如何保護直播版權,防止非授權使用者訪問?

視訊直播服務支援推流認證、播放認證和推流黑名單等多種安全策略,保護使用者的直播版權不受侵犯。

推流鑑權:直播推流採用 URL 鑑權,URL 鑑權功能旨在保護使用者上傳的內容資源不被非法盜用侵佔。

播放鑑權:直播播放採用 URL 鑑權。直播控制檯開啟推流鑑權後會自動開啟播放 URL 鑑權。使用鑑權後的 URL 播放地址降低客戶資源被盜鏈的風險。

注意:對於防盜鏈這一安全策略,目前不支援使用者在控制檯設定防盜鏈 Referer、IP 黑白名單功能,使用者可以使用CDN的介面來設定這兩個功能。

5、使用第三方推流工具,為何 m3u8 播放地址觀看延時達到 50 秒以上甚至 1 分鐘以上?

使用推流工具進行推流操作時,需手動調節流延時時間。目前 m3u8 播放地址延時在 10~35 秒之間為正常範圍。如您的延時已超過正常範圍,請您參照以下步驟設定引數。

OBS 推流工具設定

選擇 輸出 > 高階。

將 關鍵幀間隔(秒,0=自動) 設定為 2。

FMLE 推流工具設定

選擇 Video > Format > Keyframe Frequency。

選擇 5 seconds。

6、使用播放器播放時畫面花屏?

a.排查是否是視訊源問題

視訊源問題

確認播放片源是否正常,排除轉碼過程中的問題。

確認推流的幀率與位元速率是否正常,排除推流傳輸過程中的問題。

非視訊源的問題

確定播放器是否使用了軟解碼。呼叫 SDK 中setDefaultDecoder介面,引數 0 為硬體解碼,1 為軟體解碼。設定引數 1。在重新安裝 APK 前先刪除之前的程式並重啟計算機,防止快取中資料的影響。

7、播放器播放m3u8提示跨域錯誤?

播放器跨域訪問時需要新增策略檔案,即在視訊播放連結所在域名的根目錄下新增 crossdomain.xml 檔案,其中新增播放器所在域名的許可權。例如:

http://test1.com/app/test.m3u8

需要新增

http://test1.com/crossdomain.xml

8、直播無法觀看問題排查?

導致直播無法觀看的因素有很多,在不知道問題出在哪時需要逐一排查。

a.檢查播放URL拼接是否正確

確認是否把 推流地址作為播放地址 。使用者在未檢視規則時,可能會犯這個錯誤。

確認播放地址是否符合拼接規則以及是否正確。直播的播放地址是根據 直播加速域名+AppName+StreamName拼接而成,詳情參考 直播播放地址。

b.檢查播放器

在第三方播放器中輸入播放地址進行播放,排除是播放器本身的問題。

檢查是否是播放器跨域的問題,播放器跨域訪問時需要新增策略檔案,詳見 播放m3u8檔案提示跨域。

確認播放格式是否支援:

9、flash播放器無法拖拽?

flash 播放器對 mp4/flv 無法拖拽

mp4 與 flv 拖拽需要 CDN 新增支援,是通過播放器傳送帶時間的請求到 CDN,CDN 返回該時間段的視訊資料。如果要實現拖拽,需要以下兩個條件:

檔案索引資訊需要在視訊的頭部,mp4 包含視訊時間戳等索引資訊,以及 flv 的 meta 資訊要在視訊最前面,播放器解析到視訊索引資訊後,才可以依據拖拽的位置通過索引資訊拿到指定位置的資料點,去向 CDN 傳送請求;

CDN 支援帶時間 byte range 的請求,需要在cdn控制檯開啟,詳情參考 CDN 拖拽播放幫助 。

10、直播過程中卡頓?

a.網路問題

檢查使用者上行或下行頻寬是否夠用。

確定播放的視訊清晰度。清晰度越高,位元速率越大,編碼尺寸越大,所需頻寬就越大。可以根據當前頻寬合理調整播放清晰度。

b.裝置

檢查播放裝置記憶體是否已滿,裝置後臺程式執行過多也會影響播放效果。

11、推流成功後無法播放?

a.確認播放地址是否正確

獲取直播播放地址。

登入 視訊直播控制檯。

選擇所需的地域。

在所需的域名右側單擊 管理。

在 基本資訊 中可獲得 播放資訊, 即直播播放地址。

播放地址自定義拼接規則為 播放域名+AppName+StreamName+_+ 轉碼模板名稱。詳情參考 播放地址拼接規則。

12.確域名是否 CNAME 至阿里雲伺服器下

您可以通過 PING 的方式來查詢是 CNAME 是否生效;如果 PING 到 alikunlun*.com 表示域名 CNAME 生效。若 CNAME 為生效,請執行 CNAME 繫結操作。

確定域名.png

 好啦,今天的分享完啦。大家有什麼需要了解的,感謝大家關注捷訊技術!


相關文章