Azure 媒體服務是一個基于雲的媒體工作流平台,用于生成需要編碼、打包、内容保護和直播活動廣播的解決方案。
在視訊的直播,點播方案中,媒體服務的架構主要由三部分構成:
- 推流端,把本地視訊或直播内容推送到媒體伺服器
- 媒體伺服器,編碼,打包,加密,根據不同的用戶端請求(PC, 安卓,蘋果)釋出不同的協定流。
- 拉流端 ,最終端使用者的播放裝置,如Azure 預設的播放器, Azure Media Player.
如Azure Media Player 點播的過程和結構圖如下:
使用步驟:
- 将媒體檔案上傳到資産中。
- 建議向資産應用存儲加密選項,以便在内容上傳期間以及當内容在存儲中處于靜态時,為其提供保護。
- 編碼為一組自适應比特率 MP4 檔案。
- 建議向輸出資産應用存儲加密選項,以便保護靜态内容。
- 配置資産傳送政策(由動态打包使用)。
- 如果資産已經過存儲加密,則 必須 配置資産傳送政策。
- 通過建立 OnDemand 定位符來釋出資産。
- 流式傳輸已釋出的内容。
如Azure Media Player 直播的過程和結構圖如下:
- 将視訊錄影機連接配接到計算機。 啟動并配置輸出多比特率 RTMP 或分段 MP4(平滑流式處理)流的本地實時編碼器。
- 建立并啟動頻道。
- 檢索通道引入 URL。
- 實時編碼器使用引入 URL 将流發送到頻道。
- 檢索頻道預覽 URL。
- 使用此 URL 來驗證頻道是否正常接收實時流。
- 建立節目。
- 使用 Azure 門戶時,建立節目的同時還會建立資産。
- 使用 .NET SDK 或 REST 時,需要建立一個資産并指定在建立節目時要使用該資産。
- 釋出與節目關聯的資産。
以上内容簡單列舉了Azure媒體服務的兩種方式的步驟,下面的内容則主要介紹 流式處理終結點(Streaming Endpoint ),流式處理終結點處于媒體服務的第三部分 --- 拉流端。 如圖:
流式處理終結點代表一個流服務,它可以直接将内容分發給用戶端播放器應用程式。 流式處理終結點服務的出站流可以是實時流,也可以是媒體服務帳戶中的視訊點播資産。 媒體服務客戶可以根據自身需要,選擇标準流式處理終結點或者一個或多個進階流式處理終結點
标準流式處理終結點适用于最消耗流的工作負荷。 标準流式處理終結點可以動态地将内容打包成 HLS、MPEG-DASH 和平滑流式處理,并針對 Microsoft PlayReady、Apple Fairplay 和 AES128 進行動态加密,進而靈活地将内容傳送到幾乎所有裝置。
如果有進階工作負荷或者流式處理容量要求無法适應标準流式處理終結點吞吐量目标,或者希望控制 StreamingEndpoint 服務的容量,以便處理不斷增長的帶寬需求,則我們建議配置設定縮放單元(也稱為進階流單元)。
流式處理終結點生成的URL格式如下:
{流式處理終結點名稱-媒體服務帳戶名稱}.streaming.mediaservices.chinacloudapi.cn/{定位符ID}/{檔案名}.ism/Manifest[(format=mpd-time-csf)|(format=m3u8-aapl)|(format=m3u8-aapl-v3)]
- 定位符ID: 為系統自動生成的一串GUID字元串
- 檔案名:為目前點播資産的檔案名
- Format:為指定目前傳輸的協定方式,如:HLS, MPEG-DASH, Smooth Streaming
三種協定介紹
一:HLS : HTTP Live Streaming
是由蘋果公司提出的基于HTT的流媒體網絡傳輸協定, 是把整個流分成一個個小的基于HTTP的檔案來下載下傳,當媒體流正在播放時,用戶端可以選擇從愈多不同的備用源中以不同的速率下載下傳同樣的資源,允許流媒體适應不同的資料速率。拓撲圖如下:
- 視訊轉碼 video transcoding:是指将一個視訊碼流轉換另一個視訊碼流,以适應不同的網絡帶寬,不同的終端處理能力和不同的客戶需求。點播系統中的轉碼一般是離線轉碼,直播系統中的轉碼為即時轉碼。
- 終端适配:将特定格式的視訊轉換成終端适配能力較高的視訊,以便在最廣泛的終端上實作分發。例如,将AVI格式(對網絡播放支援不友好)的視訊轉碼成MP4(幾乎所有網絡播放器都支援),以便在網際網路上進行分發;
- 帶寬适配:将視訊轉碼為超清、高清、标清等多路不同碼率的視訊,以便不同網絡帶寬的使用者選擇不同碼率的視訊;
- 播放友好:優化視訊封裝格式,以實作更好地播放效果;例如,某些MP4檔案的MOOV頭可能位于尾部,導緻部分播放器需要下載下傳整個MP4檔案之後才能開始播放;可以通過轉碼将MOOV頭調整到檔案頭部,以便播放器無需下載下傳整個檔案便可以開始播放;
- 增加水印:在視訊中增加版權相關圖檔(例如電視台的台标),宣示視訊本身的版權歸屬;
- 降低分發帶寬:使用更先進的編碼方式對視訊進行編碼,確定在不降低畫質的前提下降低視訊碼率,進而達到節省帶寬的目的;例如對原本使用H.264編碼的視訊進行H.265編碼;
- 降低存儲成本:對于以歸檔、備案為目的的視訊,直接存儲原始視訊可能會帶來較高的存儲成本,此時可以将視訊轉為低碼率進行存儲,進而大幅降低視訊存儲成本。
二:Smooth Streaming
Microsoft 于2008年推出,以 Microsoft 為主的平台和在 Xbox 生态系統,Smooth Streaming 支援碼率自适應,自适應流技術是使用标準HTTP的基于Web的媒體内容傳遞的一種形式。内容是以一系列MPEG-4(MP4)片段的形式傳遞給用戶端。當用戶端播放這些片段時,網絡狀況可能會發生變化(例如,帶寬可能會減少),或者視訊處理可能會受到正在運作的其他應用程式的影響。客戶可以立即請求下一個片段來自以不同比特率編碼的流,以适應不斷變化的條件。這使用戶端可以播放媒體而不會出現卡頓,緩沖或當機的情況。是以,使用者可以體驗到最高品質的播放,而不會中斷視訊流。
三:MPEG-DASH:Moving Picture Experts Group (MPEG) - Dynamic Adaptive Streaming over HTTP (DASH)
MPEG-DASH是一種碼流自适應的技術,和HLS類似,MPEG-DASH将内容分割成一系列很小的檔案segment,這些segment可以通過http直接通路。每個segment包含一小段時間長度的内容。MPEG-DASH傳輸系統架構由HTTP伺服器和DASH用戶端兩部分組成。HTTP伺服器存儲着DASH檔案,主要包含兩部分:媒體描述檔案MPD和DASH媒體檔案。DASH媒體檔案主要由分段媒體檔案和頭資訊檔案兩部分組成。
參考資料
Azure 媒體服務:https://docs.azure.cn/zh-cn/media-services/
HLS簡介: https://www.jianshu.com/p/6de22b88dc73
Smooth Streaming Architecture:https://alexzambelli.com/blog/2009/02/10/smooth-streaming-architecture/
MPEG-DASH簡介:https://blog.csdn.net/ranghanqiao5058/article/details/87932267
當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!