Page 1 of 1

RTSP Streaming - Unsupported Transport

Posted: 10 Sep 2009 20:58
by noknok
Ok, I have a question in regards to HOW VLC handles it IP acquisition for the RTP Stream in RTSP.

We have inserted our own RTSP relay in the middle of the RTSP signaling because unfortunately while NAT forwards packets just fine, the unfortunate part is the smarter phones (blackjack, blackberry, etc) actually look at the SDP response for the signaling, whereas phones like a simple Samsung I737 doesnt look at the control signaling in the SDP. VLC inserts the local Unroutable IP address space in the SDP of the DESCRIBE response, and then the phones can not reach the server because they attempt to connect to the LOCAL IP of say 192.168.2.205 for the SETUP/PLAY control. (as you see the 127.0.0.1 and the 192.168.2.205 IP's used in the control= segments of the SDP)

So since some phones parse the actual SDP for this data, we have a relay, which in essence re-writes the SDP and messaging between CLIENT and VLC.

SDP returned by VLC is:

Code: Select all

RTSP/1.0 200 OK Server: vlc 1.0.1 Date: Thu, 10 Sep 2009 18:33:33 GMT Content-Type: application/sdp Content-Base: rtsp://192.168.2.205:8081/mysdp.sdp Content-Length: 627 Cache-Control: no-cache Cseq: 0 v=0 o=- 14867443389876337316 14867443389876337316 IN IP4 sml-workstation s=Unnamed i=N/A c=IN IP4 127.0.0.1 t=0 0 a=tool:vlc 1.0.1 a=recvonly a=type:broadcast a=charset:UTF-8 a=control:rtsp://192.168.2.205:8081/mysdp.sdp m=audio 8084 RTP/AVP 96 b=AS:48 b=RR:0 a=rtpmap:96 mpeg4-generic/48000 a=fmtp:96 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=1188; SizeLength=13; IndexLength=3; IndexDeltaLength=3; Profile=1; a=control:rtsp://192.168.2.205:8081/mysdp.sdp/trackID=0 m=video 8082 RTP/AVP 97 b=AS:384 b=RR:0 a=rtpmap:97 H263-1998/90000 a=control:rtsp://192.168.2.205:8081/mysdp.sdp/trackID=1

Now when werun this thru the RELAY, we insert a "client_ip=x.x.x.x" in the transport line, so VLC will stream to the client and not our relay. But VLC rejects the message with unsupported transport. Any insight?

Here is the request and response, once run thru our RTSP relay:

SETUP rtsp://192.168.2.205:8081/mysdp.sdp/trackID=0 RTSP/1.0
CSeq: 1
Transport: RTP/AVP;unicast;client_ip=32.160.195.209;client_port=8084-8085
Blocksize: 1400
User-Network: Qualcomm
DeviceInfo: MSM6XX0
Supported: method.eos, com.pv.server_playlist
User-Agent: SAMSUNG-SGH-A737/UCHD2 SHP/VPP/R5 NetFront/3.4 SMM-MMS/1.2.0 profile/MIDP-2.0 configuration/CLDC-1.1

RTSP/1.0 461 Unsupported transport
Server: vlc 1.0.1
Date: Thu, 10 Sep 2009 18:33:35 GMT
Content-Length: 0
Cache-Control: no-cache
Cseq: 1

Shawn

Re: RTSP Streaming - Unsupported Transport

Posted: 11 Sep 2009 18:02
by noknok
Well, I did some more research. The LIVE555 stack does not support the ability to stream to an assigned IP different than the source of the signaling. This was by choice on their part for security reasons (DOS attacks etc)

Anyway, coded a RTSP proxy daemon last night, and all works perfect for streaming RTSP to cell phones from behind a NAT.

All is perfect, except for the bug of no FPS transcoding on the streams (20 FPS input, and want 7 FPS output).

Maybe that bug can be looked at put in the next release?

Shawn

Re: RTSP Streaming - Unsupported Transport

Posted: 10 Aug 2010 05:31
by de_prince
Hi Shawn,

Can you give me hints on how to stream to by pass firewall with your methods? The Client is Nokia E63 (S60)

Thanks a bunch.

Re: RTSP Streaming - Unsupported Transport

Posted: 10 Aug 2010 22:57
by simon272
2 noknok: can you post parameters you use to stream video to mobile devices through Internet?

Kind regards!

Re: RTSP Streaming - Unsupported Transport

Posted: 05 Nov 2010 17:57
by DuMONChIK
...can you post parameters you use to stream video to mobile devices through Internet?
vlc -vv video-file.avi --sout="#transcode{vcodec=h264,venc=x264{keyint=5,profile=baseline,level=1.1},vb=300,width=320,height=240,fps=25,acodec=mp4a,ab=192,channels=2}:rtp{mp4a-latm,sdp=rtsp://0.0.0.0:8888/video.sdp}"

Tested on Nokia C6-00 and on Nokia N97.

Re: RTSP Streaming - Unsupported Transport

Posted: 12 Nov 2010 21:53
by jlundy82
noknok:

Is there anyway you (or anyone reading this) could explain how your daemon works? In particular, I think a lot of people are looking for a way to get RTSP working from behind a router. If I understand correctly, the code you wrote can intercept the RTSP headers and alter them to have a different IP address?