如何雲儲存服務實現視頻儲存

來源:互聯網
上載者:User

為了方便直播/監控使用者使用雲端儲存產品來儲存音視頻資料,阿里雲的雲端儲存(簡稱OSS)產品近期推出了RTMP收流功能。使用者可以直接用RTMP協議將音視頻資料上傳到雲端儲存OSS。

雲端儲存 LiveChannel介紹

LiveChannel是雲端儲存為了管理RTMP推流新增的概念;LiveChannel即直播頻道,用來儲存推流配置,擷取推流狀態等;直播頻道從屬於bucket,一個使用者可以在bucket中建立無限多的直播頻道。

使用者建立一個LiveChannel即可以擷取一個對應的RTMP推流地址,隨後使用者可以將音視頻資料通過RTMP協議推送到雲端儲存OSS,轉儲為HLS協議的ts、m3u8檔案。(牛逼的很那,哈哈)轉儲的檔案可以用來做點播;在延遲要求不高的情境下也可以直接使用HLS協議做直播;另外,還支援收流的同時即時截圖。

通過LiveChannel,使用者可以在直播的同時將內容儲存到雲端儲存OSS,不需要任何的本地臨時儲存;在享受雲端儲存OSS高可靠、低成本、無限擴充的同時,還可以利用雲端儲存OSS強大並且還在不斷豐富中的資料處理能力(截圖、轉碼、鑒黃等等)來進行各種後期處理;還可以非常便捷的使用雲端儲存OSS的Lifecycle等功能來做資料的生命週期管理。

使用情境說明

一、RTMP直播轉錄為HLS


步驟說明

1.    APP開始直播,推送RTMP流到CDN;

2.    APP或者CDN發送“開始直播”的訊息到MNS Topic,資訊中包含本次直播的CDN拉流地址;

3.    MNS推送訊息到使用者搭建在Elastic Compute Service上的RTMP Proxy;

4.    RTMP Proxy使用ffmpeg從CDN拉流;

5.    RTMP Proxy在雲端儲存OSS建立LiveChannel,並向雲端儲存OSS推流

6.    轉推結束後,RTMP Proxy發送一條“推流結束”的訊息到另一個MSN Topic;

7.    MNS向客戶的應用伺服器推送“轉推結束”的訊息,供後續處理(例如儲存點播地址到資料庫);

8.    APP從應用伺服器得到點播地址,訪問雲端儲存OSS擷取點播視訊。

備忘

1.    使用者可以自己使用OSS/MNS SDK、ffmpeg、librtmp等來實現自己的RTMP Proxy,後續雲端儲存OSS會提供樣本程式;

2.    整個步驟中涉及到的組件都可以使用阿里雲提供的服務搭建。

二、即時鑒黃


步驟說明

1.    直播時使用RTMP Proxy轉推一路資料到OSS,並設定LiveChannel開啟截圖;

2.    OSS按使用者指定的間隔截圖,並儲存到OSS;

3.    OSS調用第三方鑒黃服務對圖片進行打分;

4.    OSS將打分的結果推送到MNS Topic;

5.    MNS回調使用者的應用伺服器通知鑒黃結果;

6.    另一種處理方式:使用者也可以選擇讓OSS直接推送截圖的圖片連結,應用伺服器將圖片地址彙總後採用其他方式鑒別;

備忘

1.    第三方鑒黃服務會部署在阿里雲提供的Container Service中,調用的延遲等有充分的保證;

2.    截圖的同時雲端儲存OSS仍然會將RTMP流轉儲為HLS檔案;

三、許可權控制(私人bucket支援HLS播放)

雲端儲存OSS提供了豐富的鑒權/授權機制讓使用者可以精細的控制資料的存取權限;對於HLS直播/點播情境,我們同樣提供了“動態簽名m3u8”的機制,使使用者可以使用私人bucket提供HLS播放服務。

使用者只需要使用URL簽名方式訪問m3u8,並且增加參數“x- OSS-process=hls/type”, OSS會對返回的播放清單中的所有ts地址按照與m3u8完全的相同的方式進行簽名(相同的accessId、accessKey、expireTime)。

假設某個m3u8檔案的內容如下:

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-MEDIA-SEQUENCE:54

#EXT-X-TARGETDURATION:6

#EXTINF:6.006,

1470971233380.ts

#EXTINF:6.006,

1470971233398.ts

#EXTINF:1.944,

1470971233415.ts

動態簽名後返回的內容如下:

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-MEDIA-SEQUENCE:54

#EXT-X-TARGETDURATION:6

#EXTINF:6.006,

1470971233380.ts?Expires=1470973160&OSSAccessKeyId=YJjHKOKWDWINLKXv&Signature=6aJidj9VCRqnv%2Bwszh9MeROeHPM%3D

#EXTINF:6.006,

1470971233398.ts?Expires=1470973160&OSSAccessKeyId=YJjHKOKWDWINLKXv&Signature=ek3I5uK3R8FlnZLLWCmzsJXo7wk%3D

#EXTINF:1.944,

1470971233415.ts?Expires=1470973160&OSSAccessKeyId=YJjHKOKWDWINLKXv&Signature=JMjdUcCGu63bgtiIHeEi0USyY18%3D

備忘

1.    “動態簽名”不會改變儲存在雲端儲存OSS中的m3

2.    u8檔案的內容;

3.    支援子帳號、STS,使用STS訪問時,Token必須通過URL參數提供;

4.    x-oss-process參數需要參與簽名。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.