EasyRTMP獲取H.264實時流並轉化成爲RTMP直播推流之EasyRTMP-iOS如何處理H264關鍵幀和SPS、PPS數據的

EasyRTMP是結合了多種音視頻緩存及網絡技術的一個rtmp直播推流端,包括:圓形緩衝區(circular buffer)、智能丟幀、自動重連、rtmp協議等等多種技術,可以很是有效地適應各類平臺(Windows、Linux、ARM、Android、iOS),各類網絡環境(有線、wifi、4G),以及各類狀況下的直播恢復(服務器重啓、網絡重啓、硬件設備重啓)。緩存

EasyRTMP調用流程.png

提出問題:服務器

EasyRTMP-iOS如何處理H264關鍵幀和SPS、PPS數據?網絡

分析問題:app

對於編碼後的H264數據的處理在H264Packet.m中。ide

解決問題:編碼

使用VideoToolbox編碼後的視頻數據,須要標記關鍵幀,以及處理SPS和PPS等數據。經過CFDictionaryContainsKey方法判斷關鍵幀:spa

1.png

經過CMVideoFormatDescriptionGetH264ParameterSetAtIndex方法獲取SPS和PPS的數據,並拼接:orm

2.png3.png4.png

相關文章
相關標籤/搜索