Page 1 of 1

S60 RealOnePlayer RTSP fails to connect to VLC (using VLM)

Posted: 13 Apr 2006 22:16
by miikka
I am trying to get VLC streaming to Nokia S60 mobile phones with no success. I have noticed that nobody has succeeded in that so far but let's try to fix this issue.

Here are excerpts from a mail exchange between me and a friend of mine working in Nokia on RealOnePlayer (ROP).

------------------
I have also tried PC RealPlayer and it fails with "General Error". Because both PC and Mobile phone players fail, they probably use the same engine. So debugging the error can possibly be done in PC in case you don't have a Nokia S60 3G mobile phone (6630 and 6680 should be able to stream the first QCIF sized video link and N70 and N90 should be able to stream the second CIF sized video link)

I tested the VLC server with other PC clients (VLC and Quicktime) and they worked. You can test links: rtsp://tuppurainen.name/test (H263, video-only, QCIF, 64kbps, 3GP file) or rtsp://tuppurainen.name/test4 (MPEG-4, AAC, CIF, 512kbps, MP4 file - recorded with N80)

command to execute the server:
vlc -vvv -I telnet --telnet-port xxxx --telnet-password xxxxxxxxxxx --rtsp-host 0.0.0.0:554 --vlm-conf vlm.config

vlm.config file:

new test vod enabled
setup test input /home/miikka/squeen.3gp

new test4 vod enabled
setup test4 input /home/miikka/31032006003.mp4

--------------

ROP failed at the setup UDP sockets for RTP and RTCP. ROP is expecting the server to give valid port numbers for RTP and RTCP. When streaming, there are two UDP sockets are created for one stream (so with audio + video case, ROP will have two pair of UDP sockets). One for RTP packets receiving (which is downlink traffic only), ROP can receive packets without knowing the server port for RTP. The other one is for RTCP traffic which is on both downlink and uplink. Therefore, ROP has to know the server's port where it can send its RTCP packets to.

In your log, I could see the port information is missing

[05:11:49.947661] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.139(303) Request: SETUP rtsp://0.0.0.0:554/test/trackid=0
[05:11:49.947664] sti: MCU_ASCII_PRINTF; channel:0xE0
[05:11:49.948320] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.144(303) x-wap-profile: "http://nds1.nds.nokia.com��"
[05:11:49.948324] sti: MCU_ASCII_PRINTF; channel:0xE0
[05:11:49.948927] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.144(303) Transport: RTP/AVP;unicast;client_port=8976-8977;mode=play
[05:11:49.948931] sti: MCU_ASCII_PRINTF; channel:0xE0
[05:11:49.949420] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.145(303) User-Agent: RealMedia Player/mc.30.11.03 (s60; epoc_av30_armv5)
[05:11:49.949424] sti: MCU_ASCII_PRINTF; channel:0xE0
[05:11:49.949832] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.145(303) CSeq: 3
[05:11:49.949836] sti: MCU_ASCII_PRINTF; channel:0xE0
[05:11:50.321581] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.517(303) Response: 200 OK
[05:11:50.321585] sti: MCU_ASCII_PRINTF; channel:0xE0
[05:11:50.322103] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.518(303) Transport: RTP/AVP/UDP;client_port=31638-31639
[05:11:50.322107] sti: MCU_ASCII_PRINTF; channel:0xE0
[05:11:50.322504] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.518(303) Server: VLC Server
[05:11:50.322508] sti: MCU_ASCII_PRINTF; channel:0xE0
[05:11:50.322915] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.518(303) Content-Length: 0
[05:11:50.322919] sti: MCU_ASCII_PRINTF; channel:0xE0
[05:11:50.323299] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.519(303) Cseq: 3
[05:11:50.323303] sti: MCU_ASCII_PRINTF; channel:0xE0
[05:11:50.323721] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.519(303) Cache-Control: no-cache
[05:11:50.323725] sti: MCU_ASCII_PRINTF; channel:0xE0
[05:11:50.324119] sti: MCU_ASCII_PRINTF; channel:0xE0; msg:01-Jan-06 12:12:24.520(303) Session: 424238335

