I'm working on a program processing streaming data based on MS-RTSP protocol and it's working quite well so far, getting UDP packet by RTSP.
The problem is- I cannot get through converting UDP packets to video data.
I have MS-RTSP-SPEC, RFC-2326 and MS-ASF-SPECIFICATION document,
But I have no idea what kind of data structure do 'ASF payload headers and compressed media data'
Following data is one of the received packets from RTP connection,
And I have no idea which part of this MS-ASF-SPEC document has explanation of the 'ASF payload headers and compressed media data'
Please help me QQ
Message Log
::first Packet
==RTP Header==
00 = 128 096 059 199 000 000 000 000 006 072 087 109
==RTP Payload format Header==
00 = 128 000 000 000
S=True L=False R=False D=False I=False RES=0 LENGTH=0
==ASF Data packet Header==
00 = 130 000 000 009 093 000 000 000 000 000 000 000
==ASF payload headers and compressed media data==
00 = 131 130 001 000 000 000 000 010 026 001 000 000 184 011 000 000
01 = 041 000 026 001 000 008 016 048 060 087 225 225 222 023 133 225
02 = 120 094 023 133 225 120 094 023 133 225 120 094 023 133 225 120
03 = 094 023 133 225 120 094 023 133 225 120 094 023 133 225 120 094
04 = 023 133 225 120 094 023 133 225 120 094 023 133 225 120 094 023
...
45 = 211 227 138 112 047 081 032 192 234 137 112
::second Packet
==RTP Header==
00 = 128 224 059 200 000 000 000 000 006 072 087 109
==RTP Payload format Header==
00 = 128 000 002 247
S=True L=False R=False D=False I=False RES=0 LENGTH=759
==ASF Data packet Header==
00 = 088 009 135 027 150 032 101 060 144 095 176 022
==ASF payload headers and compressed media data==
00 = 045 096 089 208 024 094 230 135 137 246 055 245 023 109 003 128
01 = 008 243 194 154 187 080 155 234 249 117 095 023 070 136 140 081
02 = 176 175 040 219 021 248 092 231 166 111 200 153 103 223 156 114
03 = 062 050 010 096 205 196 048 116 121 052 095 073 177 008 122 180
04 = 022 078 008 140 224 142 132 220 040 144 226 088 099 177 189 244
...
45 = 173 184 024 007 238 195 035 015 012 125 041
Microsoft implemented this in their ConferenceXP package. Download the stuff here:
http://research.microsoft.com/en-us/projects/conferencexp/
Then use your favorite .NET disassembler to pull apart the RtpStream/RtpPacket stuff from the MSR.LST.Net.Rtp assembly. Or you could possibly use their classes to deal with your data.