<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hello,<br>
<br>
I'm working on a project using an Elphel NC353L camera to feed a RTSP stream.<br>
I would get a buffer from that stream.<br>
<br>
I already got one using a v4l2loopback modul, but i have to use an other software (memcoder) to feed my video device and opencv to read it.<br>
<br>
That's why i would directly get a buffer from the RTSP stream.<br>
So i tried to understand the examples in the testProgs directory of live555.<br>
<br>
Especially testRTSPClient.cpp, is it the good one?<br>
<br>
I have no comprehension problem until the taskscheduler event loop.<br>
<br>
First of all it open the rtsp url.<br>
Then the event loop, what is it exactly doing?<br>
Running all messages sent by the stream?<br>
<br>
I have found this : http://comments.gmane.org/gmane.comp.multimedia.live555.devel/7642<br>
<br>
Must i modify the DummySink to get the buffer ?<br>
<br>
If yes, can i get the buffer from the fsource (testRTSPClient.cpp:493, don't know where he is defined) ?<br>
<br>
<br>
<br>
Here is the output of testRTSPClient :<br>
<br>
[------------------------------------------------------------------------------<br>
<br>
Opening connection to 192.168.0.12, port 554...<br>
...remote connection opened<br>
Sending request: DESCRIBE rtsp://192.168.0.12 RTSP/1.0<br>
CSeq: 2<br>
User-Agent: ./testRTSPClient (LIVE555 Streaming Media v2012.01.13)<br>
Accept: application/sdp<br>
<br>
<br>
Received 247 new bytes of response data.<br>
Received a complete DESCRIBE response:<br>
RTSP/1.0 200 OK<br>
CSeq: 2<br>
Content-Length: 167<br>
Content-Type: application/sdp<br>
<br>
m=video 0 RTP/AVP 26<br>
a=type:unicast<br>
c=IN IP4 0.0.0.0<br>
<br>
a=x-framerate:49.8355<br>
a=x-width:640<br>
a=x-height:480<br>
a=x-dimensions:640,480<br>
a=control:rtsp://192.168.0.12<br>
<br>
[URL:"rtsp://192.168.0.12"]: Got a SDP description:<br>
m=video 0 RTP/AVP 26<br>
a=type:unicast<br>
c=IN IP4 0.0.0.0<br>
<br>
a=x-framerate:49.8355<br>
a=x-width:640<br>
a=x-height:480<br>
a=x-dimensions:640,480<br>
a=control:rtsp://192.168.0.12<br>
<br>
[URL:"rtsp://192.168.0.12"]: Initiated the "video/JPEG" subsession (client ports 46636-46637)<br>
Sending request: SETUP rtsp://192.168.0.12 RTSP/1.0<br>
CSeq: 3<br>
User-Agent: ./testRTSPClient (LIVE555 Streaming Media v2012.01.13)<br>
Transport: RTP/AVP;unicast;client_port=46636-46637<br>
<br>
<br>
Received 100 new bytes of response data.<br>
Received a complete SETUP response:<br>
RTSP/1.0 200 OK<br>
CSeq: 3<br>
Session: 47112344<br>
Transport: RTP/AVP;unicast;destination=0;port=46636<br>
<br>
<br>
[URL:"rtsp://192.168.0.12"]: Failed to set up the "video/JPEG" subsession: Missing or bad "Transport:" header<br>
Sending request: PLAY rtsp://192.168.0.12 RTSP/1.0<br>
CSeq: 4<br>
User-Agent: ./testRTSPClient (LIVE555 Streaming Media v2012.01.13)<br>
Session: 47112344<br>
Range: npt=0.000-<br>
<br>
<br>
Received 28 new bytes of response data.<br>
Received a complete PLAY response:<br>
RTSP/1.0 200 OK<br>
CSeq: 4<br>
<br>
<br>
[URL:"rtsp://192.168.0.12"]: Started playing session...<br>
<br>
--------------------------------------------------------------------------------------]<br>
<br>
The stream is "Started playing", and i added a cout to know if he use the afterGettingFrame or continuePlaying functions.<br>
<br>
Unfortunaltely there is no output from these functions.<br>
<br>
I hope you could help me.<br>
<br>
Thanks for reading.</div>
</body>
</html>