1
votes

I am currently working on video streaming via RTSP/UDP for Android devices. My goal is to stream a video over a 4G cellular network. The problem I am facing is that the method used does not work with the Samsung Galaxy Core SM-G386F.

Below is a summary of the method and a log file. I would like to know if there is any apparent mistake I am making or basically it is not supported for said device.


SERVER SIDE

Streaming servers:

  • Live555MediaServer

live555MediaServer

source: http://www.live555.com/liveMedia/

  • VideoLAN / VLC

vlc -vvv Jellyfish-3-Mbps.mkv --sout '#rtp{sdp=rtsp://0.0.0.0:5555/test.sdp}'

source: http://www.videolan.org/vlc/download-debian.html

Video test files:

  • Jellyfish Video Bitrate Test Files

    ex: Jellyfish-3-Mbps.mkv - 60s, 3 Mbps AVG Bitrate, 21 MB

    source: http://jell.yfish.us/


CLIENT SIDE

String url = "rtsp://IP_ADDR:8554/Jellyfish-3-Mbps.mkv"; // Live555MediaServer
String url = "rtsp://IP_ADDR:5555/test.sdp"; // VLC

Player.java (Method 1)

VideoView v1 = (VideoView) findViewById(R.id.videoView1);
v1.setVideoURI(Uri.parse(url));
v1.requestFocus();
v1.start();

Player.java (Method 2) - UDP TEST

MediaPlayer mp = new MediaPlayer();
try {
    mp.setDataSource(url);
    mp.prepareAsync();
    mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mp) {
            Log.d(TAG, "START STREAM");
            mp.start();
        }
    });
} catch (IOException e) {
    Log.d(TAG, "ERROR: " + e);
} catch (Exception e) {
    Log.d(TAG, "ERROR: " + e);
}

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Both methods (VideoView & MediaPlayer) and media servers (Live555MediaServer and VLC) work fine on the following android devices:

  • Samsung Galaxy S4 (Android 4.3)
  • Samsung Galaxy S5 (Android 4.4.2)
  • Samsung Galaxy Note 3 (Android 4.4.2)

The problem appears on the Android Galaxy Core SM-G386F (Android 4.2). It can play stream from Live555MediaServer by using both methods, but it cannot play the stream from VLC.

Full logcats: GALAXY_CORE_VLC, GALAXY_CORE_LIVE555

Logcat from Android Galaxy Core SM-G386F for VLC streaming media by using Method 1. It requests for RTP/AVP/UDP but id does not receive UPD packets.

