Skip to content

Instantly share code, notes, and snippets.

@tetherit
Created March 30, 2013 13:28
Show Gist options
  • Save tetherit/5276683 to your computer and use it in GitHub Desktop.
Save tetherit/5276683 to your computer and use it in GitHub Desktop.
From server:
```
$ live555ProxyServer -V rtsp://192.168.0.221/live2.sdp
LIVE555 Proxy Server
(LIVE555 Streaming Media library version 2013.03.23)
Opening connection to 192.168.0.221, port 554...
RTSP stream, proxying the stream "rtsp://192.168.0.221/live2.sdp"
Play this stream using the URL: rtsp://192.168.0.2:8554/proxyStream
(We use port 8000 for optional RTSP-over-HTTP tunneling.)
...remote connection opened
Sending request: DESCRIBE rtsp://192.168.0.221/live2.sdp RTSP/1.0
CSeq: 2
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.03.23)
Accept: application/sdp
Received 420 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
CSeq: 2
Date: Wed, 21 Jun 1970 21:15:13 GMT
Content-Base: rtsp://192.168.0.221/live2.sdp/
Content-Type: application/sdp
Content-Length: 256
v=0
o=RTSP 1804513 653 IN IP4 0.0.0.0
s=RTSP server
c=IN IP4 0.0.0.0
t=0 0
a=charset:Shift_JIS
a=range:npt=0-
a=control:*
a=etag:1234567890
m=video 0 RTP/AVP 26
a=control:trackID=2
m=audio 0 RTP/AVP 0
a=control:trackID=3
a=rtpmap:0 pcmu/8000
ProxyServerMediaSession["rtsp://192.168.0.221/live2.sdp/"] added new "ProxyServerMediaSubsession" for RTP/video/JPEG track
ProxyServerMediaSession["rtsp://192.168.0.221/live2.sdp/"] added new "ProxyServerMediaSubsession" for RTP/audio/PCMU track
ProxyServerMediaSubsession["JPEG"]::createNewStreamSource(session id 0)
Initiated: ProxyServerMediaSubsession["JPEG"]
ProxyServerMediaSubsession["JPEG"]::createNewRTPSink()
ProxyServerMediaSubsession["JPEG"]::closeStreamSource()
ProxyServerMediaSubsession["PCMU"]::createNewStreamSource(session id 0)
Initiated: ProxyServerMediaSubsession["PCMU"]
ProxyServerMediaSubsession["PCMU"]::createNewRTPSink()
ProxyServerMediaSubsession["PCMU"]::closeStreamSource()
ProxyServerMediaSubsession["JPEG"]::createNewStreamSource(session id 2935397515)
Sending request: SETUP rtsp://192.168.0.221/live2.sdp/trackID=2 RTSP/1.0
CSeq: 3
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.03.23)
Transport: RTP/AVP;unicast;client_port=59232-59233
ProxyServerMediaSubsession["JPEG"]::createNewRTPSink()
ProxyServerMediaSubsession["PCMU"]::createNewStreamSource(session id 2935397515)
ProxyServerMediaSubsession["PCMU"]::createNewRTPSink()
Received 170 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 3
Date: Wed, 21 Jun 1970 21:15:15 GMT
Session: 180452337;timeout=80
Transport: RTP/AVP;unicast;client_port=59232-59233;server_port=5556-5557
ProxyRTSPClient["rtsp://192.168.0.221/live2.sdp/"]::continueAfterSETUP(): head codec: JPEG; numSubsessions 2
queue: JPEG PCMU
Sending request: SETUP rtsp://192.168.0.221/live2.sdp/trackID=3 RTSP/1.0
CSeq: 4
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.03.23)
Transport: RTP/AVP;unicast;client_port=52400-52401
Session: 180452337
Received 170 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 4
Date: Wed, 21 Jun 1970 21:15:15 GMT
Session: 180452337;timeout=80
Transport: RTP/AVP;unicast;client_port=52400-52401;server_port=5558-5559
ProxyRTSPClient["rtsp://192.168.0.221/live2.sdp/"]::continueAfterSETUP(): head codec: PCMU; numSubsessions 2
queue: PCMU
Sending request: PLAY rtsp://192.168.0.221/live2.sdp/ RTSP/1.0
CSeq: 5
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.03.23)
Session: 180452337
Received 264 new bytes of response data.
Received a complete PLAY response:
RTSP/1.0 200 OK
CSeq: 5
Date: Wed, 21 Jun 1970 21:15:15 GMT
Session: 180452337;timeout=80
RTP-Info: url=rtsp://192.168.0.221/live2.sdp/trackID=2;seq=0;rtptime=0,url=rtsp://192.168.0.221/live2.sdp/trackID=3;seq=0;rtptime=0
Range: npt=0-
RTCP-Interval: 250
Sending request: OPTIONS rtsp://192.168.0.221/live2.sdp/ RTSP/1.0
CSeq: 6
User-Agent: ProxyRTSPClient (LIVE555 Streaming Media v2013.03.23)
Received 145 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 6
Date: Wed, 21 Jun 1970 21:15:43 GMT
Public: OPTIONS, DESCRIBE, PLAY, SETUP, GET_PARAMETER, SET_PARAMETER, TEARDOWN
```
From client:
```
$ ./openRTSP rtsp://192.168.0.2:8554/proxyStream
Opening connection to 192.168.0.2, port 8554...
...remote connection opened
Sending request: OPTIONS rtsp://192.168.0.2:8554/proxyStream RTSP/1.0
CSeq: 2
User-Agent: ./openRTSP (LIVE555 Streaming Media v2013.03.23)
Received 152 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 2
Date: Sat, Mar 30 2013 13:25:47 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER
Sending request: DESCRIBE rtsp://192.168.0.2:8554/proxyStream RTSP/1.0
CSeq: 3
User-Agent: ./openRTSP (LIVE555 Streaming Media v2013.03.23)
Accept: application/sdp
Received 680 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
CSeq: 3
Date: Sat, Mar 30 2013 13:25:47 GMT
Content-Base: rtsp://192.168.0.2:8554/proxyStream/
Content-Type: application/sdp
Content-Length: 511
v=0
o=- 1364649945494663 1 IN IP4 192.168.0.2
s=LIVE555 Streaming Media v2013.03.23
i=LIVE555 Streaming Media v2013.03.23
t=0 0
a=tool:LIVE555 Streaming Media v2013.03.23
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:LIVE555 Streaming Media v2013.03.23
a=x-qt-text-inf:LIVE555 Streaming Media v2013.03.23
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:50
a=rtpmap:96 JPEG/90000
a=control:track1
m=audio 0 RTP/AVP 97
c=IN IP4 0.0.0.0
b=AS:50
a=rtpmap:97 PCMU/8000
a=control:track2
Opened URL "rtsp://192.168.0.2:8554/proxyStream", returning a SDP description:
v=0
o=- 1364649945494663 1 IN IP4 192.168.0.2
s=LIVE555 Streaming Media v2013.03.23
i=LIVE555 Streaming Media v2013.03.23
t=0 0
a=tool:LIVE555 Streaming Media v2013.03.23
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:LIVE555 Streaming Media v2013.03.23
a=x-qt-text-inf:LIVE555 Streaming Media v2013.03.23
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:50
a=rtpmap:96 JPEG/90000
a=control:track1
m=audio 0 RTP/AVP 97
c=IN IP4 0.0.0.0
b=AS:50
a=rtpmap:97 PCMU/8000
a=control:track2
Created receiver for "video/JPEG" subsession (client ports 51252-51253)
Created receiver for "audio/PCMU" subsession (client ports 60734-60735)
Sending request: SETUP rtsp://192.168.0.2:8554/proxyStream/track1 RTSP/1.0
CSeq: 4
User-Agent: ./openRTSP (LIVE555 Streaming Media v2013.03.23)
Transport: RTP/AVP;unicast;client_port=51252-51253
Received 201 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 4
Date: Sat, Mar 30 2013 13:25:47 GMT
Transport: RTP/AVP;unicast;destination=192.168.0.2;source=192.168.0.2;client_port=51252-51253;server_port=6970-6971
Session: AEF69C8B
Setup "video/JPEG" subsession (client ports 51252-51253)
Sending request: SETUP rtsp://192.168.0.2:8554/proxyStream/track2 RTSP/1.0
CSeq: 5
User-Agent: ./openRTSP (LIVE555 Streaming Media v2013.03.23)
Transport: RTP/AVP;unicast;client_port=60734-60735
Session: AEF69C8B
Received 201 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 5
Date: Sat, Mar 30 2013 13:25:47 GMT
Transport: RTP/AVP;unicast;destination=192.168.0.2;source=192.168.0.2;client_port=60734-60735;server_port=6972-6973
Session: AEF69C8B
Setup "audio/PCMU" subsession (client ports 60734-60735)
Created output file: "video-JPEG-1"
Created output file: "audio-PCMU-2"
Sending request: PLAY rtsp://192.168.0.2:8554/proxyStream/ RTSP/1.0
CSeq: 6
User-Agent: ./openRTSP (LIVE555 Streaming Media v2013.03.23)
Session: AEF69C8B
Range: npt=0.000-
Received 264 new bytes of response data.
Received a complete PLAY response:
RTSP/1.0 200 OK
CSeq: 6
Date: Sat, Mar 30 2013 13:25:47 GMT
Range: npt=0.000-
Session: AEF69C8B
RTP-Info: url=rtsp://192.168.0.2:8554/proxyStream/track1;seq=749;rtptime=1881744642,url=rtsp://192.168.0.2:8554/proxyStream/track2;seq=31137;rtptime=3404576387
Started playing session
Receiving streamed data (signal with "kill -HUP 80281" or "kill -USR1 80281" to terminate)...
```
When I kill the client, I see this:
```
$ ls -ltr | tail -n 2
-rw-r--r-- 1 hackeron staff 0 30 Mar 13:25 video-JPEG-1
-rw-r--r-- 1 hackeron staff 806400 30 Mar 13:27 audio-PCMU-2
```
If on the other hand I open camera directly, I see:
```
./openRTSP rtsp://192.168.0.221/live2.sdp
Opening connection to 192.168.0.221, port 554...
...remote connection opened
Sending request: OPTIONS rtsp://192.168.0.221/live2.sdp RTSP/1.0
CSeq: 2
User-Agent: ./openRTSP (LIVE555 Streaming Media v2013.03.23)
Received 145 new bytes of response data.
Received a complete OPTIONS response:
RTSP/1.0 200 OK
CSeq: 2
Date: Wed, 21 Jun 1970 21:17:37 GMT
Public: OPTIONS, DESCRIBE, PLAY, SETUP, GET_PARAMETER, SET_PARAMETER, TEARDOWN
Sending request: DESCRIBE rtsp://192.168.0.221/live2.sdp RTSP/1.0
CSeq: 3
User-Agent: ./openRTSP (LIVE555 Streaming Media v2013.03.23)
Accept: application/sdp
Received 419 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
CSeq: 3
Date: Wed, 21 Jun 1970 21:17:37 GMT
Content-Base: rtsp://192.168.0.221/live2.sdp/
Content-Type: application/sdp
Content-Length: 255
v=0
o=RTSP 1804658 27 IN IP4 0.0.0.0
s=RTSP server
c=IN IP4 0.0.0.0
t=0 0
a=charset:Shift_JIS
a=range:npt=0-
a=control:*
a=etag:1234567890
m=video 0 RTP/AVP 26
a=control:trackID=2
m=audio 0 RTP/AVP 0
a=control:trackID=3
a=rtpmap:0 pcmu/8000
Opened URL "rtsp://192.168.0.221/live2.sdp", returning a SDP description:
v=0
o=RTSP 1804658 27 IN IP4 0.0.0.0
s=RTSP server
c=IN IP4 0.0.0.0
t=0 0
a=charset:Shift_JIS
a=range:npt=0-
a=control:*
a=etag:1234567890
m=video 0 RTP/AVP 26
a=control:trackID=2
m=audio 0 RTP/AVP 0
a=control:trackID=3
a=rtpmap:0 pcmu/8000
Created receiver for "video/JPEG" subsession (client ports 54300-54301)
Created receiver for "audio/PCMU" subsession (client ports 64828-64829)
Sending request: SETUP rtsp://192.168.0.221/live2.sdp/trackID=2 RTSP/1.0
CSeq: 4
User-Agent: ./openRTSP (LIVE555 Streaming Media v2013.03.23)
Transport: RTP/AVP;unicast;client_port=54300-54301
Received 170 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 4
Date: Wed, 21 Jun 1970 21:17:38 GMT
Session: 180466576;timeout=80
Transport: RTP/AVP;unicast;client_port=54300-54301;server_port=5556-5557
Setup "video/JPEG" subsession (client ports 54300-54301)
Sending request: SETUP rtsp://192.168.0.221/live2.sdp/trackID=3 RTSP/1.0
CSeq: 5
User-Agent: ./openRTSP (LIVE555 Streaming Media v2013.03.23)
Transport: RTP/AVP;unicast;client_port=64828-64829
Session: 180466576
Received 170 new bytes of response data.
Received a complete SETUP response:
RTSP/1.0 200 OK
CSeq: 5
Date: Wed, 21 Jun 1970 21:17:38 GMT
Session: 180466576;timeout=80
Transport: RTP/AVP;unicast;client_port=64828-64829;server_port=5558-5559
Setup "audio/PCMU" subsession (client ports 64828-64829)
Created output file: "video-JPEG-1"
Created output file: "audio-PCMU-2"
Sending request: PLAY rtsp://192.168.0.221/live2.sdp/ RTSP/1.0
CSeq: 6
User-Agent: ./openRTSP (LIVE555 Streaming Media v2013.03.23)
Session: 180466576
Range: npt=0.000-
Received 264 new bytes of response data.
Received a complete PLAY response:
RTSP/1.0 200 OK
CSeq: 6
Date: Wed, 21 Jun 1970 21:17:38 GMT
Session: 180466576;timeout=80
RTP-Info: url=rtsp://192.168.0.221/live2.sdp/trackID=2;seq=0;rtptime=0,url=rtsp://192.168.0.221/live2.sdp/trackID=3;seq=0;rtptime=0
Range: npt=0-
RTCP-Interval: 250
Started playing session
Receiving streamed data (signal with "kill -HUP 80566" or "kill -USR1 80566" to terminate)...
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (100000). 22323 bytes of trailing data will be dropped!
FileSink::afterGettingFrame(): The input frame data was too large for our buffer size (100000). 22323 bytes of trailing data was dropped! Correct this by increasing the "bufferSize" parameter in the "createNew()" call to at least 122323
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (100000). 22327 bytes of trailing data will be dropped!
FileSink::afterGettingFrame(): The input frame data was too large for our buffer size (100000). 22327 bytes of trailing data was dropped! Correct this by increasing the "bufferSize" parameter in the "createNew()" call to at least 122327
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (100000). 22259 bytes of trailing data will be dropped!
FileSink::afterGettingFrame(): The input frame data was too large for our buffer size (100000). 22259 bytes of trailing data was dropped! Correct this by increasing the "bufferSize" parameter in the "createNew()" call to at least 122259
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (100000). 22213 bytes of trailing data will be dropped!
FileSink::afterGettingFrame(): The input frame data was too large for our buffer size (100000). 22213 bytes of trailing data was dropped! Correct this by increasing the "bufferSize" parameter in the "createNew()" call to at least 122213
MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (100000). 22068 bytes of trailing data will be dropped!
FileSink::afterGettingFrame(): The input frame data was too large for our buffer size (100000). 22068 bytes of trailing data was dropped! Correct this by increasing the "bufferSize" parameter in the "createNew()" call to at least 122068
```
```
ls -ltr | tail -n 2
-rw-r--r-- 1 hackeron staff 500000 30 Mar 13:28 video-JPEG-1
-rw-r--r-- 1 hackeron staff 12800 30 Mar 13:28 audio-PCMU-2
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment