[Live-devel] Status of Live555 RTPS Client and Server using Stream over TCP

Matt Schuckmann matt at schuckmannacres.com
Wed Dec 31 13:57:25 PST 2008


After doing a bit more digging in the code and on the web I've 
discovered that the problem of not receiving RTSP commands after the 
play command when using RTP-over-TCP streaming is a known problem 
(although it is usually associated with the keep-a-live feature (cough 
hack) and not with usages like issuing PAUSE, SET_PARAMETER,  and 
TEARDOWN commands after starting playing. I had intended to use 
RTP-over-TCP as a fall back in situations where UDP won't work (for the 
usual reasons)
Ross are there any plans or thoughts on how to fix this? I may have time 
to work on making this work in the near future.

I also discovered that the RTSPclient does indeed establish 1 and only 1 
TCP connection per session, regardless if it's TCP or UDP streaming. 
This is a bit surprising to me considering the connectionless aspects of 
RTSP. Furthermore with respect to RTP-over-TCP it seems it would 
virtually eliminate and greatly simplify the whole problem (I'm facing) 
if the client simply opened a new connection to the server for each RTSP 
command (or at least created a new one after the original had been 
subsumed for the purpose of streaming rtp over tcp).
Comments and discussion are welcome.

I'm still working on figuring out problem 1 from my original post.

Thanks
Matt S.


Matt Schuckmann wrote:
> Ok I've got a little more information.
> With respect to problem #2 I've discovered that the server is not 
> receiving or responding to any RTSP commands once the play command has 
> been issued when streaming over tcp. In particular I've tested the 
> TEARDOWN and SET_PARAMETER commands both of which the server never 
> receives when streaming over tcp.
>
> I haven't gotten far enough into the server code to figure out how 
> this is supposed to work or even if it is supposed to work?
>
> One question I have is when streaming over TCP does the client use the 
> same TCP socket connection it's streaming over to send and receive 
> further RTSP commands and responses or does it open up new connections 
> in the same way a it would if streaming over UDP?
> It seems like the later would work and be easer to implement but I'm 
> getting the feeling it's the former.
>
> Thanks,
> Matt S.
>
>
> Matt Schuckmann wrote:
>> I know this is sort of a loaded question probably without a clear 
>> answer but here goes.
>>
>> I was wondering if there are any known issues with using the 
>> StreamOverTCP option of the RTSPClient::SetupMediaSession() when both 
>> the client application and the server application are based on the 
>> Dec 4  2008 release of Live555.
>> I ask this because I'm seeing two problems when I try to use this 
>> feature.
>>
>> 1.  I've created my own RTP profile for an experimental meta data 
>> stream and I've created the necessary classes to stream and receive 
>> this stream along with my H264 video stream and it works create when 
>> I do standard UDP RTP. However, as soon as I turn on the 
>> StreamOverTCP the client starts issuing all this "Discarding 
>> interleaved RTP or RTCP packet" messages and my application never 
>> gets any of the data. If I don't stream the experimental meta data 
>> stream the video streams appears to come through fine. Is there 
>> anything I need to do with my custom meta data source or sink.
>> On the server side the MetaData stream source is derived from 
>> FramedSource, the Media subsession is derived from 
>> OnDemandServerMediaSubsession and it creates a SimpleRTPSink for the 
>> RTPSink.
>> On the client the meta data stream sink is derived from MediaSink and 
>> I've allowed the MediaSession object to create a SimpleRTPSource for 
>> this stream.
>>
>> 2. I've modifed the RTSPServer to accept, handle, and reply to the 
>> SET_PARAMETER request (a patch is coming) and it works great when I 
>> do RTP over UDP, however when I turn on the StreamOverTCP option as 
>> soon as the client tries to send a SET_PARAMETER request the client 
>> appears to hang indefinitely.
>> This is probably my problem and I've just started to work it out, but 
>> any help or suggestions anyone might have would be appreciated.
>>
>> Any suggestions you might have would be most appreciated, I was 
>> hoping that maybe there is a flag or something that I'm not 
>> respecting (particularly with problem #1).  I understand I'm sort of 
>> on the harry edge here so I understand if the only clue you can give 
>> is use the debugger.
>>
>> Thanks
>> Matt Schuckmann
>>
>>
>>
>> _______________________________________________
>> live-devel mailing list
>> live-devel at lists.live555.com
>> http://lists.live555.com/mailman/listinfo/live-devel
>>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>


More information about the live-devel mailing list