天天看點

直播基本流程【推流-播流-流媒體伺服器】

作者:音視訊流媒體技術

直播基本流程

這裡不涉及到業務相關 , 這裡簡要說明直播流程

推流端: 負責将本地的音視訊資料推送至流媒體伺服器

流程:音視訊資料采集->編碼->封裝->協定封包

功能:美顔濾鏡、音效處理、回音消除

播流端:負責拉取流媒體伺服器的音視訊資料到本地解碼播放

流程:網絡流資料->解協定->解封裝->解碼->音視訊同步

功能:動态追幀、硬體加速、首屏秒開、高效解碼

流媒體伺服器:負責直播流的建立,分發到各個cdn節點,加快流的解析,以及各種流的管理統計等等

功能: CDN分發、實時轉碼、視訊錄制、Qos、自動鑒黃

一、推流端

直播基本流程【推流-播流-流媒體伺服器】

音視訊采集

通過攝像頭和麥克風獲得實時的音頻原資料,例如PCM資料。視訊原資料,例如yuv420p,rgb資料。

注意:有關音頻特效(變聲)和視訊特效(大眼瘦臉)就是對音視訊原資料的處理

編碼

音頻編碼:将音頻采樣資料(PCM等)壓縮成音頻碼流,進而降低音頻的資料量

視訊編碼:視訊編碼的主要作用是将視訊像素資料(RGB,YUV等)壓縮成視訊碼流,進而降低視訊的資料量

封裝

封裝格式的主要作用是把視訊碼流(H264資料)和音頻碼流(AAC資料)按照一定的格式存儲在一個檔案中(FLV檔案)

協定封裝

對封裝格式的檔案(flv、mp4等)進行rtmp、http、hls等協定的封包過程

下方資料音視訊免費領取,背景私信扣1

直播基本流程【推流-播流-流媒體伺服器】

二、播流端

直播基本流程【推流-播流-流媒體伺服器】

播流需要經過以下幾個步驟:解協定、解封裝、解碼視音頻、視音頻同步。如果播放本地檔案則不需要解協定。

解協定

就是将流媒體協定的資料,解析為标準的相應的封裝格式資料。視音頻在網絡上傳播的時候,常常采用各種流媒體協定,例如HTTP,RTMP,或是MMS等等。這些協定在傳輸視音頻資料的同時,也會傳輸一些信令資料。這些信令資料包括對播放的控制(播放,暫停,停止),或者對網絡狀态的描述等。解協定的過程中會去除掉信令資料而隻保留視音頻資料。例如,采用RTMP協定傳輸的資料,經過解協定操作後,輸出FLV格式的資料。

解封裝

就是将輸入的封裝格式的資料,分離成為音頻流壓縮編碼資料和視訊流壓縮編碼資料。封裝格式種類很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已經壓縮編碼的視訊資料和音頻資料按照一定的格式放到一起。例如,FLV格式的資料,經過解封裝操作後,輸出H.264編碼的視訊碼流和AAC編碼的音頻碼流。

解碼

就是将視訊/音頻壓縮編碼資料,解碼成為非壓縮的視訊/音頻原始資料。音頻的壓縮編碼标準包含AAC,MP3,AC-3等等,視訊的壓縮編碼标準則包含H.264,MPEG2,VC-1等等。解碼是整個系統中最重要也是最複雜的一個環節。通過解碼,壓縮編碼的視訊資料輸出成為非壓縮的顔色資料,例如YUV420P,RGB等等;壓縮編碼的音頻資料輸出成為非壓縮的音頻抽樣資料,例如PCM資料。

視音頻同步

就是根據解封裝子產品處理過程中擷取到的參數資訊,同步解碼出來的視訊和音頻資料,并将視訊音頻資料送至系統的顯示卡和聲霸卡播放出來。

三、流媒體伺服器

直播基本流程【推流-播流-流媒體伺服器】

下圖是參加了業務相關

直播基本流程【推流-播流-流媒體伺服器】
作者:靑箋畫卿顔

繼續閱讀