[Live-devel] Open RTSP and video file splitting...

julien@nomadsystems julien at nomadsystems.com.au
Tue Aug 20 04:05:44 PDT 2013


> I need to split an RTSP feed into multiple files of 30 seconds. I have 
> done
> what has been suggested in the thread by sub-classing "QuickTimeFileSink"
> and in the "QuickTimeFileSink::afterGettingFrame" ( after sync point )
> re-open a new file without stopping the RTSP session.
>
> I indeed get the data into multiple files of 30 seconds, BUT the stream
> doesn't seem to be in the right spot to re-start the new files. So in
> consequence only the first file is playable.

Snippet Regarding the un-playable file I feel a bit silly , but it was 
just missing the
re-initialization of the "fHaveCompletedOutputFile = false" to write the 
footer
and voila.

Having said that, I still have the problem of not starting the next 
files at the
right spot I believe. When I play them I have a few seconds where nothing
moves before to pick up what I suppose is a key frame.
So in "QuickTimeFileSink::afterGettingFrame" this is what I do : Snippet 
Snippet

void  QuickTimeFileSink
::afterGettingFrame(void* clientData,unsigned  packetDataSize,
		unsigned  /*numTruncatedBytes*/,
		struct  timeval presentationTime,
		unsigned  /*durationInMicroseconds*/) {
   SubsessionIOState* ioState = (SubsessionIOState*)clientData;
   if  (!ioState->syncOK(presentationTime)) {
     // Ignore this data:
     ioState->fOurSink.continuePlaying();
     return;
   }

   // [my-code]
   Boolean keyFrame = (ioState->fBuffer &&
	*(ioState->fBuffer->dataStart()) == H264_IDR_FRAME);
   ioState->fOurSink.afterGettingFrame1(
	packetDataSize, presentationTime, keyFrame);
   // [/my-code]

   ioState->afterGettingFrame(packetDataSize, presentationTime);
}

"afterGettingFrame1" is the handler in my subclassed QuickTimeFileSink
class I use to do the file close/re-open when the "keyFrame = true" and
the 30 seconds elapsed.

But for some reasons, this doesn't work.

Any ideas why ?

Many thanks in advance.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20130820/d9e5bdb6/attachment-0001.html>


More information about the live-devel mailing list