【问题标题】:Processing RTP stream处理 RTP 流
【发布时间】:2012-08-17 13:17:58
【问题描述】:

以下是从 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有效载荷:7C81E606C50A2F2​​ED1F2FDC9774972E1E4385A93CF89D225EE49A546AA6DB9FA

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


虽然之前没有设置结束位,但设置开始位是否可以?

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

在没有设置开始位之前设置结束位是否可以?

【问题讨论】:

    标签: h.264 rtsp rtp rtsp-client


    【解决方案1】:

    来自 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),分片单元应该有一个升序号,直到最后一个设置了结束位。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-31
      • 1970-01-01
      • 2012-11-08
      • 2017-04-11
      • 2019-06-26
      • 2018-07-26
      • 2015-01-31
      • 2014-09-27
      相关资源
      最近更新 更多