Closed BaranovVO closed 3 years ago
It's likely the server is not following the RTSP spce, to diagnose, please provide a log of RTSP messages.
Add logs at
and
The easiest way is to use
Log.d("RTSP", message)
2021-08-04 14:54:39.598 D/RTSP: OPTIONS rtsp://hidden.url RTSP/1.0
cseq: 0
user-agent: ExoPlayerLib/2.14.2
2021-08-04 14:54:39.671 D/RTSP: RTSP/1.0 200 OK
Server: Streamer 21.07.2
Cache-Control: no-cache
Cseq: 0
Supported: play.basic, con.persistent
Date: Wed, 04 Aug 2021 09:54:39 GMT
Public: SETUP, TEARDOWN, ANNOUNCE, RECORD, PLAY, PAUSE, OPTIONS, DESCRIBE, GET_PARAMETER
2021-08-04 14:54:39.673 D/RTSP: DESCRIBE rtsp://hidden.url RTSP/1.0
cseq: 1
user-agent: ExoPlayerLib/2.14.2
2021-08-04 14:54:39.741 D/RTSP: RTSP/1.0 200 OK
Server: Streamer 21.07.2
Cache-Control: no-cache
Content-Base: rtsp://hidden.url/
Content-Length: 722
Content-Type: application/sdp
Cseq: 1
Date: Wed, 04 Aug 2021 09:54:39 GMT
Expires: Wed, 04 Aug 2021 09:54:39 GMT
Session: 610a63df-9b57-4856-97ac-665f356e9c04
v=0
o=- 1628070879924625 1628070879924625 IN IP4 127.0.0.1
s=Streamer 21.07.2
c=IN IP4 0.0.0.0
t=0 0
a=control:*
a=tool:Streamer 21.07.2
a=x-qt-text-nam:Streamer 21.07.2
a=x-qt-text-inf:h264
a=type:broadcast
a=range:npt=now-
m=video 0 RTP/AVP 96
a=control:trackID=1
a=rtpmap:96 H264/90000
a=cliprect:0,0,1280,720
a=framesize:96 1280-720
a=x-dimensions:1280,720
a=framerate:25.0
a=fmtp:96 packetization-mode=1;profile-level-id=4DE01F;sprop-parameter-sets=Z01AH5WgFAFumwE=,aO48gA==
b=AS:1003
m=audio 0 RTP/AVP 97
a=control:trackID=2
a=rtpmap:97 mpeg4-generic/8000/1
a=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=158856E500
i=Transcoded_aac
b=AS:82
2021-08-04 14:54:39.828 D/RTSP: SETUP rtsp://hidden.url/trackID=1 RTSP/1.0
cseq: 2
user-agent: ExoPlayerLib/2.14.2
transport: RTP/AVP;unicast;client_port=46900-46901
2021-08-04 14:54:39.906 D/RTSP: RTSP/1.0 200 OK
Server: Streamer 21.07.2
Cache-Control: no-cache
Session: 610a63df-9b57-4856-97ac-665f356e9c04
Cseq: 2
Date: Wed, 04 Aug 2021 09:54:39 GMT
Expires: Wed, 04 Aug 2021 09:54:39 GMT
Transport: RTP/AVP;unicast;client_port=46900-46901;source=217.64.140.8;server_port=18244-18245
Will be fixed soon
I think the original regex was supposed to parse the ";timeout=X" part at the end which some devices use. The current regex returns the timeout parameter as a part of the session id causing a mismatch and the timeout parameter is not parsed at all.
As an example "parseSessionHeader" function with the "headerValue" "45266830;timeout=5" returns "sessionId" as "45266830;timeout=5" where it should be "45266830" and returns the default timeout.
The lib version is 2.14.2.
The player can't parse a RTSP session header.
It looks like the regex SESSION_HEADER_PATTERN needs to be changed.