查看RFC 3550中 RTP和RTCP数据包的定义:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC |M| PT | sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| synchronization source (SSRC) identifier |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| contributing source (CSRC) identifiers |
| .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Run Code Online (Sandbox Code Playgroud)
对于以上所有内容,我都不会重述。它已经很长了,但请参阅第5.1节。
随着在手,你会看到有没有很多可以做,以确定是否一个数据包中包含RTP / RTCP。最好的办法是像其他发布者所建议的那样嗅探媒体流谈判。第二好的方法是对一系列数据包进行某种模式匹配:前两位为10,接下来的两位为常数,随后的9至15位为常数,然后16-> 31递增,并且以此类推。
归档时间: |
|
查看次数: |
9687 次 |
最近记录: |