"ABOUT MJPEGFPLAY"

About mJPEGfPlay

Some information about this application.

MotionJPEG File-Play (mJPEGfPlay) is an image file sequence player with audio. A sequence consists of a set of numbered image files, optional numbered audio files (for solo or concurrent playback), and a metadata file. mJPEGfPlay handles anything from slideshows to feature films at any resolution and framerate, though extremely constrained by its backend and the client hardware.

Image files are independent and thus can be quickly accessed at any state. This allows for random access and trickplay features--prominent in analog video formats--at the cost of higher space requirements.

Design

We now describe the basic design.

First, three[1] independent image readers, each on their own sequence of image files. A video renderer selects the appropriate frame from its reader, then performs post-processing--including scaling--prior to display.

Second, one audio mixer for up to 127 simultaneous streams. Sources are independently controlled--including seeking--and are mixed with a simple additive method. The mix is multiplied by the user-defined level before reaching the audio hardware.

Third, two independent timers: one clocks the video renderer to update the display accordingly, and the other clocks the orchestrator to update the playback model and synchronize the video to the audio.

Lastly, the same orchestrator controls the above modules on user and playback events. For instance, if the user taps Pause, then the orchestrator signals the video timer and audio mixer to hold their activities.

On top of everything, two user interfaces plug into the orchestrator, of which the other is enabled only with the --console option.

There are two special orchestrators: the first one toggles the video clock at the times specified in the sequence metadata; the other one plays numbered audio files sequentially rather than concurrently, like a playlist.

  1. User adjustable.