網絡視頻直播存在已有很長一段時間,隨着移動上下行帶寬提升及資費的下調,視頻直播被賦予了更多娛樂和社交的屬性,人們享受隨時隨地進行直播和觀看。一般來說,網絡視頻直播的流程可以分為如下幾步:
采集 —>處理—>編碼和封裝—>推流到服務器—>服務器流分發—>播放器流播放。
下面我們逐步來看一下。
1.采集
采集是整個視頻直播過程中的第一個環節,它從系統的采集設備中獲取原始視頻數據,將其輸出到下一個環節。視頻的采集涉及兩方面數據的采集:音頻采集和圖像采集,它們分別對應兩種完全不同的輸入源和數據格式。圖像采集包含攝像頭采集、屏幕錄制、H264RAW,音頻采集包含麥克風采集、系統聲音、AAC RAW。視頻采集的采集源主要有:攝像頭采集、屏幕錄制和從視頻文件推流。
2.處理
音視頻完成采集之后得到原始數據,在日常使用中不同的用戶會有不同的要求,比如在一些公司需要添加自己的logo,個人需要添加一些相關濾鏡等,這些都在處理里完成。
3.編碼和封裝
(1)編碼
如果把整個流媒體比喻成一個物流系統,那么編解碼就是其中配貨和裝貨的過程,這個過程非常重要,它的速度和壓縮比對物流系統的意義非常大,影響物流系統的整體速度和成本。同樣,對流媒體傳輸來說,編碼也非常重要,它的編碼性能、編碼速度和編碼壓縮比會直接影響整個流媒體傳輸的用戶體驗和傳輸成本。
(2)封裝
沿用前面的比喻,封裝可以理解為采用哪種貨車去運輸,也就是裝這些信息的容器。有了這個容器,編碼器生成的多媒體內容混合就有了標准。之后你選擇內容就有了“標簽”,比如說沒有容器,你看電影,你要手動載入音頻,還只能從頭開到尾,不能拖動進度條。
4.推流到服務器
推流是直播的“第一步”,如果推流時網絡不穩定,后期不論如何優化,觀眾的體驗都會很糟糕。
5.服務器流分發
流媒體服務器的作用是負責直播流的發布和轉播分發功能,也就是cdn這塊,服務器收集到主播視頻后再通過在全國各地的節點將視頻內容分發到終端。cdn是直播中最貴的,技術難度較高,一般都是采用第三方的;如果自己做的話,也需要和cdn廠商對接有經驗的技術。
6.播放器流播放
主要是實現直播節目在終端上的展現。
最后關於視頻存儲,通常視頻是放在“雲”里進行存儲,當然,這一步則需要服務器包含了雲存儲的功能和視頻回放的功能。完成這一套流程或許是繁雜的,如果選擇專業的視頻流媒體服務廠商則會更加便捷。EasyDSS流媒體服務器就能夠滿足這一整套的播放和服務流程,提供一站式的轉碼、點播、直播、時移回放服務,極大地簡化了開發和集成的工作。
其中,點播功能主要包含:上傳、轉碼、分發。直播功能,主要包含:直播、錄像,直播支持RTMP輸入,RTMP/HLS/HTTP-FLV的分發輸出;錄像支持自定義保存時長、檢索及下載。提供豐富的二次開發接口,基於JSON的封裝及HTTP調用。提供播放鑒權、推流鑒權等安全保證。提供用戶及相關權限管理配置。