<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 01/24/2012 11:50 PM, ctor dtor wrote:
    <blockquote
cite="mid:CAOzwNj=y09jabnqNswaFRb66N+SKnOQM42UifZ5hq0jvHP-Rmg@mail.gmail.com"
      type="cite">Hi everybody,<br>
      the problem that I am trying to solve is turning to a more generic
      one so the related discussion maybe of general interest.<br>
      My need started around the "motion" plugin but soon it became
      applicable to its more viable alternative too - the
      "motiondetector" plugin.<br>
      Both these plugins do perform motion detection on a video stream,
      both signaling with a similar message the motion
      detected/undetected status change.<br>
      I was looking for, at least, one of the following features
      implemented via gstreamer plugin or app, on the basis of the
      "motion detected" status:<br>
      <br>
      a) being able to only filter out video frames where motion is
      detected, resulting in a rebuilt continuous video stream
      (hopefully with no still frames).<br>
      Maybe an example for this is the audio "cutter" filter.<br>
      <br>
      b) writing out a different video file/stream whenever the "motion
      detected" status does change, in the same fashion that
      multifilesink does<br>
      <br>
      One of the first tries in order for b) was to modify the
      multifilesink code in order to cut output files on the "motion
      detected" status change.<br>
    </blockquote>
    <br>
    Wouldn't it work if you simply drop non-motion frames and let
    multifilesink split videosequences based on the discont event (your
    motion-drop element would need to set the discont flag on the first
    motion frame after a still-sequence).<br>
    <br>
    Stefan<br>
    <br>
    <blockquote
cite="mid:CAOzwNj=y09jabnqNswaFRb66N+SKnOQM42UifZ5hq0jvHP-Rmg@mail.gmail.com"
      type="cite">
      A skeleton pipeline for this could be <br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filesrc ! \<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (video decoding elements) ! \<br>
      (x)&nbsp;&nbsp;&nbsp; motion ! \<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (video encoding elements) ! \<br>
      (y)&nbsp;&nbsp;&nbsp; multifilesink<br>
      <br>
      Please tell me if wrong, I understood that only a gstreamer
      application building a pipeline can notify (y) on the basis of a
      message from (x), <br>
      so in order for b) writing a plugin derived from multifilesink
      won't suffice. <br>
      Now I am trying to write a gstreamer application, I was able to
      build up the pipeline and manage a bus callback for the "motion
      detected" message,<br>
      but I think I will take a break in writing unuseful code... :)<br>
      <br>
      I believe however that my approach is applicable to any plugin,
      other than motion detection related, that performs an analysis on
      the video stream<br>
      resulting in assigning a boolean value to each frame passed. The
      final sink implementing a) or b) could be far down the pipeline.<br>
      To me it seems a quite generic problem, name it "boolean event
      filter" e.g., so I guess there could be solutions around... any
      ideas ?<br>
      Thanks everybody for the interest,<br>
      <br>
      Bye<br>
      <br>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
gstreamer-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>