As a gstreamer newbie I started writing a small python/gstreamer app
about a year ago. Fetching a snapshot out of a running videostream took
me months. I almost abandoned gstreamer altogether because of this.
This feat, currently, requires an unproportionally huge knowledge of
gstreamer inner workings to accomplish.
<br><br>I also see this question appear from time to time on the
mailing list. Therefore, in all humbleness, I suggest to the gstream
core developers to incorporate into gstreamer a snapshot element that
hides this mess from a regular programmer. <br><br>Best regards,<br><span class="sg"><br>Fredrik Persson</span><br><br><div><span class="gmail_quote">On 8/2/07, <b class="gmail_sendername">Luis de Bethencourt</b> <<a href="mailto:bethencourt@gmail.com">
bethencourt@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I'll give it a try this afternoon.<br><br>Thanks a lot,
<br>Luis de Bethencourt<br><br>On 8/2/07, Tim Müller <<a href="mailto:t.i.m@zen.co.uk">t.i.m@zen.co.uk</a>> wrote:<br>> On Tue, 2007-07-31 at 20:32 +0100, Luis de Bethencourt wrote:<br>><br>> > ... I would need to get a pixbuf from the frame at the middle
<br>> > of the video. First frame is not as representative because of<br>> > fade ins. How can I do this in gstreamer?<br>><br>> You might want to have a look at totem's video-thumbnailer for<br>> inspiration. It's a bit clunky, but fairly straight-forward (basically
<br>> it just uses playbin, sets it to PAUSED state, seeks, gets the last<br>> frame via playbin's "frame" property and shoves that into a conversion<br>> pipeline to get a GdkPixbuf).<br>><br>> You can probably achieve the same thing with a pipeline like:
<br>><br>> filesrc location=video.file ! decodebin ! ffmpegcolorspace !<br>> videoscale !<br>> video/x-raw-rgb,width=64,height=64,bpp=24,depth=24,red_mask=... !<br>> fakesink<br>><br>> and then get a RGB24 buffer via fakesink's preroll-handoff signal (which
<br>> is emitted in PAUSED state), which in turn is easily convertible into a<br>> GdkPixbuf or whatever you need.<br>><br>> Cheers<br>> -Tim<br>><br>><br>><br>> -------------------------------------------------------------------------
<br>> This SF.net email is sponsored by: Splunk Inc.<br>> Still grepping through log files to find problems? Stop.<br>> Now Search log events and configuration files using AJAX and a browser.<br>> Download your FREE copy of Splunk now >>
<a href="http://get.splunk.com/">http://get.splunk.com/</a><br>> _______________________________________________<br>> gstreamer-devel mailing list<br>> <a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net
</a><br>> <a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>><br><br><br>--<br>Luis de Bethencourt Guimerá<br>luisbg<br><<a href="mailto:bethencourt@gmail.com">
bethencourt@gmail.com</a>><br>GPG: B0ED1326<br><br>-------------------------------------------------------------------------<br>This SF.net email is sponsored by: Splunk Inc.<br>Still grepping through log files to find problems? Stop.
<br>Now Search log events and configuration files using AJAX and a browser.<br>Download your FREE copy of Splunk now >> <a href="http://get.splunk.com/">http://get.splunk.com/</a><br>_______________________________________________
<br>gstreamer-devel mailing list<br><a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br><a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
</a><br></blockquote></div><br>