FFMPEG小白之視音頻基礎知識
首先,向雷霄驊致敬
必備知識:
c語言 及其 開發環境
視頻播放器的原理
播放視頻文件的流程:
封裝格式數據(即FLV、MKV、MP4等等視頻文件)
通過解封裝格式將視頻數據和音頻數據進行解析
得到 音頻壓縮數據(aac mp3 等) 和視頻壓縮數據(h.264 mpeg2 等)
(需要注意的是,這些壓縮數據 佔用內存空間小,而視頻壓縮數據又稱碼流,不能直接用於顯示)
音頻
音頻壓縮數據 進行 音頻解碼 得到 音頻採樣數據 (即 pcm等)
同樣 視頻也是類似的
視頻壓縮數據 進行 視頻解碼 得到 視頻像素數據(即 yuv 等)
然後,將視頻像素數據 和音頻採樣數據 進行 視音頻同步 從而呈現給我們視頻和音頻享受
備註:
1.通過mediaoinfo能夠看到文件的一些常用信息 比如 視頻格式 音頻 平均混合碼率等 視頻解析度 音頻採樣率
2.視頻封裝格式中的 MPEG2-TS格式 特點:不包含文件頭,由數據大小固定的ts packet組成,所以此類型的文件如果文件頭丟失,也能正常播放;另一種 FLVg格式 特點:包含文件頭,數據有大小不固定的tag構成,所以正因為有文件頭,所以當文件開頭丟失的時候就會導致不能正常播放。
3.上面說的視頻編碼數據,其實是對視頻像素數據(RGB YUV等)壓縮成的視頻碼流,從而降低視頻的數據量,一般如果直接用視頻像素數據存儲視頻的話,會佔用很多物理空間。 目前最常用的,就是H.264,目前90%都在使用h.264視頻編碼格式,而MPEG2 現在一些數字電視在使用。查看視頻編碼格式的軟體有Elecard Stream Eye
視頻編碼格式
h.264編碼格式
他的存儲方式是將視頻的畫面按照單位存儲,即1幀畫面經過壓縮編碼後,存儲到1個NALU單位中,但是他的壓縮方法很複雜,包含了幀內預測、幀間預測、熵編碼、環路濾波等環節構成。比較複雜,所以暫不深究。
H.264的優點是可以將圖像數據壓縮至100倍以上,即100m的圖像數據可以用其壓縮至1m。
h.264編碼示意圖1
h264編碼示意圖2
可見h264編碼格式比較負責,她首先將視頻圖像進行網格劃分,然後對於複雜的圖像,再進行網格劃分,計算獲取圖像的運動矢量等信息其中I幀 會把圖像直接進行存儲,而P幀會預測運動矢量,跟I幀進行參考,B幀跟P幀類似但做的事情更多。
音頻編碼數據
作用:將音頻編碼數據(pcm等)壓縮成音頻碼流,從而降低音頻的數據量,但是其實不需要壓縮,也能夠播放。
aac目前是主流
音頻編碼數據
AAC存儲方式是由大小不固定的ADTS構成,壓縮方法比較複雜,可以將音頻數據壓縮10倍以上
視頻像素數據(視頻解碼之後的數據,體積會變大100倍,像素數據就是送給顯卡用於顯示的數據)
作用:
保存了從屏幕左上角開始知道所有每個像素點的像素值
常見的格式:RGB24,RGB32,YUV420P,YUV422P,YUV444P(Y包含亮度信息,UA包含色度信息,YUV對色度信息採用更狠的壓縮方案,從而提高壓縮效率,因為人眼對亮度敏感,二隊色度不太敏感uv的值只有y的1/4)
最常用的是YUV420P.
特點:視頻像素數據體積很大,一般情況下1小時高興視頻的RGB24格式的數據體積為
3600*25*1920*1080*3=559.9Gbyte(假定幀率為25HZ,取樣精度8bit,RGB是每個像素點佔用3位元組)
YUV格式像素數據查看工具是:YUV player
音頻採樣數據(音樂中記錄聲音的數據)
作用:保存了音頻中的而每個採樣點的值
特點:音頻採樣數據體積很大,一般情況下一首4分鐘的pcm格式的歌曲體積為
4*60*44100*2*2=42.4MByte(假定採樣率44100Hz,採樣精度為16bit,立體聲道)
PCM查看工具:Adobe Audition
※日常扮靚┃小心機,美甲讓你美的出眾
※蓮師聖地 智噶活佛轉世成巴仁波切
TAG:全球大搜羅 |