wiki:

FancyFilteringExamples


Version 14 (modified by ubitux, 3 years ago) (diff)

histogram: ffmpeg -> ffplay

Fancy Filtering Examples

Video

cellauto

cellauto image

ffplay -f lavfi -i cellauto=rule=110

Other interesting cellauto rule values: 9, 18, 22, 26, 30, 41, 45, 50, 54, 60, 62, 73, 75, 77, 82, 86, 89, 90, 97, 99, 101, 102, 105, 107, 109, 110 (default), 124, 126, 129, 131, 133, 135, 137, 145, 146, 149, 150, 151, 153, 154, 161, 167, 169, 181, 182, 183, 193, 195, 210, 218, 225.

life

life image

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

Second example for life filter (blue & blur)

ffplay -f lavfi -i life=s=640x480:mold=10:r=100:ratio=0.1:death_color=blue:life_color=#00ff00,boxblur=2:2

mandelbrot

mandelbrot image

ffplay -f lavfi -i mandelbrot

mirror effect

Mirror effect with lavfi

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

video channel separation effect with lut filter

RGB version original image plus images of the separations of the R, G, and B channels

ffmpeg -f lavfi -i testsrc=d=10 -filter_complex "split=4[a][b][c][d];[a]pad=iw*4:ih[w];[b]lutrgb=g=0:b=0[x];[c]lutrgb=r=0:b=0[y];[d]lutrgb=r=0:g=0[z];[w][x]overlay=w:0[wx];[wx][y]overlay=w*2:0[wxy];[wxy][z]overlay=w*3:0" -f nut - | ffplay -

YUV version original image plus images of the separations of the Y, U, and V channels

ffmpeg -f lavfi -i testsrc -filter_complex "split=4[a][b][c][d];[a]pad=iw*4:ih[w];[b]lutyuv=u=128:v=128[x];[c]lutyuv=y=0:v=128[y];[d]lutyuv=y=0:u=128[z];[w][x]overlay=w:0[wx];[wx][y]overlay=w*2:0[wxy];[wxy][z]overlay=w*3:0" -f nut - | ffplay -

histogram

ffplay -f lavfi -i mandelbrot -vf "split=4[a][b][c][d],[d]histogram=display_mode=overlay:level_height=244[dd],[a]histogram=mode=waveform:waveform_mode=row:display_mode=overlay[aa],[b]histogram=mode=waveform:waveform_mode=column:display_mode=overlay[bb],[c]pad=iw+256:ih+256[cc],[cc][aa]overlay=x=W-256[ccc],[ccc][bb]overlay=y=H-256[x],[x][dd]overlay=y=H-256:x=W-256"

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')"

showwaves and showspectrum

Given the audio file april.flac:

ffplay -f lavfi 'amovie=april.flac,asplit=3[out1][a][b]; [a]showwaves=s=640x240,pad=iw:ih*2[waves]; [b]showspectrum=s=640x240[spectrum]; [waves][spectrum] overlay=0:h [out0]'

FFplay with showwaves and showspectrum

Attachments (20)