VideoToolBox iOS8.0推出 同期block也推出出來(lái)了
VideoToolBox工作流程 VideoToolBox基于Core Foundation庫(kù)函數(shù),c語(yǔ)言 創(chuàng)建session——>設(shè)置編碼相關(guān)參數(shù)——>開(kāi)始編碼——>循環(huán)輸入源數(shù)據(jù)(yuv類(lèi)型的數(shù)據(jù),直接從攝像頭獲取)——>獲取編碼后的H264數(shù)據(jù)——>結(jié)束編碼
CMSampleBuffer編碼格式
- CMTime 時(shí)間戳
- CMVideoFormatDesk 圖像存儲(chǔ)方式
- CMPixelBuffer編碼后 CVPixelBuffer編碼前
CMSampleBuffer.png
(1)第一位為禁位
(2)第2-3位為參考級(jí)別
(3)第4-8位為nal單元類(lèi)型
- SPS序列參數(shù)集
- PPS圖像參數(shù)集
SPS & PPS信息參數(shù)
編碼所有的Profile、level、圖像的寬和高、deblock錄波器......
H264碼流中第一個(gè)NALU是SPS&PPS
時(shí)間和空間的相似性對(duì)數(shù)據(jù)進(jìn)行壓縮
視頻編碼格式H.264
代碼流程
- 簡(jiǎn)單UI
- 配置 AV Foundation捕捉回話
- 配置 VideoToolBox
- 開(kāi)始捕捉
- AV Foundation捕捉到視頻
- 停止捕捉
- 結(jié)束AV Foundation
直播app核心框架如下圖:
直播核心框架.png
視頻.png
屏幕快照 2017-08-02 下午3.33.19.png
關(guān)鍵幀.png
如果沒(méi)有關(guān)鍵幀是無(wú)法解析的。
一個(gè)視頻里面包含多個(gè)GOP