Capturing jpegs from an h264 stream

Tim-Philipp Müller t.i.m at zen.co.uk
Fri Jun 7 01:30:25 PDT 2013


On Fri, 2013-06-07 at 09:13 +0100, Alex Hewson wrote:

> Now let's try putting the capssetter before decodebin...
> 
> raspivid -n -t 1000000 -vf -b 2000000 -fps 25 -o - |   \
>    gst-launch-1.0 fdsrc fd=0 ! capssetter 
> caps='video/x-raw,framerate=25/1' replace=true \
>      ! decodebin ! videorate \
>      ! video/x-raw,framerate=1/1 ! videorate ! jpegenc quality=75 \
>      ! multifilesink location='img_%04d.jpg'
> 
> root at raspberrypi:~/streamtest# ./l2.sh
> Setting pipeline to PAUSED ...
> Pipeline is PREROLLING ...
> 
> (gst-launch-1.0:8124): GStreamer-WARNING **: 
> gstpad.c:4503:store_sticky_event:<typefind:src> Sticky event 
> misordering, got 'caps' before 'stream-start'
> ...sticks in 'prerolling' forever.

You can ignore those sticky event warnings.

It would be good if you could pass -v to gst-launch-1.0 and show us the
output of that as well.

And I didn't notice the replace=true on the capssetter before. If that
actually replaces the caps fully, then you're replacing them with
incomplete caps, which will definitely result in a not-negotiated.

I don't understand what your purpose with that capssetter is. The
framerate in the caps is purely informational, it won't affect anything,
only timestamps on buffers matter for videorate as input.

Cheers
 -Tim



More information about the gstreamer-devel mailing list