數據------>解協議----->封裝格式數據---->解封裝---(音視頻流數據)---->(音視頻解碼)--->音視頻數據--->(硬件加速聲卡,顯卡)-->呈現出畫面與聲音算法
1.協議層:(protocol layer)----http/rtmp/file編程
2.封裝層:(format layer)-----mkv/mp4/flv/avi緩存
3.編碼層:(code layer)---h264/h265/mpeg2/mpeg4網絡
4.像素層:(pixel layer)---yuv420p/yuv422p/yuv444p/rgb24socket
流媒體開發編程語言
網絡層:socket負責傳輸ide
協議層:rtmp/hls負責網絡打包編碼
封裝層:flv/ts負責編解碼數據的封裝code
幀:每幀表明這一副靜止的圖像orm
GOP:GOP就是一組連續的畫面,每一個畫面都是一幀,一個GOP就是不少幀的集合。GOP cache長度越長,畫面質量就越好
碼率:圖片進行壓縮後每秒顯示的數據量
幀率:每秒顯示圖片的數,人眼所看到的畫面在16幀以上,就會認爲是連貫的
分辨率:圖片的長度&寬度,圖片的尺寸
壓縮前每秒數據:幀率 *分辨率
壓縮比:壓縮前的每秒鐘數據/碼率,(壓縮比越高,畫面質量越差)
視頻文件格式:wmv,mov,mp4,mp3,avi,
視頻封裝格式:一種存儲視頻信息的容器,流式封裝:TS\FLV,索引封裝:MP4\MOV\AVI,主要做用:一個視頻文件每每包含圖像和音頻,還有一些配置信息,這些內容按照必定的規則拼裝起來
注意:封裝格式和文件格式同樣,由於通常視頻文件格式的後綴即採用相應的視頻封裝格式的名稱,因此視頻文件格式就是視頻封裝格式
視頻封裝格式&視頻壓縮編碼標準:(項目工程,編程語言):
視頻編碼技術:
MPEG:幀間壓縮,存儲連續幀直接的有差異的地方,從而達到較大的壓縮比
H264:世面普遍使用的,算法比較複雜
H264組成:1.網絡提取層(Network Abstraction Layer)NAL 2,視訊編碼層(Video Coding Layer)VCL
Slice編碼構成:I幀,P幀,B幀
H.264 stream consists of a sequence of NAL Units
SPS:序列參數集,做用於一系列連續的編碼圖像
PPS:圖像參數集,做用於編碼視頻序列中的一個或多個獨立的圖像
參數集是一個獨立的數據單位,不依賴參數集外的其餘語法元素,只有編碼器認爲須要更新參數集內容時,纔會發出新的參數集
H265:基於H264,使用原來的技術,將相關的技術加以改進,例如碼流,編碼質量,延時,傳輸時更省帶寬
I幀:關鍵幀 解碼關鍵
P幀(差異幀):保留幀與前幀的區別,解碼須要緩存畫面疊加本幀定義的差異,生成最終的畫面,P幀只存儲差異數據,並非完整幀
B幀:雙向幀
合成muxing: 將視頻流、⾳音頻流、字⺟母流合成封裝到⼀一個⽂文件中,做⽂文⼀一個信號進⾏行行傳輸