Having trouble Getting "RTSP over HTTP"
- by Muhammad Adeel Zahid
There is an axis camera that is connected to our site (camba.tv) through axis one click connection component (which acts as proxy). We can communicate with this camera only through http by setting the proxy to our OCCC server's address. If we want to get RTSP streams (h.264) we are only left with "RTSP over HTTP" option. For this I have followed axis VAPIX 3 documentation section 3.3. I issue requests through fiddler but don't get any response. But when i put the URL (axrtsphttp://1.00408CBEA38B/axis-media/media.amp) in windows media player (with proxy set to OCCC server 212.78.237.156:3128) the player is able to get RTSP stream over HTTP after logging in. I have created a request trace of communication between camera and windows media player through wireshark and the request that brings the stream looks like
http://1.00408cbea38b/axis-media/media.amp HTTP/1.1
x-sessioncookie: 619
User-Agent: Axis AMC
Host: 1.00408CBEA38B
Proxy-Connection: Keep-Alive
Pragma: no-cache
Authorization: Digest username="root",realm="AXIS_00408CBEA38B",nonce="000a8b40Y0100409c13ac7e6cceb069289041d8feb1691",uri="/axis-media/media.amp",cnonce="9946e2582bd590418c9b70e1b17956c7",nc=00000001,response="f3cab86fc84bfe33719675848e7fdc0a",qop="auth"
HTTP/1.0 200 OK
Content-Type: application/x-rtsp-tunnelled
Date: Tue, 02 Nov 2010 11:45:23 GMT
RTSP/1.0 200 OK
CSeq: 1
Content-Type: application/sdp
Content-Base: rtsp://1.00408CBEA38B/axis-media/media.amp/
Date: Tue, 02 Nov 2010 11:45:23 GMT
Content-Length: 410
v=0
o=- 1288698323798001 1288698323798001 IN IP4 1.00408CBEA38B
s=Media Presentation
e=NONE
c=IN IP4 0.0.0.0
b=AS:50000
t=0 0
a=control:*
a=range:npt=0.000000-
m=video 0 RTP/AVP 96
b=AS:50000
a=framerate:30.0
a=transform:1,0,0;0,1,0;0,0,1
a=control:trackID=1
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; profile-level-id=420029; sprop-parameter-sets=Z0IAKeNQFAe2AtwEBAaQeJEV,aM48gA==
RTSP/1.0 200 OK
CSeq: 2
Session: 3F4763D8; timeout=60
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=060922C6;mode="PLAY"
Date: Tue, 02 Nov 2010 11:45:24 GMT
RTSP/1.0 200 OK
CSeq: 3
Session: 3F4763D8
Range: npt=0-
RTP-Info: url=rtsp://1.00408CBEA38B/axis-media/media.amp/trackID=1;seq=7392;rtptime=4190934902
Date: Tue, 02 Nov 2010 11:45:24 GMT
[Binary Stream Content]
But when i copy this request to fiddler, I only get 200 status code with content-type set to application/x-rtsp-tunneled and there is no stream data. The only thing i do different with stream is to use Basic in authorization header instead of Digest and I do not get 401 (Un authorized) status code. Can anyone explain what's happening here? How can I write request sequences to get stream in fiddler? If it is needed, I can upload the wireshark request dump somewhere.