[Live-devel] Receiving RTP packets by a RTSP Client app

Sambhav isambhav at gmail.com
Thu Jan 19 06:45:35 PST 2012


Hi Ross,

I am trying to implement my app as suggested in the previous mail.

In the testRTSPClient app, after calling
"rtspClient->sendDescribeCommand(continueAfterDESCRIBE); " the program
enters the doEventLoop.
Rest of the processing is done in asynchronous callbacks.

you mentioned >> Call "startPlaying()" on each of these 'sink' objects
before entering the doEventLoop.
StreamReplicator cannot be initialized  before entering doEventLoop.
(Am I understanding it wrong here)

I called startPlaying() on the sink objects in continueAfterPLAY function
and got this error.
"FramedSource[0x10b001ad0]::getNextFrame(): attempting to read more than
once at the same time!"

Regards,
Sambhav

On Thu, Jan 19, 2012 at 11:43 AM, Sambhav <isambhav at gmail.com> wrote:

> Thanks a lot. This is exactly what I need for my application.
>
> On Thu, Jan 19, 2012 at 11:27 AM, Ross Finlayson <finlayson at live555.com>wrote:
>
>> I have a low end device with Live555 RTSP server serving live H264
>> stream.
>>
>> My application needs acts as a RTSP client and do the following 2 things
>> a) Store this H264 data in mp4 format.
>> b) Re - stream the H264 data to  another application(can be more than
>> one) for a doing some other processing.
>>
>> feature a) can be directly done using the current Live555 library.
>> To implement feature b) one option is , my application has to packetize
>> the elementary H264 data into RTP and stream this data on a UDP socket.
>>
>>
>> OK, this is completely different to what you were asking about before.
>>  You don't need to 'receive RTP packets' at all.
>>
>> You can do what you want to do by using the new "StreamReplicator" class
>> (see the "testReplicator" demo application for hints on how to use this).
>>
>> First, take the incoming H.264 NAL unit stream from your RTSP client
>> (i.e., from "subsession->readSource()") and feed it into a new
>> "StreamReplicator" object.
>>
>> Then create two 'replica' streams (using "createStreamReplica()") from
>> the "StreamReplicator" object.
>>
>> Use one replica for your 'mp4' file output (i.e., a "QuickTimeFileSink").
>>  Use the other replica for streaming (using a
>> "H264VideoStreamDiscreteFramer" fed into a "H264VideoRTPSink").  Call
>> "startPlaying()" on each of these 'sink' objects before entering the event
>> loop.
>>
>>
>> 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/20120119/058b5c7e/attachment-0001.html>


More information about the live-devel mailing list