处理RTP流

时间:2012-08-17 13:17:58

标签: h.264 rtsp rtp rtsp-client

以下是从RTP中提取H.264的一些调试信息:


fragmentTypeBits:7,start_bit:0,end_bit:64,RTP payload:6742E01EDB02C0417845

- >写SPS


fragmentTypeBits:8,start_bit:128,end_bit:64,RTP payload:68CE30A480

- >写PPS


fragmentTypeBits:6,start_bit:128,end_bit:64,RTP payload:06E501AF80

- >跳过


fragmentTypeBits:28,start_bit:128,end_bit:0,RTP payload:7C85B80000ACAC06C50A0860113B6300072AA32D7D08FDEBD2F8FC06BB80F04D3A65F1B7D0 ...

- >写碎片数据......新帧


fragmentTypeBits:28,start_bit:0,end_bit:0,RTP payload:7C05FBED4F8D2C4F4A3B80C7149A7C506414B01E911444 ....

- >写碎片数据...帧片段


...(多次相同的起始位= 0)...


fragmentTypeBits:28,start_bit:128,end_bit:0,RTP payload:7C81E606C50A2F2​​ED1F2FDC9774972E1E4385A93CF89D225EE49A546AA6DB9FA

- >写碎片数据......新帧


虽然之前没有设置结束位,但设置起始位是否正常?

此外,是否可以同时设置开始/结束位?

在没有设置起始位的情况下设置结束位是否正常?

1 个答案:

答案 0 :(得分:0)

来自RFC 3984:

Fragments of the same NAL unit MUST be sent in consecutive order with
ascending RTP sequence numbers (with no other RTP packets within the
same RTP packet stream being sent between the first and last
fragment).  Similarly, a NAL unit MUST be reassembled in RTP sequence
number order.

基本上,第一个碎片单元应该设置一个起始位(即片段类型= 28),碎片单元应该有一个递增的序列号,直到最后一个并设置了结束位。

设置另一个起始位,或没有起始位的结束位或无序序列号是不正确的。