[Live-devel] motion JPEG over RTP over UDP streaming server (RFC2435).

imin imup iminimup at gmail.com
Mon Jan 30 10:57:12 PST 2012


Hello Ross,

This email is a bit long. Please bear with me for a moment.
After going through your 2 excellent faqs and Elphel source, am I correct
to say the quickest way to build a MJPEG streamer (from JPEG files in
prototype) would be to modify ElphelJPEGDeviceSource.cpp only?

Please help me understand the execution flow of your
ElphelJPEGDeviceSource.cpp:

   - main() in ElphelStreamer.cpp calls through to createNew() to
   constructor to startCapture(), which issues JPEG_CMD_ACQUIRE to get a new
   frame.


   - A callback is setup in constructor. If newFrameHandler() is called
   back after doGetNextFrame(), the captured frame will be read out and sent
   out by deliverFrameToClient() immediately. Otherwise, till JPEGVideoRTPSink
   calls doGetNextFrame(), the captured frame will then be read and sent. Then
   deliverFrameToClient() calls startCapture() to get next new frame.


Questions here (just try to understand how it works):

   - What is the cmd JPEG_CMD_CATCHUP doing?
   - It seems the 1st frame sent out in a stream "may" be obsolete --
   captured a long time ago and left in camera when first time
   doGetNextFrame() is called. Is this true?


In my own version:

   - In constructor: since I'll read JPEG files, the callback
   newFrameHandler cannot be set as no socket.
   - In deliverFrameToClient(): I will also need following statement to
   notice JPEGVideoRTPSink:

          // Switch to another task, and inform the reader that he has data:
          nextTask() = envir().taskScheduler().scheduleDelayedTask(0,
               (TaskFunc*)FramedSource::afterGetting, this);

Any other suggestions or comment?

Thanks  a lot,
Imin



On Sun, Jan 15, 2012 at 11:33 PM, Ross Finlayson <finlayson at live555.com>wrote:

>  However, our RTSP server implementation *can* be used - with some
>> additional programming - to stream motion JPEG.
>>
>
> I'm a newbie on RTP. Could you please detail the additional programming?
>
>
> The two links in the FAQ entry that I showed you should give you the
> information that you need.  In fact, I recommend that you read the entire
> FAQ.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20120130/51dcf277/attachment.html>


More information about the live-devel mailing list