視頻直播常見問題與解決辦法彙總【系列一】

摘要: 本文介紹視頻直播常見問題,若是您對阿里雲直播有任何功能、體驗、實操方面的問題,均可以在文章下面留言,咱們會積極解答您的疑惑~謝謝!跨域

視頻直播服務支持哪些推流協議?瀏覽器

阿里雲視頻直播服務支持 RTMP 推流
RTMP 即實時消息傳輸協議,Real Time Messaging Protocol,是 Adobe 公司開發的一個基於 TCP 的應用層協議,目前國內的視頻雲服務都是以 RTMP 爲主要推流協議。緩存

RTMP 推流的地址經過直播服務控制檯添加一個直播加速域名,在域名管理中可查看到分配給每一個域名的推流地址,推流地址可按相應規則自行組織。安全

支持哪些直播流播放協議?bash

視頻直播服務支持輸出 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 協議對比
圖片描述app

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

臺式計算機或筆記本,使用攝像頭或者桌面
使用第三方軟件採集攝像頭視頻或桌面圖像,將視頻或桌面推流至RTMP推流地址。第三方推流軟件包括:OBS(推薦)、FMLE、XSplit 等。

Android/iOS,使用手機攝像頭
使用第三方軟件或SDK採集攝像頭視頻,並推送視頻流至RTMP推流地址。

視頻採集設備
高清攝像機類設備若是具有 HDMI 或者 SDI 輸出接口,能夠接入編碼器,以 RTMP 推流的方式向直播服務推送直播內容。您須要將直播推流地址配置到編碼器的 RTMP 發佈地址。

網絡攝像頭類設備,若是支持RTMP推流,則可將直播推流地址配置到攝像頭的 RTMP 發佈地址。

視頻文件轉視頻流
讀取某個視頻文件,並以 RTMP 流方式輸出做爲視頻源來向直播服務的 RTMP 推流地址進行視頻發佈。可使用 ffmpeg 命令來實現 (Windows/Linux/Mac 均適用)。例如,使用以下命令行:

ffmpeg -re -i {your_video_file} -r 30 -s 1280x720 -f flv {your_rtmp_address}複製代碼

如何保護直播版權,防止非受權用戶訪問?

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

推流鑑權:直播推流採用 URL 鑑權,URL 鑑權功能旨在保護用戶上傳的內容資源不被非法盜用侵佔。
播放鑑權:直播播放採用 URL 鑑權。直播控制檯開啓推流鑑權後會自動開啓播放 URL 鑑權。使用鑑權後的 URL 播放地址下降客戶資源被盜鏈的風險。
注意:對於防盜鏈這一安全策略,目前不支持用戶在控制檯設置防盜鏈 Referer、IP 黑白名單功能,用戶可使用CDN的接口來設置這兩個功能。

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

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

OBS 推流工具設置

選擇 輸出 > 高級。
將 關鍵幀間隔(秒,0=自動) 設置爲 2。
圖片描述

FMLE 推流工具設置

選擇 Video > Format > Keyframe Frequency。
選擇 5 seconds。
圖片描述

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

排查是不是視頻源問題

視頻源問題

確認播放片源是否正常,排除轉碼過程當中的問題。
確認推流的幀率與碼率是否正常,排除推流傳輸過程當中的問題。

非視頻源的問題

肯定播放器是否使用了軟解碼。調用 SDK 中setDefaultDecoder接口,參數 0 爲硬件解碼,1 爲軟件解碼。設置參數 1。在從新安裝 APK 前先刪除以前的程序並重啓計算機,防止緩存中數據的影響。

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

播放器跨域訪問時須要添加策略文件,即在視頻播放連接所在域名的根目錄下添加 crossdomain.xml 文件,其中添加播放器所在域名的權限。例如:

http://test1.com/app/test.m3u8複製代碼

須要添加

http://test1.com/crossdomain.xml。複製代碼
<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
    <allow-access-from domain="*"/>
    <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>複製代碼

直播沒法觀看問題排查?

致使直播沒法觀看的因素有不少,在不知道問題出在哪時須要逐一排查。

檢查播放URL拼接是否正確
確認是否把 推流地址做爲播放地址 。用戶在未查看規則時,可能會犯這個錯誤。
確認播放地址是否符合拼接規則以及是否正確。直播的播放地址是根據 直播加速域名+AppName+StreamName拼接而成,詳情參考 直播播放地址。

檢查播放器
在第三方播放器中輸入播放地址進行播放,排除是播放器自己的問題。
檢查是不是播放器跨域的問題,播放器跨域訪問時須要添加策略文件,詳見 播放m3u8文件提示跨域。

確認播放格式是否支持:
在PC端使用flash播放器支持格式:rtmp、flv、m3u8。
手機端使用H5播放器僅支持m3u8(iOS均支持,安卓需4.0以上而且手機瀏覽器支持)。

flash播放器沒法拖拽?

flash 播放器對 mp4/flv 沒法拖拽
mp4 與 flv 拖拽須要 CDN 添加支持,是經過播放器發送帶時間的請求到 CDN,CDN 返回該時間段的視頻數據。若是要實現拖拽,須要如下兩個條件:

文件索引信息須要在視頻的頭部,mp4 包含視頻時間戳等索引信息,以及 flv 的 meta 信息要在視頻最前面,播放器解析到視頻索引信息後,才能夠依據拖拽的位置經過索引信息拿到指定位置的數據點,去向 CDN 發送請求;
CDN 支持帶時間 byte range 的請求,須要在cdn控制檯開啓,詳情參考 CDN 拖拽播放幫助 。

直播過程當中卡頓?

網絡問題

檢查用戶上行或下行帶寬是否夠用。
肯定播放的視頻清晰度。清晰度越高,碼率越大,編碼尺寸越大,所需帶寬就越大。能夠根據當前帶寬合理調整播放清晰度。
設備

檢查播放設備內存是否已滿,設備後臺程序運行過多也會影響播放效果。

推流成功後沒法播放?

確認播放地址是否正確

獲取直播播放地址。
登陸 視頻直播控制檯。
選擇所需的地域。
在所需的域名右側單擊 管理。
在 基本信息 中可得到 播放信息, 即直播播放地址。
播放地址自定義拼接規則爲 播放域名+AppName+StreamName+_+ 轉碼模板名稱。詳情參考 播放地址拼接規則。

確域名是否 CNAME 至阿里雲服務器下

您能夠經過 PING 的方式來查詢是 CNAME 是否生效;若是 PING 到 alikunlun*.com 表示域名 CNAME 生效。若 CNAME 爲生效,請執行 CNAME 綁定操做,詳見 CNAME 配置。

圖片描述

直播常見問題持續更新中……

點此查看原文:click.aliyun.com/m/43444/

識別如下二維碼,閱讀更多幹貨
圖片描述

相關文章
相關標籤/搜索