封裝格式和編碼格式
- 封裝格式(格式頭)
MP4 FLV MOV AVI
MP4用box包含音視頻信息(壓縮方式牍戚,幀率,關(guān)鍵幀索引)
傳輸流媒體的時(shí)候也是先把封裝格式傳過(guò)去
ffmpeg能夠解碼沒(méi)有格式頭的音視頻文件看疙,因?yàn)樗鼤?huì)去探測(cè)
錄制時(shí)格式頭一開(kāi)始寫(xiě)進(jìn)去,錄制完后會(huì)把索引寫(xiě)進(jìn)去,才能知道長(zhǎng)度以及如何去SEEK - 視頻編碼幀 音頻解碼幀
音視頻幀以接近交替出現(xiàn)的形式排列秀菱,但并不是一一對(duì)應(yīng)
音頻幀是根據(jù)采樣率來(lái)定的柿菩,如采樣率是44100Hz, 所以幀率是22.5戚嗅,一幀寸1024個(gè)樣本
視頻幀率與音頻幀率一般不一致
視頻 H264 NAL VCL SPS PPS I B P 具體展開(kāi):https://zhuanlan.zhihu.com/p/27896239
解碼為YUV->轉(zhuǎn)換為RGB,數(shù)據(jù)量極大枢舶,謹(jǐn)慎拷貝和緩沖
硬解 固化好的電路程序懦胞,性能固定,消耗小
CPU軟解 兼容性強(qiáng)凉泄,性能強(qiáng)躏尉,消耗大
音頻 AAC APE FLAC無(wú)損壓縮 PCM原始音頻
解碼為PCM,float 4個(gè)字節(jié)后众,聲卡一般只支持16位胀糜,-> 重采樣為16位 s16讓聲卡進(jìn)行播放