1、寫在前面:
最開始接觸h264的ps封裝的時候,參考的是:關於對h264碼流的ps的封裝的相關**實現
2、封裝需要基本了解的概念:
rtp:是流**實時傳輸協議,rtp頭有12個位元組
非i幀 00 00 00 01 41
sps 00 00 00 01 67
pps 00 00 00 01 68
根據上面參考文章的說法,i幀前面需要增加ps頭+system 頭+ system map 頭+ pes 頭
非i幀前面增加ps 頭 + pes 頭
1、ps封裝頭的長度是可以變化的,不是固定長度
#define ps_hdr_len 14
#define sys_hdr_len 18
#define psm_hdr_len 24
#define pes_hdr_len 19
我們定義的長度如下:
#define ps_hdr_len 14
#define psm_hdr_len 24
#define sys_hdr_len 18
#define pes_hdr_len 14
[cpp]view plain
copy
static
void
packet_ps_header(
char
* pdestbuf,
intlength,
intcurrpts)
bits_initwrite( &bits, length, pdestbuf);
bits_write(&bits, 32, 0x000001ba); /*start codes*/
bits_write(&bits, 2, 1); /*marker bits '01b'*/
bits_write(&bits, 3, (s64scr>>30)&0x07); /*system clock [32..30]*/
bits_write(&bits, 1, 1); /*marker bit*/
bits_write(&bits, 15, (s64scr>>15)&0x7fff); /*system clock [29..15]*/
bits_write(&bits, 1, 1); /*marker bit*/
bits_write(&bits, 15, s64scr&0x7fff); /*system clock [29..15]*/
bits_write(&bits, 1, 1); /*marker bit*/
bits_write(&bits, 9, lscrext&0x01ff); /*system clock [14..0]*/
bits_write(&bits, 1, 1); /*marker bit*/
bits_write(&bits, 22, (160001)&0x3fffff); /*bit rate(n units of 50 bytes per second.)*/
bits_write(&bits, 2, 3); /*marker bits '11'*/
bits_write(&bits, 5, 0x1f); /*reserved(reserved for future use)*/
bits_write(&bits, 3, 0); /*stuffing length*/
}
3、pes頭中,如果只包括pts時間戳,則需要修改為下面**:
修改的時候把dts去掉了,然後配套修改了第8個位元組,但沒有檢查原來參考文章中設定的是同時包括pts和dts,所以需要關注修改:第七位元組的高兩位是pts和dts指示位,00表示無pts無dts,01禁止使用,10表示pes頭部欄位會附加pts結構,11表示pts和dts都包括
[cpp]view plain
copy
static
void
gb28181_make_pes_header (unsigned
char
*dst , int32_t dstlen, int32_t data_length,
intpts)
4、rtp的組包傳送上面,根據h264的rtp打包方式,有單nalu、fu-a、fu-b多種形式,根據適配需要調整。
gb28181協議 資料收集
siprfc3261 visual studio 2010下編譯osip及exosip並搭建開發環境的方法 版本3.6 使用v2008編譯libosip和libexosip 版本4.0 訪問位址 exosip2幫助文件 gbt28181開發 sip協議實踐 之windows下編譯exosip osi...
協議域GB28181 規範之閘道器 模組
供給 gb 28181閘道器及整體解決方案。實現 sip 監控域與非sip 監控域互聯。sip 監控域與非sip 監控域通過閘道器停止互聯結構見圖。閘道器長短sip 監控域接入sip監控域的口接備設,在多個次層上春聯網系統息信據數停止轉換。根據轉換的息信據數型別,閘道器邏輯上分為制控協議閘道器和 閘...
GB 28181協議解讀 報警事件通知
目錄 協議內容 訊息格式 報警通知sdp訊息體 報警響應sdp訊息體 notify訊息字段含義 response訊息字段含義 報警事件通知和分發使用ietf rfc 3428 中定義的方法 message傳送報警資訊。報警事件通知和分發流程中的請求命令採用 manscdp 協議格式定義,報警事件通知...