rtsp播放h265(hevc)

? ? 對rtsp來說,要播放h265只要正確解析sdp和rtp包即可,這里分享下h265 sdp&rtp相關(guān)知識點,希望有用.

? ?1.?H265 Nal Unit Header 簡單介紹:

? ? H264的Nal Unit頭是一個字節(jié),265變成兩個字節(jié):

? ? ?F: 1 bit. forbidden_zero_bit. ?265要求是0,是1的話指示語法違規(guī)等.

? ? ?Type: 6 bits. Nal類型. ?vps是32, sps是33, pps是34, 前綴sei是39. IDR是19和20.

? ? ?LayerId: 6 bits. nuh_layer_id. 現(xiàn)在是0,將來可能擴展用.

? ? ?TID: 3 bits. nuh_temporal_id_plus1. TemporalId 是TID-1.

? ? 2. SDP 參數(shù)介紹:

? ? 2.1 IETF 分配給h265的媒體子類型如下:

? ? Type name: ? ? video

? ? Subtype name: ?H265

? ? 可選參數(shù):

? ? ?profile-space, tier-flag, profile-id, profile-compatibility-indicator, interop-constraints,level-id, sprop-sub-layer-id, recv-sub-layer-id, max-recv-level-id, tx-mode, sprop-vps, sprop-sps,? ?sprop-pps等等, 具體請參考相關(guān)文檔,建議解析sprop-vps, sprop-sps, sprop-pps.

? ? 2.2 SDP 舉例:

? ? m=video 0 RTP/AVP 96

? ? a=rtpmap:96 H265/90000

? ? a=fmtp:96 profile-space=0;profile-id=0;tier-flag=0;level-id=0;interop-constraints=000000000000;sprop-vps=QAEMAf//AIAAAAMAAAMAAAMAAAMAALUCQA==;sprop-sps=QgEBAIAAAAMAAAMAAAMAAAMAAKACgIAtH+W1kkbQzkkktySqSfKSyA==;sprop-pps=RAHBpVgeSA==

? ?注意編碼名稱必須是:H265, Clock rate必須是90000.

? ?3. RTP 打包格式.

? ?實際中其實就用到兩種格式,一種是一個nal單元打包到一個rtp包中。一種是nal單元比較大,分片打包在多個rtp中.

? ?3.1?單個Nal單元打包:

? ? PayloadHdr 把 NAL單元頭填入就好.

? ? 3.2 Nal單元分片打包:


? ? PayloadHdr還是拷貝NAL單元頭,但是要把Type換成49.? FU header 就一個字節(jié),格式如下:

+---------------+

|0|1|2|3|4|5|6|7|

+-+-+-+-+-+-+-+-+

|S|E| ?FuType ? |

+---------------+

S:為1表示第一個分片。 E:為1表示表示最后一個分片。FuType就是實際的Nal type類型。

4. 小結(jié):

h265和h264有很多相似之處,都有sps和pps,用00 00 00 01進行nal 單元分隔. 如果想測試h265 rtsp播放效果,可以從github下載播放器測試h265播放效果。?更多問題歡迎交流:294891451499687479。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容