[gst-devel] multiple image files -> video/raw plugin?

Ronald Bultje R.S.Bultje at pharm.uu.nl
Sun May 11 06:21:02 CEST 2003


Hey Lars,

On Sun, 2003-05-11 at 01:04, Lars Damerow wrote:
> I'd like to use gstreamer to make a video file out of a series of jpg files.
> Is there already a plugin that can do this? I'd be interested to write one if
> there isn't.

The easiest way to do this is to use a thread which contains a
filesource and a queue (buffer), and then the main thread (pipeline)
containing an avimux element (assuming you want an AVI movie) and a
filesink:

{ multidisksrc ! queue } ! .video_00 avimux ! filesink

The multidisksrc reads multiple files (one file per buffer), pushes them
over to the queue element. The avimux element reads the buffers and
creates an AVI file. Totally untested, all theoretical, but the elements
are there and I guess this would just work... You probably want to set a
filtered caps on the link between the multidisksrc and avimux.video_00,
so that avimux knows the size of the incoming buffers.
Filesrc/multidisksrc don't know this.

Another option is to replace multidisksrc with a filesrc and a parser.
The parser would then be responsible for reading buffers from the
bytestream filesrc (so that the whole file fits in one buffer) and parse
the JPEG header so that it knows the size. It sets this information on
avimux.video_00 and we've got a running pipeline. The parser can then
also check that the sizes of different files don't differ, etc.

That's all, I guess. Choose whichever sounds most interesting. :-). If
you want to save the JPEG images to another format than MJPEG video,
simply insert a jpeg decoder (jpegmmxdec, jpegdec) and a video encoder
(whichever you prefer) into the pipeline.

Ronald





More information about the gstreamer-devel mailing list