06-18 12:01:21.907: V/NuPlayer(5575): scanning sources haveAudio=0, haveVideo=0
06-18 12:01:21.938: I/ARTSPConnection(5575): status: RTSP/1.0 461 Unsupported transport
06-18 12:01:21.938: V/ARTSPConnection(5575): line: Server: VLC/2.0.3
06-18 12:01:21.938: V/ARTSPConnection(5575): line: Date: Wed, 18 Jun 2014 10:01:23 GMT
06-18 12:01:21.938: V/ARTSPConnection(5575): line: Content-Length: 0
06-18 12:01:21.938: V/ARTSPConnection(5575): line: Cache-Control: no-cache
06-18 12:01:21.938: V/ARTSPConnection(5575): line: Cseq: 7
06-18 12:01:21.938: I/MyHandler(5575): SETUP(1) completed with result 0 (Success)
06-18 12:01:21.938: E/MyHandler(5575): Server responses [461] ERROR for the SETUP request
06-18 12:01:21.938: W/APacketSource(5575): Format:video 0 RTP/AVP 96  / MIME-Type:H264/90000
06-18 12:01:21.938: I/APacketSource(5575): dimensions 1280x720
06-18 12:01:21.938: W/ASessionDescription(5575): system prop 3gpp-ra option is not found
06-18 12:01:21.938: V/ARTSPConnection(5575): request: 'SETUP rtsp://IP_ADDR:5555/test.sdp/trackID=1 RTSP/1.0
06-18 12:01:21.938: V/ARTSPConnection(5575): Transport: RTP/AVP/TCP;unicast;interleaved=0-1
06-18 12:01:21.938: V/ARTSPConnection(5575): Session: 5729006ad01e3b2d
06-18 12:01:21.938: V/ARTSPConnection(5575): Blocksize: 1400
06-18 12:01:21.938: V/ARTSPConnection(5575): User-Agent: Samsung SM-G386F stagefright/Beyonce/1.1.9 (Linux;Android 4.2.2)
06-18 12:01:21.938: V/ARTSPConnection(5575): x-wap-profile: http://wap.samsungmobile.com/uaprof/SM-G386F.xml
06-18 12:01:21.938: V/ARTSPConnection(5575): CSeq: 8
06-18 12:01:21.938: V/ARTSPConnection(5575): 
06-18 12:01:21.938: V/ARTSPConnection(5575): '
06-18 12:01:22.001: I/ARTSPConnection(5575): status: RTSP/1.0 461 Unsupported transport
06-18 12:01:22.001: V/ARTSPConnection(5575): line: Server: VLC/2.0.3
06-18 12:01:22.009: V/ARTSPConnection(5575): line: Date: Wed, 18 Jun 2014 10:01:23 GMT
06-18 12:01:22.009: V/ARTSPConnection(5575): line: Session: 5729006ad01e3b2d;timeout=60
06-18 12:01:22.009: V/ARTSPConnection(5575): line: Content-Length: 0
06-18 12:01:22.009: V/ARTSPConnection(5575): line: Cache-Control: no-cache
06-18 12:01:22.009: V/ARTSPConnection(5575): line: Cseq: 8
06-18 12:01:22.009: I/MyHandler(5575): SETUP(2) completed with result 0 (Success)
06-18 12:01:22.009: E/MyHandler(5575): Server responses [461] ERROR for the SETUP request
06-18 12:01:22.009: V/NuPlayer(5575): scanning sources haveAudio=0, haveVideo=0
06-18 12:01:22.009: W/ARTSPConnection(5575): onReceiveResponse >>> State is not CONNECTED !!!
06-18 12:01:22.009: W/ALooperRoster(5575): failed to post message. Target handler 113 still registered, but object gone.
06-18 12:01:22.048: I/Monitor(1888): SIOP:: Current AP = 370, CP = 0, PST = 365
06-18 12:01:22.110: V/NuPlayer(5575): scanning sources haveAudio=0, haveVideo=0
06-18 12:01:22.110: V/MediaPlayerService(5575): [20] notify (0x40a12880, 100, 1, -2147483648)
06-18 12:01:22.110: V/MediaPlayer(7888): message received msg=100, ext1=1, ext2=-2147483648
06-18 12:01:22.110: E/MediaPlayer(7888): error (1, -2147483648)
06-18 12:01:22.110: V/MediaPlayer(7888): callback application
06-18 12:01:22.110: V/MediaPlayer(7888): back from callback
06-18 12:01:22.110: E/MediaPlayer(7888): Error (1,-2147483648)
06-18 12:01:22.110: D/VideoView(7888): Error: 1,-2147483648
  • All devices can play this test video (tested by playing video from device' memory)
  • All devices can play stream (RTSP/UDP) from Live555MediaServer by using WIFI/4G
  • All devices can play stream (RTSP/UDP) from VLC by using WIFI
  • Only one device cannot play stream (RTSP/UPD) from VLC by using 4G (VLC detects connected device)
  • I have tried different ports

UPDATE

Samsung Galaxy S4

Logcat for VLC

06-19 09:43:16.313: V/ARTSPConnection(211): request: 'OPTIONS rtsp://IP_ADDR:5555/test.sdp RTSP/1.0
06-19 09:43:16.313: V/ARTSPConnection(211): User-Agent: User-Agent: Samsung GT-I9505 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
06-19 09:43:16.313: V/ARTSPConnection(211): x-wap-profile: http://wap.samsungmobile.com/uaprof/GT-I9505.xml
06-19 09:43:16.313: V/ARTSPConnection(211): CSeq: 0
06-19 09:43:16.313: V/ARTSPConnection(211): 
06-19 09:43:16.313: V/ARTSPConnection(211): '
06-19 09:43:16.313: W/ARTSPConnection(211): User-Agent: User-Agent: Samsung GT-I9505 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
06-19 09:43:16.313: V/ARTSPConnection(211): request: 'DESCRIBE rtsp://IP_ADDR:5555/test.sdp RTSP/1.0
06-19 09:43:16.313: V/ARTSPConnection(211): Accept: application/sdp
06-19 09:43:16.313: V/ARTSPConnection(211): User-Agent: User-Agent: Samsung GT-I9505 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
06-19 09:43:16.313: V/ARTSPConnection(211): x-wap-profile: http://wap.samsungmobile.com/uaprof/GT-I9505.xml
06-19 09:43:16.313: V/ARTSPConnection(211): CSeq: 1
06-19 09:43:16.313: V/ARTSPConnection(211): 
06-19 09:43:16.313: V/ARTSPConnection(211): '
06-19 09:43:16.363: E/MP-Decision(1772): num online cores: 3 reqd : 2 available : 4 rq_depth:0.600000 hotplug_avg_load_dw: 96
06-19 09:43:16.363: E/MP-Decision(1772): DOWN cpu:2 core_idx:2 Ns:2.100000 Ts:240 total_time_down:245.000000
06-19 09:43:16.373: I/SurfaceFlinger(204): id=25 Removed uool (5/6)
06-19 09:43:16.373: I/SurfaceFlinger(204): id=25 Removed uool (-2/6)
06-19 09:43:16.383: I/ARTSPConnection(211): status: RTSP/1.0 200 OK
06-19 09:43:16.383: V/ARTSPConnection(211): line: Server: VLC/2.0.3
06-19 09:43:16.383: V/ARTSPConnection(211): line: Content-Length: 0
06-19 09:43:16.383: V/ARTSPConnection(211): line: Cseq: 0
06-19 09:43:16.383: V/ARTSPConnection(211): line: Public: DESCRIBE,SETUP,TEARDOWN,PLAY,PAUSE,GET_PARAMETER
06-19 09:43:16.423: D/STATUSBAR-NetworkController(1043): onSignalStrengthsChanged signalStrength=SignalStrength: 99 -1 -1 -1 -1 -1 -1 18 -104 -10 60 -1 2147483647 gsm|lte 0x1 level=1
06-19 09:43:16.433: I/ARTSPConnection(211): status: RTSP/1.0 200 OK
06-19 09:43:16.433: V/ARTSPConnection(211): line: Server: VLC/2.0.3
06-19 09:43:16.433: V/ARTSPConnection(211): line: Date: Thu, 19 Jun 2014 07:43:17 GMT
06-19 09:43:16.433: V/ARTSPConnection(211): line: Content-Type: application/sdp
06-19 09:43:16.433: V/ARTSPConnection(211): line: Content-Base: rtsp://IP_ADDR:5555/test.sdp
06-19 09:43:16.433: V/ARTSPConnection(211): line: Content-Length: 470
06-19 09:43:16.433: V/ARTSPConnection(211): line: Cache-Control: no-cache
06-19 09:43:16.433: V/ARTSPConnection(211): line: Cseq: 1
06-19 09:43:16.473: I/MyHandler(211): DESCRIBE completed with result 0 (Success)
06-19 09:43:16.473: I/ASessionDescription(211): v=0
06-19 09:43:16.473: I/ASessionDescription(211): o=- 15514077275532980588 15514077275532980588 IN IP4 e82-103-128-145s
06-19 09:43:16.473: I/ASessionDescription(211): s=Unnamed
06-19 09:43:16.473: I/ASessionDescription(211): i=N/A
06-19 09:43:16.473: I/ASessionDescription(211): c=IN IP4 0.0.0.0
06-19 09:43:16.473: I/ASessionDescription(211): t=0 0
06-19 09:43:16.473: I/ASessionDescription(211): a=tool:vlc 2.0.3
06-19 09:43:16.473: I/ASessionDescription(211): a=recvonly
06-19 09:43:16.473: I/ASessionDescription(211): a=type:broadcast
06-19 09:43:16.473: I/ASessionDescription(211): a=charset:UTF-8
06-19 09:43:16.473: I/ASessionDescription(211): a=control:rtsp://IP_ADDR:5555/test.sdp
06-19 09:43:16.473: I/ASessionDescription(211): m=video 0 RTP/AVP 96
06-19 09:43:16.473: I/ASessionDescription(211): b=RR:0
06-19 09:43:16.473: I/ASessionDescription(211): a=rtpmap:96 H264/90000
06-19 09:43:16.473: I/ASessionDescription(211): a=fmtp:96 packetization-mode=1;profile-level-id=640028;sprop-parameter-sets=Z2QAKKwspAHgCJ+XAVICAgKAAAH0gABdwE7QsWiQ,aOtzUlA=;
06-19 09:43:16.473: I/ASessionDescription(211): a=control:rtsp://IP_ADDR:5555/test.sdp/trackID=0
06-19 09:43:16.473: W/MyHandler(211): Server: VLC/2.0.3
06-19 09:43:16.473: W/MyHandler(211): mBaseURL is change to rtsp://IP_ADDR:5555/test.sdp from 'content-base'
06-19 09:43:16.473: W/MyHandler(211): Property [net.connectivity.qosbw] NOT Found, bwQoS=2147483647
06-19 09:43:16.473: W/APacketSource(211): Format:video 0 RTP/AVP 96  / MIME-Type:H264/90000
06-19 09:43:16.473: I/APacketSource(211): dimensions 1920x1080
06-19 09:43:16.473: I/ARTPConnection(211): Start:16202
06-19 09:43:16.483: W/ASessionDescription(211): system prop 3gpp-ra option is not found
06-19 09:43:16.483: V/ARTSPConnection(211): request: 'SETUP rtsp://IP_ADDR:5555/test.sdp/trackID=0 RTSP/1.0
06-19 09:43:16.483: V/ARTSPConnection(211): Transport: RTP/AVP/UDP;unicast;client_port=16202-16203
06-19 09:43:16.483: V/ARTSPConnection(211): Blocksize: 1400
06-19 09:43:16.483: V/ARTSPConnection(211): User-Agent: User-Agent: Samsung GT-I9505 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
06-19 09:43:16.483: V/ARTSPConnection(211): x-wap-profile: http://wap.samsungmobile.com/uaprof/GT-I9505.xml
06-19 09:43:16.483: V/ARTSPConnection(211): CSeq: 2
06-19 09:43:16.483: V/ARTSPConnection(211): 
06-19 09:43:16.483: V/ARTSPConnection(211): '
06-19 09:43:16.514: E/MP-Decision(1772): num online cores: 2 reqd : 1 available : 4 rq_depth:0.400000 hotplug_avg_load_dw: 24
06-19 09:43:16.514: E/MP-Decision(1772): DOWN cpu:1 core_idx:1 Ns:1.100000 Ts:190 total_time_down:241.000000
06-19 09:43:16.554: I/ARTSPConnection(211): status: RTSP/1.0 200 OK
06-19 09:43:16.554: V/ARTSPConnection(211): line: Server: VLC/2.0.3
06-19 09:43:16.554: V/ARTSPConnection(211): line: Date: Thu, 19 Jun 2014 07:43:17 GMT
06-19 09:43:16.554: V/ARTSPConnection(211): line: Transport: RTP/AVP/UDP;unicast;client_port=16202-16203;server_port=38931-38932;ssrc=0A126FFE;mode=play
06-19 09:43:16.564: V/ARTSPConnection(211): line: Session: 6aeb4991d8fe19c4;timeout=60
06-19 09:43:16.564: V/ARTSPConnection(211): line: Content-Length: 0
06-19 09:43:16.564: V/ARTSPConnection(211): line: Cache-Control: no-cache
06-19 09:43:16.564: V/ARTSPConnection(211): line: Cseq: 2
06-19 09:43:16.564: I/MyHandler(211): SETUP(1) completed with result 0 (Success)
06-19 09:43:16.564: I/MyHandler(211): server specified timeout of 60 secs.
06-19 09:43:16.564: W/MyHandler(211): Missing 'source' field in Transport response. Using RTSP endpoint address.
06-19 09:43:16.564: W/MyHandler(211): Server picked an odd RTP port, it should've picked an even one, we'll let it pass for now, but this may break in the future.
06-19 09:43:16.564: W/MyHandler(211): successfully poked holes (Server IP : IP_ADDR, rtp port : 38931, rtcp port : 38932)
06-19 09:43:16.564: V/ARTSPConnection(211): request: 'PLAY rtsp://IP_ADDR:5555/test.sdp RTSP/1.0
06-19 09:43:16.564: V/ARTSPConnection(211): Session: 6aeb4991d8fe19c4
06-19 09:43:16.564: V/ARTSPConnection(211): Range: npt=0.000-
06-19 09:43:16.564: V/ARTSPConnection(211): User-Agent: User-Agent: Samsung GT-I9505 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
06-19 09:43:16.564: V/ARTSPConnection(211): x-wap-profile: http://wap.samsungmobile.com/uaprof/GT-I9505.xml
06-19 09:43:16.564: V/ARTSPConnection(211): CSeq: 3
06-19 09:43:16.564: V/ARTSPConnection(211): 
06-19 09:43:16.564: V/ARTSPConnection(211): '
06-19 09:43:16.584: I/power(710): *** release_dvfs_lock : lockType : 1 
06-19 09:43:16.584: D/SSRMv2:CustomFrequencyManagerService(710): releaseDVFSLockLocked : Getting Lock type frm List : DVFS_MIN_LIMIT  frequency : 1350000  uid : 1000  pid : 710  tag : ACTIVITY_RESUME_BOOSTER@9
06-19 09:43:16.644: I/ARTPSource(211): Format: video 0 RTP/AVP 96 / MIME-Type: H264/90000
06-19 09:43:16.644: I/ARTPSource(211): Added the first buff with seq:59548 to Q
06-19 09:43:16.644: I/ARTSPConnection(211): status: RTSP/1.0 200 OK
06-19 09:43:16.644: V/ARTSPConnection(211): line: Server: VLC/2.0.3
06-19 09:43:16.644: V/ARTSPConnection(211): line: Date: Thu, 19 Jun 2014 07:43:17 GMT
06-19 09:43:16.654: V/ARTSPConnection(211): line: RTP-Info: url=rtsp://IP_ADDR:5555/test.sdp/trackID=0;seq=59548;rtptime=3173115976
06-19 09:43:16.654: V/ARTSPConnection(211): line: Range: npt=4.038456-
06-19 09:43:16.654: V/ARTSPConnection(211): line: Session: 6aeb4991d8fe19c4;timeout=60
06-19 09:43:16.654: V/ARTSPConnection(211): line: Content-Length: 0
06-19 09:43:16.654: V/ARTSPConnection(211): line: Cache-Control: no-cache
06-19 09:43:16.664: V/ARTSPConnection(211): line: Cseq: 3
06-19 09:43:16.664: I/MyHandler(211): PLAY completed with result 0 (Success)
06-19 09:43:16.664: W/MyHandler(211): set mInitialSeqNum to 59548 - by RTP-Info
06-19 09:43:16.664: W/MyHandler(211): postNormalPlayTimeMapping at 'accu' [3173115976, 4038455]
06-19 09:43:16.664: I/MyHandler(211): Time now established for all tracks.
06-19 09:43:16.664: I/MyHandler(211): PLAY CASE: posting postOnDemandAUBufferRequest for the first time
06-19 09:43:16.724: E/MyHandler(211): first segment unit rtpTime=3173115976 seq=59548
06-19 09:43:16.724: E/MyHandler(211): video only mode : disable buffering
06-19 09:43:16.724: V/MediaPlayerService(211): [8] notify (0xb74eb070, 1, 0, 0)
06-19 09:43:16.724: V/MediaPlayer(6653): message received msg=1, ext1=0, ext2=0
06-19 09:43:16.724: V/MediaPlayer(6653): prepared
06-19 09:43:16.724: V/MediaPlayer(6653): callback application
06-19 09:43:16.734: D/MediaPlayer(6653): getMetadata
06-19 09:43:16.734: V/MediaPlayer(6653): back from callback
06-19 09:43:16.744: V/MediaPlayer(6653): getVideoWidth
06-19 09:43:16.744: V/MediaPlayer-JNI(6653): getVideoWidth: 0
06-19 09:43:16.744: V/MediaPlayer(6653): getVideoHeight
06-19 09:43:16.744: V/MediaPlayer-JNI(6653): getVideoHeight: 0
06-19 09:43:16.744: V/MediaPlayer-JNI(6653): start
06-19 09:43:16.744: V/MediaPlayer(6653): start

Logcat for Live555MediaServer

06-19 09:48:56.245: V/ARTSPConnection(211): request: 'OPTIONS rtsp://IP_ADDR:8554/Jellyfish-3-Mbps.mkv RTSP/1.0
06-19 09:48:56.245: V/ARTSPConnection(211): User-Agent: User-Agent: Samsung GT-I9505 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
06-19 09:48:56.245: V/ARTSPConnection(211): x-wap-profile: http://wap.samsungmobile.com/uaprof/GT-I9505.xml
06-19 09:48:56.245: V/ARTSPConnection(211): CSeq: 0
06-19 09:48:56.245: V/ARTSPConnection(211): 
06-19 09:48:56.245: V/ARTSPConnection(211): '
06-19 09:48:56.245: W/ARTSPConnection(211): User-Agent: User-Agent: Samsung GT-I9505 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
06-19 09:48:56.245: V/ARTSPConnection(211): request: 'DESCRIBE rtsp://IP_ADDR:8554/Jellyfish-3-Mbps.mkv RTSP/1.0
06-19 09:48:56.245: V/ARTSPConnection(211): Accept: application/sdp
06-19 09:48:56.245: V/ARTSPConnection(211): User-Agent: User-Agent: Samsung GT-I9505 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
06-19 09:48:56.245: V/ARTSPConnection(211): x-wap-profile: http://wap.samsungmobile.com/uaprof/GT-I9505.xml
06-19 09:48:56.245: V/ARTSPConnection(211): CSeq: 1
06-19 09:48:56.245: V/ARTSPConnection(211): 
06-19 09:48:56.245: V/ARTSPConnection(211): '
06-19 09:48:56.275: E/MP-Decision(1772): num online cores: 3 reqd : 2 available : 4 rq_depth:0.000000 hotplug_avg_load_dw: 79
06-19 09:48:56.275: E/MP-Decision(1772): DOWN cpu:2 core_idx:2 Ns:2.100000 Ts:240 total_time_down:245.000000
06-19 09:48:56.295: I/ARTSPConnection(211): status: RTSP/1.0 200 OK
06-19 09:48:56.295: V/ARTSPConnection(211): line: CSeq: 0
06-19 09:48:56.295: V/ARTSPConnection(211): line: Date: Thu, Jun 19 2014 07:48:57 GMT
06-19 09:48:56.295: V/ARTSPConnection(211): line: Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER
06-19 09:48:56.315: I/SurfaceFlinger(204): id=35 Removed uool (5/6)
06-19 09:48:56.315: I/SurfaceFlinger(204): id=35 Removed uool (-2/6)
06-19 09:48:56.345: I/ARTSPConnection(211): status: RTSP/1.0 200 OK
06-19 09:48:56.345: V/ARTSPConnection(211): line: CSeq: 1
06-19 09:48:56.345: V/ARTSPConnection(211): line: Date: Thu, Jun 19 2014 07:48:57 GMT
06-19 09:48:56.345: V/ARTSPConnection(211): line: Content-Base: rtsp://IP_ADDR:8554/Jellyfish-3-Mbps.mkv/
06-19 09:48:56.345: V/ARTSPConnection(211): line: Content-Type: application/sdp
06-19 09:48:56.345: V/ARTSPConnection(211): line: Content-Length: 614
06-19 09:48:56.345: I/MyHandler(211): DESCRIBE completed with result 0 (Success)
06-19 09:48:56.345: I/ASessionDescription(211): v=0
06-19 09:48:56.345: I/ASessionDescription(211): o=- 1403164137695186 1 IN IP4 IP_ADDR
06-19 09:48:56.345: I/ASessionDescription(211): s=Matroska video+audio+(optional)subtitles, streamed by the LIVE555 Media Server
06-19 09:48:56.345: I/ASessionDescription(211): i=Jellyfish-3-Mbps.mkv
06-19 09:48:56.345: I/ASessionDescription(211): t=0 0
06-19 09:48:56.345: I/ASessionDescription(211): a=tool:LIVE555 Streaming Media v2014.03.25
06-19 09:48:56.345: I/ASessionDescription(211): a=type:broadcast
06-19 09:48:56.345: I/ASessionDescription(211): a=control:*
06-19 09:48:56.345: I/ASessionDescription(211): a=range:npt=0-59.977
06-19 09:48:56.345: I/ASessionDescription(211): a=x-qt-text-nam:Matroska video+audio+(optional)subtitles, streamed by the LIVE555 Media Server
06-19 09:48:56.345: I/ASessionDescription(211): a=x-qt-text-inf:Jellyfish-3-Mbps.mkv
06-19 09:48:56.345: I/ASessionDescription(211): m=video 0 RTP/AVP 96
06-19 09:48:56.345: I/ASessionDescription(211): c=IN IP4 0.0.0.0
06-19 09:48:56.345: I/ASessionDescription(211): b=AS:500
06-19 09:48:56.345: I/ASessionDescription(211): a=rtpmap:96 H264/90000
06-19 09:48:56.345: I/ASessionDescription(211): a=fmtp:96 packetization-mode=1;profile-level-id=640028;sprop-parameter-sets=Z2QAKKwspAHgCJ+XAVICAgKAAAH0gABdwE7QsWiQ,aOtzUlA=
06-19 09:48:56.345: I/ASessionDescription(211): a=control:track1
06-19 09:48:56.345: W/MyHandler(211): mBaseURL is change to rtsp://IP_ADDR:8554/Jellyfish-3-Mbps.mkv/ from 'content-base'
06-19 09:48:56.345: W/MyHandler(211): Property [net.connectivity.qosbw] NOT Found, bwQoS=2147483647
06-19 09:48:56.345: W/APacketSource(211): Format:video 0 RTP/AVP 96  / MIME-Type:H264/90000
06-19 09:48:56.345: I/APacketSource(211): dimensions 1920x1080
06-19 09:48:56.345: I/ARTPConnection(211): Start:16130
06-19 09:48:56.345: W/ASessionDescription(211): system prop 3gpp-ra option is not found
06-19 09:48:56.345: V/ARTSPConnection(211): request: 'SETUP rtsp://IP_ADDR:8554/Jellyfish-3-Mbps.mkv/track1 RTSP/1.0
06-19 09:48:56.345: V/ARTSPConnection(211): Transport: RTP/AVP/UDP;unicast;client_port=16130-16131
06-19 09:48:56.345: V/ARTSPConnection(211): Blocksize: 1400
06-19 09:48:56.345: V/ARTSPConnection(211): User-Agent: User-Agent: Samsung GT-I9505 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
06-19 09:48:56.345: V/ARTSPConnection(211): x-wap-profile: http://wap.samsungmobile.com/uaprof/GT-I9505.xml
06-19 09:48:56.345: V/ARTSPConnection(211): CSeq: 2
06-19 09:48:56.345: V/ARTSPConnection(211): 
06-19 09:48:56.345: V/ARTSPConnection(211): '
06-19 09:48:56.395: I/ARTSPConnection(211): status: RTSP/1.0 200 OK
06-19 09:48:56.395: V/ARTSPConnection(211): line: CSeq: 2
06-19 09:48:56.395: V/ARTSPConnection(211): line: Date: Thu, Jun 19 2014 07:48:57 GMT
06-19 09:48:56.395: V/ARTSPConnection(211): line: Transport: RTP/AVP;unicast;destination=2.128.61.4;source=IP_ADDR;client_port=16130-16131;server_port=6970-6971
06-19 09:48:56.395: V/ARTSPConnection(211): line: Session: 41241BFD;timeout=65
06-19 09:48:56.395: I/MyHandler(211): SETUP(1) completed with result 0 (Success)
06-19 09:48:56.395: I/MyHandler(211): server specified timeout of 65 secs.
06-19 09:48:56.395: W/MyHandler(211): successfully poked holes (Server IP : IP_ADDR, rtp port : 6970, rtcp port : 6971)
06-19 09:48:56.405: V/ARTSPConnection(211): request: 'PLAY rtsp://IP_ADDR:8554/Jellyfish-3-Mbps.mkv RTSP/1.0
06-19 09:48:56.405: V/ARTSPConnection(211): Session: 41241BFD
06-19 09:48:56.405: V/ARTSPConnection(211): Range: npt=0.000-59.977001
06-19 09:48:56.405: V/ARTSPConnection(211): User-Agent: User-Agent: Samsung GT-I9505 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
06-19 09:48:56.405: V/ARTSPConnection(211): x-wap-profile: http://wap.samsungmobile.com/uaprof/GT-I9505.xml
06-19 09:48:56.405: V/ARTSPConnection(211): CSeq: 3
06-19 09:48:56.405: V/ARTSPConnection(211): 
06-19 09:48:56.405: V/ARTSPConnection(211): '
06-19 09:48:56.465: I/ARTSPConnection(211): status: RTSP/1.0 200 OK
06-19 09:48:56.465: I/ARTPSource(211): Format: video 0 RTP/AVP 96 / MIME-Type: H264/90000
06-19 09:48:56.465: V/ARTSPConnection(211): line: CSeq: 3
06-19 09:48:56.465: V/ARTSPConnection(211): line: Date: Thu, Jun 19 2014 07:48:57 GMT
06-19 09:48:56.465: V/ARTSPConnection(211): line: Range: npt=0.000-59.977
06-19 09:48:56.465: V/ARTSPConnection(211): line: Session: 41241BFD
06-19 09:48:56.465: V/ARTSPConnection(211): line: RTP-Info: url=rtsp://IP_ADDR:8554/Jellyfish-3-Mbps.mkv/track1;seq=2003;rtptime=1125446341
06-19 09:48:56.465: I/MyHandler(211): PLAY completed with result 0 (Success)
06-19 09:48:56.465: W/MyHandler(211): set mInitialSeqNum to 2003 - by RTP-Info
06-19 09:48:56.465: W/MyHandler(211): postNormalPlayTimeMapping at 'accu' [1125446341, 0]
06-19 09:48:56.465: I/MyHandler(211): Time now established for all tracks.
06-19 09:48:56.465: I/MyHandler(211): PLAY CASE: posting postOnDemandAUBufferRequest for the first time
06-19 09:48:56.465: I/ARTPSource(211): Added the first buff with seq:2003 to Q
06-19 09:48:56.465: I/power(710): *** release_dvfs_lock : lockType : 1 
06-19 09:48:56.465: D/SSRMv2:CustomFrequencyManagerService(710): releaseDVFSLockLocked : Getting Lock type frm List : DVFS_MIN_LIMIT  frequency : 1350000  uid : 1000  pid : 710  tag : ACTIVITY_RESUME_BOOSTER@9
06-19 09:48:56.535: E/MP-Decision(1772): num online cores: 2 reqd : 1 available : 4 rq_depth:0.000000 hotplug_avg_load_dw: 20
06-19 09:48:56.535: E/MP-Decision(1772): DOWN cpu:1 core_idx:1 Ns:1.100000 Ts:190 total_time_down:206.000000
06-19 09:48:56.555: E/MyHandler(211): first segment unit rtpTime=1125446341 seq=2003
06-19 09:48:56.555: E/MyHandler(211): video only mode : disable buffering
06-19 09:48:56.565: V/MediaPlayerService(211): [10] notify (0xb74eb070, 1, 0, 0)
06-19 09:48:56.565: V/MediaPlayer(6975): message received msg=1, ext1=0, ext2=0
06-19 09:48:56.565: V/MediaPlayer(6975): prepared
06-19 09:48:56.565: V/MediaPlayer(6975): callback application
06-19 09:48:56.565: V/MediaPlayer(6975): back from callback
06-19 09:48:56.575: D/MediaPlayer(6975): getMetadata
06-19 09:48:56.575: V/MediaPlayer(6975): getVideoWidth
06-19 09:48:56.575: V/MediaPlayer-JNI(6975): getVideoWidth: 0
06-19 09:48:56.575: V/MediaPlayer(6975): getVideoHeight
06-19 09:48:56.575: V/MediaPlayer-JNI(6975): getVideoHeight: 0
06-19 09:48:56.575: V/MediaPlayer-JNI(6975): start
06-19 09:48:56.575: V/MediaPlayer(6975): start
1

1 Answers

2
votes

You are not requesting RTP/UDP in your pasted session:

SETUP rtsp://IP_ADDR:5555/test.sdp/trackID=1 RTSP/1.0 Transport: RTP/AVP/TCP;unicast;interleaved=0-1

This attempts to setup up an RTP over RTSP/TCP session. Since VLC does not support this transport it responds with a 461. This coincides with what I remember, namely that VLC has not implemented this transport yet. Live555 RTSP servers however do support this option, but I suspect that even in that case, you were actually streaming RTP over RTSP/TCP.

I would suggest looking for an application option to select the transport.

One possibility could be that your LTE service provider is blocking UDP packets. Are you using the same LTE service provider for all mobile devices?

From looking at your logs, your RTSP client automatically switches transport once no data is received within a certain time frame. In the case where you are testing against a live555 server, this would result in you successfully receiving the stream even when UDP is blocked. Therefore you are always able to receive from live555, and only over WIFI when streaming from VLC since VLC does not support the interleaved transport. You can test this by writing a simple UDP application.

Other things to check are to examine the logs of the other mobile devices in detail and to find out what you're actually streaming when it does work.