[Live-devel] Unable to proxy mjpeg with live555ProxyServer

Roman Gaufman hackeron at gmail.com
Sat Mar 30 06:30:57 PDT 2013


No change :(

After recompiling with OutPacketBuffer::maxSize = 200000; at the start of
main(), I get this:

$ 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
```

When I kill the client I see:

```
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
```


Any ideas?


On 30 March 2013 03:24, Ross Finlayson <finlayson at live555.com> wrote:

> OK, I think what's happening here is that although your JPEG frame rate is
> low, your JPEG frame sizes are exceeding 60000 bytes - the default buffer
> size that's used by the proxy's "RTPSink"s.
>
> Try adding the following line to "live555ProxyServer.cpp" - at the start
> of "main()":
> OutPacketBuffer::maxSize = 100000;
>
> and recompile.  If that doesn't work, try increasing to 200000, etc.,
> depending on the size of your frames.  Let us know what size works for you,
> and I'll update the proxy server code (in the next release of the code) to
> accommodate this.
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20130330/e5d3d271/attachment-0001.html>


More information about the live-devel mailing list