[gst-devel] Using mkv (mjpeg) files with gnlcomposition/gnlfilesource

Ron McOuat rmcouat at smartt.com
Thu Jul 1 22:26:39 CEST 2010

On 10-07-01 11:42 AM, Wes Miller wrote:
> Is it possible to use a matroskamux-ed mjpeg file in a gnlfilesource?  I get
> errors when I try it.
> Thanks,
> Wes
>       gst-launch gnlcomposition \
>         { \
>            gnlfilesource name="s1" location="/home/wmiller/2.mkv" \
>            start=0 duration=5000000000 media-start=0
> media-duration=5000000000 \
>         } \
>             ! queue2 ! matroskademux ! image/jpeg ! jpegdec !
> ffmpegcolorspace ! videorate ! autovideosink
>       ERROR: from element /GstPipeline:pipeline0/GnlFileSource:s1: Could not
> perform seek on resource.
>       Additional debug info:
>       gnlsource.c(332): ghost_seek_pad ():
> /GstPipeline:pipeline0/GnlFileSource:s1:
>       Sending initial seek to upstream element failed
>       ERROR: pipeline doesn't want to preroll.
>       Setting pipeline to NULL ...
>       (gst-launch-0.10:5569): GStreamer-CRITICAL **:
> gst_pad_set_blocked_async_full: assertion
>      `GST_IS_PAD (pad)' failed
This pipeline works for me

gst-launch gnlcomposition \( gnlfilesource 
media-start=840000000000 media-duration=10000000000 start=0 
duration=10000000000 \) ! ffmpegcolorspace ! xvimagesink

Differences I see are () not {} wrapping the gnlfilesource, not sure if 
that matters, the location= is a URL not a file name, the output is 
already run through decoders internally so you don't need the 
matroskademux ! jpegdec elements. You might be missing a \ after the 
media-start=0 or likely the email program just folded the line.

Also, from your file path it looks like you are on Linux. If you open 
the matroska MJPEG file in totem, is the time scrub bar useful in 
changing your position in the file? The reason I ask is if you can't 
move in time using the slider control but the file plays then the index 
is missing from the end of the file. If you created the file with 
gst-launch without the -e option and hit cntrl-C to stop, the index is 
not written. Index writing is initiated when matroskamux sees EOS. End 
result I believe is no index, no seeking.

More information about the gstreamer-devel mailing list