視訊直播的實現

hwk_yellow發表於2016-11-16

由於公司需要開發一款直播軟體,以前也並沒有接觸過直播這一方面,所以就來從0開始做一個直播,本著開放的原則,發此博文以供後者參閱。


視訊直播服務提供商的選擇:

在選擇視訊直播提供商的時候,目標選擇有三家:七牛雲、騰訊雲與阿里雲。由於七牛雲以及騰訊雲的視訊直播需要稽核,而且稽核速度較慢,本次選擇的是阿里雲提供的視訊直播的服務。阿里雲的服務質量也是很可靠的。阿里雲視訊直播服務地址:https://www.aliyun.com/product/live


視訊直播的原理:


從上圖可以清楚的看到,我們的身份屬於 管理員,在整個流程中主要負責視訊的推流以及對整個實時視訊流的處理。

可以看到,視訊直播主要是依託於CDN來實現的,因為這樣可以讓 內容消費方(也就是使用者)選擇最佳的視訊觀看節點,減少視訊延時。


具體實現步驟:

1、登陸阿里雲官網視訊直播控制檯:

登陸阿里雲賬號後,進入控制檯,找到左上角的 產品與服務->移動與視訊服務->視訊直播;


2、新增直播域名:

點選新建域名

輸入域名,稽核通過後即可

3、將直播域名繫結到CNAME:

將新增的直播域名的DNS CNAME紀錄修改為直播域名管理詳情頁面上顯示的CNAME繫結地址。


以阿里雲的域名解析為例:

記錄型別選擇CNAME,主機記錄寫新建域名時候的二級域名,記錄值填寫域名的CNAME值。

4、獲取推流和播放地址:

點選管理:

其中推流地址的APPname和streamname可以自定義。

5、推流:

推流地址:

rtmp://video-center.alivecdn.com/APPName/StreamName?vhost=test.example.com

說明

  • video-center.alivecdn.com是直播中心伺服器,允許自定義,例如您的域名是your.example.com(注意:該域名不可以和你的直播加速域名相同),可以設定DNS,將您的域名CNAME指向video-center.alivecdn.com即可
  • APPName是應用名稱,支援自定義,可以更改
  • StreamName是流名稱,支援自定義,可以更改
  • vhost引數是最終在邊緣節點播放的域名,即你的直播加速域名。

使用OSB進行推流,OBS下載地址:https://obsproject.com/download#mp


安裝完畢後點選設定:.


在串流中填寫相關配置:

以推流地址:rtmp://video-center.alivecdn.com/APPName/StreamName?vhost=test.example.com為例,

其中URL填寫:rtmp://video-center.alivecdn.com/APPName,流祕鑰填寫:StreamName?vhost=test.example.com


然後在OBS主介面下方的來源中選擇需要直播的畫面,點選開始串流即可:

6、播放:

回到視訊雲直播控制檯,點選流管理就可以看到當前正在直播的視訊流了:

點選後面的直播地址 即可看到3條直播的連線,將滑鼠放到連線上,後面會顯示一個播放,點選就可以在當前頁面播放:

或者可以將 M3U8格式的直播地址複製到 H5的video標籤進行播放。

到此,一個簡單的直播就已經完成了。

相關文章