| Version 36 (modified by , 10 years ago) ( diff ) |
|---|
Fancy Filtering Examples
Video
cellauto
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
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
mirror effect
ffplay -i INPUT -vf "crop=iw/2:ih:0:0,split[left][tmp];[tmp]hflip[right];[left][right] hstack"
video channel separation effect with lut filter
ffplay -f lavfi -i testsrc -vf "split=4[a][b][c][d];[b]lutrgb=g=0:b=0[x];[c]lutrgb=r=0:b=0[y];[d]lutrgb=r=0:g=0[z];[a][x][y][z]hstack=4"
ffplay -f lavfi -i testsrc -vf "split=4[a][b][c][d];[b]lutyuv=u=128:v=128[x];[c]lutyuv=y=0:v=128[y];[d]lutyuv=y=0:u=128[z];[a][x][y][z]hstack=4"
histogram & waveform
ffplay -f lavfi -i mandelbrot -vf "format=gbrp,split=4[a][b][c][d],[d]histogram=display_mode=0:level_height=244[dd],[a]waveform=m=1:d=0:r=0:c=7[aa],[b]waveform=m=0:d=0:r=0:c=7[bb],[c][aa]vstack[V],[bb][dd]vstack[V2],[V][V2]hstack"
vectorscope & waveforms
ffplay -f lavfi -i mandelbrot -vf "format=yuv444p,split=4[a][b][c][d],[a]waveform[aa],[b][aa]vstack[V],[c]waveform=m=0[cc],[d]vectorscope=color4[dd],[cc][dd]vstack[V2],[V][V2]hstack"
waveform
Split the waveform filter to show broadcast range of the waveform (y values between 16 and 235) in green and out of broadcast range in red.
ffplay -i http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi -vf "split[a][b];[a]format=gray,waveform,split[c][d];[b]pad=iw:ih+256[padded];[c]geq=g=1:b=1[red];[d]geq=r=1:b=1,crop=in_w:220:0:16[mid];[red][mid]overlay=0:16[wave];[padded][wave]overlay=0:H-h"
waveform with envelope
Split the waveform filter to show broadcast range of the waveform (y values between 16 and 235) in green and out of broadcast range in red and also use envelope.
ffplay ~/matrixbench_mpeg2.mpg -vf "split[a][b];[a]waveform=e=3,split=3[c][d][e];[e]crop=in_w:20:0:235,lutyuv=v=180[low];[c]crop=in_w:16:0:0,lutyuv=y=val:v=180[high];[d]crop=in_w:220:0:16,lutyuv=v=110[mid] ; [b][high][mid][low]vstack=4"
more waveforms and vectorscope
datascope
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[waves]; [b]showspectrum=s=640x240[spectrum]; [waves][spectrum] vstack[out0]'
showspectrum
Given the multichannel audio file tearsofsteel-surround.flac:
ffplay -f lavfi 'amovie=tearsofsteel-surround.flac,asplit=2[out1][a]; [a]showspectrum=color=channel:scale=cbrt:orientation=vertical:overlap=1:s=2048x1024[out0]'
Now with different colors and scaling:
ffplay -f lavfi 'amovie=tearsofsteel-surround.flac,asplit=2[out1][a]; [a]showspectrum=color=fire:scale=log:orientation=vertical:overlap=1:s=1024x1024[out0]'
avectorscope
Given the audio file input.flac:
ffplay -f lavfi 'amovie=input.flac,asplit=2[out1][a],[a]avectorscope=m=polar:s=800x400[out0]'
showcqt
Given the audio file input.flac:
ffplay -f lavfi 'amovie=input.flac,asplit=2[out1][a],[a]showcqt[out0]'
showspectrumpic
Given the audio file input.flac:
ffmpeg -i input.flac -lavfi showspectrumpic=s=hd720 out.jpg
Attachments (28)
-
mandelbrot.png
(99.4 KB
) - added by 14 years ago.
mandelbrot image
-
life.png
(8.8 KB
) - added by 14 years ago.
life image
-
cellauto.png
(4.9 KB
) - added by 14 years ago.
cellauto image
-
ffplay-mirror.jpg
(19.6 KB
) - added by 14 years ago.
Mirror effect with lavfi
-
life2.png
(86.9 KB
) - added by 14 years ago.
Second example for life filter (blue & blur)
-
ffplay-waves-spectrum.png
(220.9 KB
) - added by 14 years ago.
FFplay with showwaves and showspectrum
-
rgb_sep.jpg
(22.7 KB
) - added by 14 years ago.
original image plus images of the separations of the R, G, and B channels
-
yuv_sep.jpg
(17.0 KB
) - added by 14 years ago.
original image plus images of the separations of the Y, U, and V channels
- histograms.png (835.6 KB ) - added by 13 years ago.
- waveform.jpg (41.2 KB ) - added by 13 years ago.
- waveforms_vectorscope.png (504.4 KB ) - added by 11 years ago.
- polar_avectorscope.png (56.6 KB ) - added by 11 years ago.
- waveforme.png (367.9 KB ) - added by 11 years ago.
- showcqt.png (208.6 KB ) - added by 11 years ago.
- mcspectrum.jpeg (178.0 KB ) - added by 11 years ago.
- firespectrum.jpeg (116.3 KB ) - added by 11 years ago.
- showspectrumpic.jpg (732.3 KB ) - added by 10 years ago.
- wfmg.jpg (284.2 KB ) - added by 10 years ago.
- wfmgc.jpg (220.4 KB ) - added by 10 years ago.
- datascope.jpg (638.1 KB ) - added by 10 years ago.
-
showcqt-sidebyside.jpg
(345.3 KB
) - added by 6 years ago.
Visualizing a video's audio side by side with showcqt
-
showcqt-sidebyside.2.jpg
(309 bytes
) - added by 6 years ago.
delete this, it's just a duplicate. Attempting to overwrite the bad one now
- mpv-shot0002.png (38.1 KB ) - added by 4 years ago.
- mpv-shot0001.png (33.7 KB ) - added by 4 years ago.
- circular.png (106.1 KB ) - added by 4 years ago.
- spiral.png (103.7 KB ) - added by 4 years ago.
- showcwt02.jpeg (134.1 KB ) - added by 4 years ago.
- showcwt01.jpeg (191.3 KB ) - added by 4 years ago.






















