1. 程式人生 > >視訊直播常見問題與解決辦法彙總【系列一】

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

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

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

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

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

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

視訊直播服務支援輸出 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 協議對比

image

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

  • 臺式計算機或筆記本,使用攝像頭或者桌面
    使用第三方軟體採集攝像頭視訊或桌面影象,將視訊或桌面推流至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。
    image

FMLE 推流工具設定

  • 選擇 Video > Format > Keyframe Frequency。
  • 選擇 5 seconds。
    image

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

排查是否是視訊源問題

視訊源問題

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

非視訊源的問題

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

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

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

需要新增




直播無法觀看問題排查?

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

  1. 檢查播放URL拼接是否正確
  • 確認是否把 推流地址作為播放地址 。使用者在未檢視規則時,可能會犯這個錯誤。
  • 確認播放地址是否符合拼接規則以及是否正確。直播的播放地址是根據 直播加速域名+AppName+StreamName拼接而成,詳情參考 直播播放地址。
  1. 檢查播放器
  • 在第三方播放器中輸入播放地址進行播放,排除是播放器本身的問題。
  • 檢查是否是播放器跨域的問題,播放器跨域訪問時需要新增策略檔案,詳見 播放m3u8檔案提示跨域。
  • 確認播放格式是否支援:
  1. 在PC端使用flash播放器支援格式:rtmp、flv、m3u8。
  2. 手機端使用H5播放器僅支援m3u8(iOS均支援,安卓需4.0以上並且手機瀏覽器支援)。

flash播放器無法拖拽?

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

  • 檔案索引資訊需要在視訊的頭部,mp4 包含視訊時間戳等索引資訊,以及 flv 的 meta 資訊要在視訊最前面,播放器解析到視訊索引資訊後,才可以依據拖拽的位置通過索引資訊拿到指定位置的資料點,去向 CDN 傳送請求;
  • CDN 支援帶時間 byte range 的請求,需要在cdn控制檯開啟,詳情參考 CDN 拖拽播放幫助 。

直播過程中卡頓?

網路問題

  • 檢查使用者上行或下行頻寬是否夠用。
  • 確定播放的視訊清晰度。清晰度越高,位元速率越大,編碼尺寸越大,所需頻寬就越大。可以根據當前頻寬合理調整播放清晰度。

裝置

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

推流成功後無法播放?

確認播放地址是否正確

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

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

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

image

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

如果您對阿里雲直播有任何功能、體驗、實操方面的問題,都可以在文章下面留言,我們會積極解答您的疑惑~謝謝!


相關推薦

視訊直播常見問題解決辦法彙總系列

摘要: 本文介紹視訊直播常見問題,如果您對阿里雲直播有任何功能、體驗、實操方面的問題,都可以在文章下面留言,我們會積極解答您的疑惑~謝謝! 視訊直播服務支援哪些推流協議? 阿里雲視訊直播服務支援 RTMP 推流 RTMP 即實時訊息傳輸協議,Real Time M

視訊直播常見問題解決辦法彙總系列三—直播推流

直播推流初始化設定要進行直播推流,您必須開啟直播加速 > 配置直播域名 > 直播推流,詳情參考 快速開始。如何獲取推流地址直播加速配置成功後,您可以通過以下方式獲取對應的推流地址。單擊 域名管理。選擇所需地域。選擇所需的域名。選擇所需域名,並單擊右側的 管理。在

視訊直播常見問題解決辦法彙總系列二—直播截圖

IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou","<AccessKeyId>", "<AccessKeySecret>"); IAcsClient client = new DefaultAc

CSS - 移動端 常見小bug整理解決方法總結更新中

mic ros class clas 問題 像素 css strong 常見問題 常見問題總結與整理系列~ 1. border一像素在手機上看著有點粗的問題: 原理是因為:1px在手機上是使用2dp進行渲染的 換成 border: 0.5像素?是不行的!

授權問題解決辦法彙總

我們在部署報表的時候常常會遇到某些授權問題,現在我們將授權問題彙總一下,並給出對應的解決辦法。(不斷更新中) 伺服器特徵碼為負 伺服器特徵碼為負值可能出現在兩個階段: 1、  使用獲取特徵碼程式獲取的特徵碼為負值; 2、  訪問應用的時候後臺報負值錯誤,伺服器特徵碼-999

CSS常見相容性問題及解決辦法彙總

我們都知道,不同版本瀏覽器對css的解析是有些分別的,特別是IE6,和IE7.雖然現在使用老版本的人數不多,但是還是有部分人在使用,我們並不能完全忽略這群使用者。如下所示:我們還是應該瞭解一下這些瀏覽器相容問題。 問題一:在IE6元素浮動,如果寬度需要內容

