[Live-devel] Buffering an H264 Video Stream

Ross Finlayson finlayson at live555.com
Mon Nov 3 13:37:30 PST 2014


> I need to keep a constant 3 second buffer of an H264 video stream. It's for security cameras. When something trips the camera, I replay the 3 seconds and then 6 more to see the event (One hopes I'll catch some ghosts or mountain lions, but really it's to catch car thieves!).  With mpeg it was easy because mpeg has discrete frames, but the much better definition h264 doesn't. I mean it does, but they're spread out over an indefinite series of NAL packets that can contain various varieties of slices. Squishing together into a discrete frame is a problem.


>  It seems to me that there are two different paradigms at work in live555. Modules that derive from Medium and modules that derive from MediaSource.

No, this is completely wrong.  (Note that “MediaSource” is a subclass of “Medium”.)

I suggest that you begin by reviewing the “testRTSPClient” demo application (in the “testProgs” directory).  Note, in particular, the “DummySink” object that receives ‘frames’ (for H.264 video, each ‘frame’ will actually be a NAL unit).  Note the code for “DummyRTPSink::afterGettingFrame()” ("testRTSPClient.cpp”, lines 500-521).  For your own RTSP client application, you could write your own ‘sink’ class (a subclass of “MediaSink”) that receives H.264 NAL units, and processes them however you want.

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

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


More information about the live-devel mailing list