最近博客寫出了日記的既視感。。。
使用RTP傳輸H264的時候,需要用到sdp協議描述,其中有兩項:Sequence Parameter Sets (SPS) 和Picture Parameter Set (PPS)需要用到,那么這兩項從哪里獲取呢?
答案是從H264碼流中獲取.在H264碼流中,都是以"0x00 0x00 0x01"或者"0x00 0x00 0x00 0x01"為開始碼的,找到開始碼之后,使用開始碼之后的第一個字節的低5位判斷是否為7(sps)或者8(pps), 及data[4] & 0x1f == 7 || data[4] & 0x1f == 8.然后對獲取的nal去掉開始碼之后進行base64編碼,得到的信息就可以用於sdp.sps和pps需要用逗號分隔開來.
SPS 對於H264而言,就是編碼后的第一幀,如果是讀取的H264文件,就是第一個幀界定符和第二個幀界定符之間的數據的長度是4
PPS 就是編碼后的第二幀,如果是讀取的H264文件,就是第二幀界定符和第三幀界定符中間的數據長度不固定。