[Live-devel] Writing RTSP server

Jasleen Kaur Jasleen at beesys.com
Wed Oct 8 00:16:27 PDT 2014



________________________________
From: live-devel [live-devel-bounces at ns.live555.com] on behalf of Jasleen Kaur [Jasleen at beesys.com]
Sent: Wednesday, October 01, 2014 2:32 PM
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] Writing RTSP server


From: live-devel [live-devel-bounces at ns.live555.com] on behalf of Ross Finlayson [finlayson at live555.com]
Sent: Wednesday, October 01, 2014 11:42 AM
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] Writing RTSP server


Our requirement is to using Live555 libraries to stream real time data ( data generated by our software) , using RTSP.

Is it possible using Live555 libraries

Yes, of course.  See
http://www.live555.com/liveMedia/faq.html#liveInput-unicast



Thanks for the prompt reply.
Just want to confirm the following:

1) We have to create our own source class derived from FramedSource
2) Another class derived from OnDemandServerMediaSubsession<http://www.live555.com/liveMedia/doxygen/html/classOnDemandServerMediaSubsession.html>
3) We have to implement  "createNewStreamSource()" and "createNewRTPSink()" methods in the
    custom mediasession class.
    In  "createNewStreamSource()" we have create our own source.
    Do we have to create a custom sink class also for "createNewRTPSink()"
    Also what is the role of a sink ? Does Sink do the actual streaming ?


Best Regards
Jasleen



> Just want to confirm the following:
>
> 1) We have to create our own source class derived from FramedSource

Yes, but only if your encoded video (or audio) stream is not accessible as a file in the file system (e.g., under /dev/).


> 2) Another class derived from OnDemandServerMediaSubsession

Yes,  if you needed to define your own source class for your encoded data.


> 3) We have to implement  "createNewStreamSource()" and "createNewRTPSink()" methods in the
>     custom mediasession class.
>     In  "createNewStreamSource()" we have create our own source.

Yes.


>     Do we have to create a custom sink class also for "createNewRTPSink()"

No; an existing "RTPSink" subclass should already be defined (use the one that's appropriate for the kind of media that you're streaming).


>     Also what is the role of a sink ? Does Sink do the actual streaming ?

See http://www.live555.com/liveMedia/faq.html#control-flow




Thanks Ross for the explanation.

I tried testRTSPclient to receive the streamed data , instead of VLC player.What I could find out it that the response for 'DESCRIBE" request is not received at the client end.

While debugging the server application I could see that, when my Subsession's getAuxSDPLine is called , it gets stuck in the last statement before return i.e at envir().taskScheduler().doEventLoop(&fDoneFlag);
So it is not able to return from this method.What could be the reason for this? Also,

Currently uncompressed ARGB data is given out from our custom source and following is the code written in createNewRTPSink  of our MedisSubSession class.(which we wish to compress into H.264 and then stream )


OutPacketBuffer::maxSize = 720*576*4; // by default

MultiFramedRTPSink* pSink = SimpleRTPSink::createNew(envir(), rtpGroupsock,

rtpPayloadTypeIfDynamic, 90000, "video", "WASP",

1, True, False /*no 'M' bit*/);

return pSink;



I wonder what should be the payloadType, and payload frequency and rest of the paramaters for SimpleRTPSink::createNew.



Regards

Jasleen

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20141008/e95b500f/attachment.html>


More information about the live-devel mailing list