DKhadoop開發環境安裝常見問題解決方法彙總

Dkhadoop版本的下載安裝以及執行環境搭建等各個方面內容基本都已經分享過了,今天給大家就dkhadoop開發環境安裝中常見的問題以及解決方法進行彙總整理,希望對一些朋友有幫助吧! DKHadoop安裝問題整理 1、系統安裝 如果沒有聯網,請手動同步時間 如果聯網請同步為中國

Hive常見的bug解決辦法

轉自:https://blog.csdn.net/qq_26442553/article/details/78807211 1.在hiveserver2客服端操作資料庫出錯:        Error: Error while compiling stat

資料標準化常見問題解決方案彙總

一、缺失值如何處理? 1 、缺失值定義? 1) 取值失敗,沒有對應的數值,屬於系統類缺失; 2) 計算過程中,影響計算(如除數為0),為了使計算能夠正常的進行,返回缺失值。該處屬於自定義的缺失值; 2、 對於缺失值,計算過程中的處理方案? 1)、如果缺失值的比例佔樣本的比例較少(

Hadoop常見錯誤及解決辦法彙總

錯誤一:java.io.IOException: Incompatible clusterIDs 時常出現在namenode重新格式化之後' V0 h# C5 a8 o+ ^1 n* w- t  k( ]$ }+ p6 d  G2014-04-29 14:32:53,877

Hive常見的bug解決辦法

1.在hiveserver2客服端操作資料庫出錯:       Error: Error while compiling statement: FAILED: RuntimeException Cannot make directory: hdfs://hadoop102:8

struts2+jquery ajax問題彙總解決辦法

如何將jquery裡的ajax技術使用到struts2裡: ajax裡主要涉及幾個概念: 1、請求url,即要執行的後臺程式碼url,可以是servlet,jsp,也可以是struts裡的action 2、資料,向url提交請求時,可能會需要向其中傳參。這些引數是以json

SAP常見問題解決辦法

1.A:在公司程式碼分配折舊表時報錯?    在公司程式碼分配折舊表時報錯,提示是“3000 的公司程式碼分錄不完全-參見長文字” 希望各位大俠幫我看看。 3000 的公司程式碼分錄不完全-參見長文字 R: a.你把零進項稅的程式碼分配給這個公司程式碼就可以了 .沒有指定非稅程式碼,OBCL      b.據

android studio 菜單中的app運行按鈕上有個叉號,原因解決辦法(自己去百度)

代碼 問題 style post fontsize XML idm 出現 studio http://blog.csdn.net/sz0268/article/details/51706397 : 在Android studio寫代碼中,直接建立項目,寫代碼然後運行是不會

webpack漸入佳境系列:webpack環境配置打包基礎附帶各種 "坑" 解決方案!持續更新中...

utf 環境配置 lan 配置 要求 完全 需要 構建 樣式 首先介紹傳統模塊化開發的主流方案: 1.基與CMD的sea.js,玉伯提出的解決方案,據說原來京東團隊在使用。用時才定義,就近加載。最近在瀏覽seajs官方文檔時發現seajs的域名已經在轉賣,驚恐萬分之余又想

CI 失敗的原因解決辦法

解決方案 技術經理 產品經理 服務器 軟件開發 導讀敏捷軟件開發必須輔以有效的持續集成(CI)。CI就是持續進行分析、構建、測試和部署的流程。在發布到生產系統之前,CI會檢查代碼質量和測試產品的業務邏輯。理想情況下,當構建失敗時,我們是不能允許軟件繼續發布到生產上。但是,持續集成的理念並未

(轉)ubuntu源碼編譯安裝php常見錯誤解決辦法

ttf tar.gz mcr ibm 地址 sin make zip .org 原文地址 http://blog.csdn.net/white__cat/article/details/28907535 ‘./configure’ ‘–prefix=/usr/lo

PHP編譯安裝時常見錯誤解決辦法

containe -c libmcrypt led form vpx char win sta PHP編譯安裝時常見錯誤解決辦法 This article is post on https://coderwall.com/p/ggmpfa configur

CentOS 7 PHP-redis擴展安裝,瀏覽器不顯示數據及redis無法儲存數據常見問題解決辦法

edi RR class all IT -c write 不知道 常見問題解決 首先使用php -m 可以查看到自己安裝了那些擴展。 1、使用wget下載redis壓縮包 wget https://github.com/phpredis/phpredis/archive/d

Ubuntu(64位)編譯Android源碼常見錯誤解決辦法

androi box track generic perf prop csdn AI not find 2013年07月10日 14:47:27 閱讀數:1239 錯誤: /usr/include/gnu/stubs.h:7:27: error: gnu/s