WiresharkがMPEG-TSヘッダをパースしているので驚いた。ちゃんとHeaderの先頭が0x47。
このRTPを認識させるのに、「Edit」-「Preferences」-「Protocols」-「RTP」の「Try to decode RTP outside of conversations:」のチェックが必要だった。
DCCPの場合はペイロードにRTPなしでMPEG-TSを直置きしているのでパースしない。
今、MPEG-TSのさらに下のPESヘッダに下って、MPEGソースレベルで損失を表せないかプログラムを書いている。DTS(デコードするタイムスタンプ)とPTS(プレゼンテーションするタイムスタンプ)を使って上手くできないかやっているが、なかなか予備知識なしでは厳しいものがある。
例えば0x47という値があるが、これは188バイトごとに出てくる。つまり、TSパケット境界が分からなくなった場合は0x47を探せばMPEG-TSの先頭が分かる、という仕組みなどがある。
MPEG-TSにこだわらずに出力されたファイルの比較をする方法も考慮したが、出力されたMPEGファイルのMPEG-TSを解して比較を行ったほうが分かりやすいだろうと思っているが、どうするべきだろうか。
RTP のパースができなくて困っていたところにここにたどり着きました。
本当にありがとうございました。
それは良かったですね!