# FancyFilteringExamples

Version 7 (modified by ubitux, 7 years ago) (diff)

# Fancy Filtering Examples

1. Video
2. Audio

## Video

### cellauto

```ffplay -f lavfi -i cellauto
ffmpeg -f lavfi -i cellauto -t 10 output.mkv
```

### life

```ffplay -f lavfi -i life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
ffplay -f lavfi -i life=s=640x480:mold=10:r=100:ratio=0.1:death_color=blue:life_color=#00ff00,boxblur=2:2
```

### mandelbrot

```ffplay -f lavfi -i mandelbrot
ffmpeg -f lavfi -i mandelbrot -t 10 output.mkv
```

### mirror effect

```ffplay -i INPUT -vf "crop=iw/2:ih:0:0,split[tmp],pad=2*iw[left]; [tmp]hflip[right]; [left][right] overlay=W/2"
```

## Audio

### aevalsrc

Making some random "musical" keys:

```% cat expr
# floor(t): 0 0 0 0 0 ... 1 1 1 1 1 ... 2 2 2 2 2
#  => set a random key when floor(t) changes
if(eq(floor(t),ld(2)),
st(0,random(4)*3000+1000));

# the next value to compare floor(t) with
st(2,floor(t)+1);

# mod(t,1) makes t always in the range [0;1) for each key
st(1,mod(t,1));

# 0.6*... + 0.4*... for "echo" effect
# exp() to mitigate the sound according to the time
(0.6*sin(1*ld(0)*ld(1))+
0.4*sin(2*ld(0)*ld(1)))*exp(-4*ld(1))
```

And to test it:

```ffplay -f lavfi -i "aevalsrc=\$(grep -v '^#' expr|tr -d '\n'|sed 's/\([,;]\)/\\\1/g')"
```