[FFmpeg-devel] Filters

JULIAN GARDNER joolzg at btinternet.com
Fri Jul 18 14:14:25 CEST 2014





----- Original Message -----
> From: Clément Bœsch <u at pkh.me>
> To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
> Cc: 
> Sent: Friday, 18 July 2014, 14:01
> Subject: Re: [FFmpeg-devel] Filters
> 
> On Fri, Jul 18, 2014 at 12:56:17PM +0100, JULIAN GARDNER wrote:
>>  >________________________________
>>  > From: Clément Bœsch <u at pkh.me>
>>  >To: FFmpeg development discussions and patches 
> <ffmpeg-devel at ffmpeg.org> 
>>  >Sent: Friday, 18 July 2014, 13:38
>>  >Subject: Re: [FFmpeg-devel] Filters
>>  > 
>>  >
>>  >On Fri, Jul 18, 2014 at 12:08:41PM +0100, JULIAN GARDNER wrote:
>>  >> How do I fix a filter so that it takes in 1 input but has no 
> output, this is part of a project and this part is a detection filter, it does 
> nothing else.
>>  >> 
>>  >> The problem at the moment is that with the current filter, based 
> on drawbox, is that it produces an output which i need to the use overlay to 
> dump.
>>  >> 
>>  >> Is there a video filter which has 1 input but 0 outputs
>>  >
>>  >Just make a passthrough filtering (ff_filter_frame(in)), and do not map
>>  >its output
>>  >
>> 
>> 
>>  Can you elaborate a bit more as I have this code as my base code
>> 
>> 
>>  static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
>>  {
>>      DrawBoxContext *s = inlink->dst->priv;
>>      int plane, x, y, xb = s->x, yb = s->y;
>>      unsigned char *row[4];
>> 
>>      // Detect Stationary Object
>>      ....
>> 
>>      // Here I would like to dump the frame as it is no longer needed
>> 
>>      return ff_filter_frame(inlink->dst->outputs[0], frame);
>>  }
>> 
> 
> You do exactly that and that's all. Then ffmpeg -i foo -vf bar -f null -
> 
> There are a lot of detection only filters. volumedetect, signalstats,
> blackdetect, ... just copy their behaviour
> 

Yes but this is my problem, an example command line I need at the moment

fmpeg -i xxxx.ts -vcodec libx264 -b:v 1000k -acodec libfaac -async 1 -vf
 'split [mark], detection [dontneed];delay=5, markregion 
[vid];[dontneed][vid] overlay' -y -f mpegts processed.ts

What I would like

fmpeg -i xxxx.ts -vcodec libx264 -b:v 1000k -acodec libfaac -async 1 -vf
 'split [mark], detection; delay=5, markregion' -y -f mpegts processed.ts

I am working on the delay filter at the moment, as i need 5 frames to detect the block, but i need to mark all frames, including the 4 previous frames. I am trying to get rid of the overlay as the input source could be HD.

joolz


More information about the ffmpeg-devel mailing list