接入騰訊雲直播相關操作以及概念

一、直播中必知的rtmp協議推流拉流相關概念

1、關於rtmp協議
rtmp

RTMP是Real Time Messaging Protocol(實時消息傳輸協議)的首字母縮寫。該協議基於TCP,是一個協議族,包括RTMP基本協議及RTMPT/RTMPS/RTMPE等多種變種。RTMP是一種設計用來進行實時數據通信的網絡協議,主要用來在Flash/AIR平臺和支持RTMP協議的流媒體/交互服務器之間進行音視頻和數據通信。支持該協議的軟件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP與HTTP一樣,都屬於TCP/IP四層模型的應用層。

多種變種:

  • RTMP工作在TCP之上,默認使用端口1935
  • RTMPE在RTMP的基礎上增加了加密功能
  • RTMPT封裝在HTTP請求之上,可穿透防火牆
  • RTMPS類似RTMPT,增加了TLS/SSL的安全功能

2、拉流和推流

在這裏插入圖片描述
接一個直播必須理解拉流推流概念。

  • 推流:比如,你在斧牙開了一個直播,攝像頭一直對着人或屏幕進行錄製,在這個過程中,就是往服務端裏進行推流。

  • 拉流:和推流相反,拉流就是你在看別人直播的過程中,頁面上播放的視頻就是從服務端進行的拉流。

二、舉個栗子

下面舉個例子來說明一下推流和分流的相關概念:

看下斧牙直播的直播類型:

1、PC端推流:

捕捉屏幕推流直播:

在這裏插入圖片描述

攝像頭推流直播:

在這裏插入圖片描述

2、安卓和IOS推流

在這裏插入圖片描述

下面再看下拉流的幾種形式:

3、web端拉流

在這裏插入圖片描述
4、Android端拉流

在這裏插入圖片描述
在這裏插入圖片描述

三、騰訊雲拉流推流實戰操作

騰訊雲有免費的40G流量供我們玩耍,搜索雲直播並進入。需要添加一個推流域名拉流域名。推流域名會給我們提供,我們只需要配置一個拉流域名即可。

推流域名直接添加即可,下面操作下拉流域名的配置:

1、進入到域名管理

在這裏插入圖片描述
2、選擇播放域名,添加一個自己已經備案好的域名。

在這裏插入圖片描述
3、複製cname

添加好後有個感嘆號,將裏面的cname複製到你的域名供應商。
在這裏插入圖片描述

4、打開你供應商平臺(阿里雲、騰訊雲、百度雲等)的域名解析列表,將cname配置到指定域名的記錄值中即可。
在這裏插入圖片描述
5、稍等十分鐘左右,就會變綠了

在這裏插入圖片描述


這時候,推流域名和播放域名(拉流域名)就配置好了,下一步就是來生成推流域名拉流域名提供給客戶端就行啦

生成推流域名和拉流域名

在這裏插入圖片描述
騰訊雲直播域名配置管理界面也提供了生成方式,直接填入StreamName即可生成!

或者也可以使用官方提供了一個php版本的生成方式:

			                        			
/**
   * 獲取推流地址
   * 如果不傳key和過期時間,將返回不含防盜鏈的url
   * @param domain 您用來推流的域名
   *        streamName 您用來區別不同推流地址的唯一流名稱
   *        key 安全密鑰
   *        time 過期時間 sample 2016-11-12 12:00:00
   * @return String url
*/
function getPushUrl($domain, $streamName, $key = null, $time = null){
      if($key && $time){
            $txTime = strtoupper(base_convert(strtotime($time),10,16));
            //txSecret = MD5( KEY + streamName + txTime )
            $txSecret = md5($key.$streamName.$txTime);
            $ext_str = "?".http_build_query(array(
                  "txSecret"=> $txSecret,
                  "txTime"=> $txTime
            ));
      }
      return "rtmp://".$domain."/live/".$streamName . (isset($ext_str) ? $ext_str : "");
}

echo getPushUrl("123.test.com","123456","69e0daf7234b01f257a7adb9f807ae9f","2016-09-11 20:08:07");
			
特別提醒:播放地址的StreamName和推流地址的StreamName必須一致。

至此,推流地址播放地址就能生成了,我們將這倆地址提供給客戶端即可!

四、進行直播測試

由於博主經濟條件有限,只有一個手機,只能通過手機推流,電腦拉流來進行測試。
在這裏插入圖片描述
首先測推流,我用uniapp組件裏的一個推流demo實現了推流:

在這裏插入圖片描述
推流成功後,開始拉流,提供一個線上的拉流平臺,這樣,用一個手機就能測了。

在這裏插入圖片描述
至此,推流拉流的工作就實現啦。剩下的都是一些邏輯處理了,開房間,彈幕,刷禮物等……

五、總結

推薦一個php方面的七牛雲和騰訊雲直播sdk,裏面封裝了一些東西還是比較方便的。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章