0

RTP から H.264 を抽出する際のデバッグ情報を次に示します。


fragmentTypeBits: 7、start_bit: 0、end_bit: 64、RTP ペイロード: 6742E01EDB02C0417845

-> SPS を書く


fragmentTypeBits: 8、start_bit: 128、end_bit: 64、RTP ペイロード: 68CE30A480

-> PPS を書く


fragmentTypeBits: 6、start_bit: 128、end_bit: 64、RTP ペイロード: 06E501AF80

->スキップ


fragmentTypeBits: 28、start_bit: 128、end_bit: 0、RTP ペイロード: 7C85B80000ACAC06C50A0860113B6300072AA32D7D08FDEBD2F8FC06BB80F04D3A65F1B7D0...

-> 断片化されたデータを書き込む... 新しいフレーム


fragmentTypeBits: 28、start_bit: 0、end_bit: 0、RTP ペイロード: 7C05FBED4F8D2C4F4A3B80C7149A7C506414B01E911444....

-> 断片化されたデータを書き込む... フレーム断片


... (複数回同じ開始終了ビット = 0) ...


fragmentTypeBits: 28、start_bit: 128、end_bit: 0、RTP ペイロード: 7C81E606C50A2F2​​ED1F2FDC9774972E1E4385A93CF89D225EE49A546AA6DB9FA

-> 断片化されたデータを書き込む... 新しいフレーム


以前はエンドビットがセットされていませんでしたが、スタートビットがセットされていても問題ありませんか?

また、スタートビットとエンドビットを同時にセットしても良いですか?

また、開始ビットを前に設定せずに終了ビットを設定しても問題ありませんか?

4

1 に答える 1

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) が必要であり、フラグメンテーション ユニットには、エンド ビットが設定された最後のユニットまで昇順のシーケンス番号が必要です。

別の開始ビットを設定したり、開始ビットのない終了ビットを設定したり、シーケンス番号を順不同にしたりすることは正しくありません。

于 2012-08-17T19:38:07.397 に答える