H264 视频码率
為什么同樣的分辨率幀率視頻 ,碼率還不一樣?
? ? 編碼器壓縮的度不一樣,所以影響存儲空間和網絡上傳輸帶寬占用。
碼率,也叫做比特率:視頻比特率是指要播放該視頻,所需要每秒讀取的該視頻文件的比特(bit)數。單位為bps(Bit Per Second),比特率越高,每秒讀取數據就越多,同等條件下畫質就越好。
一個原生的視頻,不進行編碼壓縮,要顯示播放,每秒需要的bit數:
?一個 這樣的 視頻:
?????? 1280 width
??????? 720 high
??????? 使用色彩空間? YUV 420 ,這個格式每個像素平均占用空間 12bit
??????? 幀率 25fps
如果不壓縮,每秒原始的數據量 大小為:
1280 x 720 (總像素) x 12bit(每個像素占用12bit) x 25(一秒25幀) = 276480000 bits = 32.96? x 1024 x 1024 x8
即每秒要用到的數據是 32.96MB.
但是有編碼器的存在,就是為了減少這些存儲傳輸的數據量,比如h264,進行編碼后對應的總的輸出數據(這是數據是壓縮后數據)每秒占用的 空間,稱為碼率(也可以說比特率),一般來說,壓縮率越高,每一幀數據越小,所以碼率越小,壓縮后的視頻質量就會越低,這些取決于內部的壓縮編碼方法。 所以,h264的編碼,是支持 靜態碼率,動態碼率等幾種方式的。即 CBR(Constant Bit Rate)是以恒定比特率方式進行編碼》VBR(Variable Bit Rate)動態比特率,其碼率可以隨著圖像的復雜程度的不同而變化,因此其編碼效率比較高。 一般來說,碼率越低,壓縮率越高,每一幀h264越小。圖像效果越差(畢竟一般都是有損壓縮,為了更高的壓縮率更小的存儲空間)。碼率越高,不會高過原始碼率(上面分析的不壓縮時候的視頻碼率,高出這個,這個編碼就毫無意義了)? ,一般圖像效果也越好。 剛才所說,編碼器可以支持動態碼率編碼和靜態碼率編碼。如果采用動態碼率編碼,那么這個視頻文件的碼率就是根據實際內容動態變化的,比如某一個畫面場景比較復雜,為了保留更多的圖像細節,編碼器對這些復雜畫面幀的編碼壓縮率相對較小,輸出的h264幀數據比較大,碼率就大,如果只是幾張空白的背景,編碼出來的幀就小得多。
有個疑問,碼率越低,壓縮率越高,是不是意味著編解碼器和解碼要做的工作越多?編碼和解碼耗時也就越長,畢竟要復原圖像,還是需要原圖像的相當的數據量。這么說來,都是犧牲時間來減少空間,所以隨著硬件性能的提升,原本耗時更多的 編解碼方案得以實際可用,就會催生出新的計算更復雜但是壓縮率更大的編解碼方案。比如什么h266 vp9
做app的一個朋友很疑惑,說你們一個視頻文件那么大,咋不知道先zip壓縮一下再放進來呢,嗯。。。。。。。。。你覺得編碼器編碼壓縮出來的音視頻你還能zip再壓榨一下信息量么???要不你試下.mp4 右鍵zip一下???
總結
- 上一篇: 即时通讯视频聊天原理是什么
- 下一篇: [html] 说说你对html中的置换