Here is what we would see in a normal streaming case

Request: SETUP rtsp://xx.xxx.xxx.xx/eAACplus/aac/124Kbps44KHz.mp4/streamid=0
22-Mar-06 16:54:16.381(281) x-wap-profile: "http://nds1.nds.nokia.com…"
22-Mar-06 16:54:16.386(281) Transport: RTP/AVP;unicast;client_port=18228-18229;mode=play
22-Mar-06 16:54:16.391(281) RealChallenge2: 90990f6049a630fffc8e5134b2f82fc601d0a8e3, sd=9043f5b2
22-Mar-06 16:54:16.396(281) If-Match: 203294508-2
22-Mar-06 16:54:16.450(281) User-Agent: RealMedia Player/mc.26.07.01 (s60; epoc_av30_armv5) Pat060214
22-Mar-06 16:54:16.455(281) CSeq: 3
22-Mar-06 16:54:16.845(281) Response: 200 OK
22-Mar-06 16:54:16.851(281) CSeq: 3
22-Mar-06 16:54:16.856(281) Date: Wed, 22 Mar 2006 23:25:35 GMT
22-Mar-06 16:54:16.861(281) Session: 203294508-2;timeout=80
22-Mar-06 16:54:16.866(281) Reconnect: true
22-Mar-06 16:54:16.871(281) RDTFeatureLevel: 0
22-Mar-06 16:54:16.879(281) RealChallenge3: c5d368aedea2af6d68cb4a99d2dc5e4f4f213d09,sdr=c6da64d5
22-Mar-06 16:54:16.933(281) Transport: RTP/AVP;unicast;client_port=18228-18229;server_port=30310-30311

RTCP is used by the server as the feedback from the client of the network traffic. I guess the reason that other PC clients could do streaming is that they are implemented as RTCP is optional. Which means, if RTCP port is missing, then they can decide not to send RTCP back to the server. RTP (carrying the media data) is still working. However, ROP is designed as RTCP must be sent. This is why the streaming failed with ROP.

----------------

Here is the vlc log from PC RealPlayer:

RtspCallback query: type=7
RtspCallback query: type=8
HTTPD_MSG_SETUP: transport=RTP/AVP;unicast;client_port=6970-6971;mode=play,RTP/AVP/TCP;unicast;mode=play
HTTPD_MSG_SETUP: unicast ip=xx.xxx.xxx.xxx port=6970
[00000257] vod_rtsp private debug: new session: 1804289383
RtspCallback query: type=11
[00000257] vod_rtsp private debug: HTTPD_MSG_TEARDOWN for session: 1804289383
[00000257] vod_rtsp private debug: closing session: 1804289383

and here is a VLC log from 6680 streaming attempt:

RtspCallback query: type=7
RtspCallback query: type=8
HTTPD_MSG_SETUP: transport=RTP/AVP;unicast;client_port=7014-7015;mode=play
HTTPD_MSG_SETUP: unicast ip=85.156.13.100 port=7014
[00000257] vod_rtsp private debug: new session: 846930886


Could some VLC developer take a look why the server ports are not sent to the client? Feel free also to test the streaming links in the post if it helps to debug the error.

Posted: 30 Jun 2006 05:32
by movo9.com
hi, were you able to get this to work? I have the same problem, and I cannot even get VLC to play the rtsp. i got an error saying no suitable access module.

any help?

Posted: 30 Jun 2006 11:29
by miikka
No, I didn't get it to work. As a workaround I use Darwin Streaming Server (streaming) with VLC (transcoding content).

interesting

Posted: 04 Jul 2006 03:27
by guestcur

interesting

Posted: 04 Jul 2006 03:29
by guestcur

Re: S60 RealOnePlayer RTSP fails to connect to VLC (using VLM)

Posted: 30 May 2009 23:24
by no14
which one?