当前位置: 代码迷 >> 多媒体/流媒体开发 >> 帮小弟我看一上这个RTP的载荷类型是什么.如何解RTP包
  详细解决方案

帮小弟我看一上这个RTP的载荷类型是什么.如何解RTP包

热度:3065   发布时间:2013-02-26 00:00:00.0
帮我看一下这个RTP的载荷类型是什么.怎么解RTP包.
我得到远端RTSP源是Linux下的fenice-1.11作为流服务器.我收取它的视频流.得到如下SDP包
v=0
o=- 1 1 IN IP4 127.0.0.1
s=GM Live
i=ICL Streaming Media
c=IN IP4 0.0.0.0
t=0 0
m=video 0 RTP/AVP 99
a=rtpmap:99 H264/90000
a=fmtp:99 profile-level-id=42A01E;packetization-mode=1;sprop-parameter-sets=Z0IAKOkCw/I=,aM44gA==
a=control:trackID=0

问题出在它不是96.却在rtpmap:99 H264/90000这里写着H264.VLC可以播放它的视频.可我抓到它的包.
0040  ...      ...      ...      ...      ...      ...      10000000 01100011   .C$....c
0048  00011111 10010001 00000000 00001010 01101010 10111011 11110001 01001111   ....j..O
0050  10000001 01110001 01011100 00000001 01011111 11111001 10110101 10101111   .q\._...
0058  10111011 11011101 11111100 10010101 01011110 01111101 10111111 01111001   ....^}.y
0060  00111111 00010001 11001001 11000001 00001101 01101011 01111010 11101111   ?....kz.
的确是写着载荷99.但我用RFC2198定义的99格式去解却是错的.现在我想知道我应该怎么解这个包,得到NALU.

------解决方案--------------------------------------------------------
你想问什么?因为rtsp如果是rtp也在tcp上的话,会有4字节头部的。sdp里面含参数集。想要提取码流也很简单,找到sdp获取参数集,然后解析出每个rtp包,写成raw格式的码流,很多播放器都可以播放的。99,96这些只是一个数字,只要在动态负载类型范围内都可以,毕竟是由MIME表示决定具体的码流类型的。
  相关解决方案