#ffmpeg -i test.mp4 -vf “movie=filename=plum.jpg,scale=width=120:height=120[watermark];[in] [watermark]overlay=x=0:y=0” ff_movie=mp4
#ffmpeg -f lavfi -i color=ffffff:size=700×300 -frames:v 1 -vf “drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=40:x=10:y=5:text=’规则变化表'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=10:y=50:text=’great greater greatest | fine finer finest'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=10:y=80:text=’angry angrier angriest | big bigger biggest'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=10:y=110:text=’important more important most important'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=10:y=140:text=’clever cleverer cleverest'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=130:y=170:text=’more clever most clever'” -f image2 规则变化表.jpg
#ffmpeg -f lavfi -i color=ffffff:size=700×400 -frames:v 1 -vf “drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=40:x=10:y=5:text=’不规则变化表'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=10:y=50:text=’good/well better best | bad worse worst'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=10:y=80:text=’many/much more most | little less least'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=10:y=110:text=’far farther(距离) farthest(距离)'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=80:y=140:text=’further(程度) furthest(程度)'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=10:y=170:text=’old older(年龄,新旧) oldest(年龄,新旧)'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=80:y=210:text=’elder(长幼) eldest(长幼)'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=10:y=245:text=’late later(时间) latest(时间)'”,”drawtext=fontfile=/usr/share/fonts/songhei.ttf:fontcolor=ff0000:fontsize=30:x=80:y=275:text=’latter(顺序) last(顺序)'” -f image2 不规则变化表.jpg
#图片拼接,两张图片垂直拼接在一起。
#ffmpeg -i senniu.jpg -i senniu1.jpg -frames:v 1 -filter_complex “nullsrc=size=990×1943 [base]; [base][0] overlay=1:1 [upper]; [upper][1] overlay=1:973” -f image2 senniu-0.jpg
##ffmpeg -i temp0.jpg -i temp1.jpg -i temp2.jpg -i temp3.jpg -frames:v 1 -filter_complex “nullsrc=size=705×500[a];[a][0:v]overlay=1:3[b];[b][1:v]overlay=1:125[c];[c][2:v]overlay=1:247[d];[d][3:v]overlay=1:369” -f image2 temp0123.jpg
##ffmpeg -i temp001.jpg -i temp002.jpg -i temp003.jpg -frames:v 1 -filter_complex “nullsrc=size=2105×124[a];[a][0:v]overlay=2:2[b];[b][1:v]overlay=704:2[c];[c][2:v]overlay=1406:2” -f image2 temp000123.jpg
#ffmpeg -i a8-0.jpg -i a8-1.jpg -frames:v 1 -filter_complex “nullsrc=size=1312×904[a];[a][0:v]overlay=0:0[b];[b][1:v]overlay=0:602” -f image2 a8.jpg
#ffmpeg -i 0-0.jpg -i 0-0.jpg -i 0-0.jpg -i 0-0.jpg -i 0-0.jpg -frames:v 1 -filter_complex “nullsrc=size=111×23[a];[a][0:v]overlay=0:0[b];[b][1:v]overlay=23:0[c];[c][2:v]overlay=45:0[b];[b][3:v]overlay=67:0[c];[c][4:v]overlay=89:0” -f image2 0-1.jpg -y
#ffmpeg -i 0-1.jpg -i 0-1.jpg -i 0-1.jpg -i 0-1.jpg -i 0-1.jpg -frames:v 1 -filter_complex “nullsrc=size=552×23[a];[a][0:v]overlay=0:0[b];[b][1:v]overlay=111:0[c];[c][2:v]overlay=221:0[b];[b][3:v]overlay=331:0[c];[c][4:v]overlay=441:0” -f image2 0-5.jpg -y
#ffmpeg -f lavfi -i color=ff00ff:size=528×26 -frames:v 1 -f image2 bg.jpg
#ffmpeg -i bg-0-5-eq.jpg -i bg-0-5-eq.jpg -i bg-0-5-eq.jpg -i bg-0-5-eq.jpg -i bg-0-5-eq.jpg -frames:v 1 -filter_complex “nullsrc=size=558×130[a];[a][0:v]overlay=0:0[b];[b][1:v]overlay=0:26[c];[c][2:v]overlay=0:52[b];[b][3:v]overlay=0:78[c];[c][4:v]overlay=0:104” -f image2 0-25-0.jpg -y
#ffmpeg -i 0-25-0-eq.jpg -i 0-25-0-eq.jpg -i 0-25-0-eq.jpg -i 0-25-0-eq.jpg -i 0-25-0-eq.jpg -frames:v 1 -filter_complex “nullsrc=size=558×130[a];[a][0:v]overlay=0:0[b];[b][1:v]overlay=0:26[c];[c][2:v]overlay=0:52[b];[b][3:v]overlay=0:78[c];[c][4:v]overlay=0:104” -f image2 0-25-1.jpg -y
ffmpeg -i 0-25-1-eq.jpg -i 0-25-1-eq.jpg -i 0-25-1-eq.jpg -i 0-25-1-eq.jpg -i 0-25-1-eq.jpg -i 0-25-1-eq.jpg -frames:v 1 -filter_complex “nullsrc=size=558×780[a];[a][0:v]overlay=0:0[b];[b][1:v]overlay=0:131[c];[c][2:v]overlay=0:261[b];[b][3:v]overlay=0:391[c];[c][4:v]overlay=0:521[d];[d][5:v]overlay=0:651” -f image2 0-25-5.jpg -y
#ffmpeg -i ffmpeg-A4-english.jpg -i ffmpeg-A4-english.jpg -i ffmpeg-A4-english.jpg -frames:v 1 -filter_complex “nullsrc=size=520×600[a];[a][0:v]overlay=0:0[b];[b][1:v]overlay=0:121[c];[c][2:v]overlay=0:241[b];[b][3:v]overlay=0:361[c];[c][4:v]overlay=0:481” -f image2 0-25.jpg -y
root135@root135:~/Documents$ ffmpeg -h filter=overlay
ffmpeg version 4.4.2-1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 8 (Uos 8.3.0.3-3+rebuild)
configuration: –prefix=/usr –extra-version=1 –toolchain=hardened –libdir=/usr/lib/x86_64-linux-gnu –incdir=/usr/include/x86_64-linux-gnu –arch=amd64 –enable-gpl –disable-stripping –enable-gnutls –enable-ladspa –enable-libaom –enable-libass –enable-libbluray –enable-libbs2b –enable-libcaca –enable-libcdio –enable-libcodec2 –enable-libdav1d –enable-libflite –enable-libfontconfig –enable-libfreetype –enable-libfribidi –enable-libgme –enable-libgsm –enable-libjack –enable-libmp3lame –enable-libmysofa –enable-libopenjpeg –enable-libopenmpt –enable-libopus –enable-libpulse –enable-librabbitmq –enable-librubberband –enable-libshine –enable-libsnappy –enable-libsoxr –enable-libspeex –enable-libsrt –enable-libssh –enable-libtheora –enable-libtwolame –enable-libvidstab –enable-libvorbis –enable-libvpx –enable-libwebp –enable-libx265 –enable-libxml2 –enable-libxvid –enable-libzimg –enable-libzmq –enable-libzvbi –enable-lv2 –enable-omx –enable-openal –enable-opencl –enable-opengl –enable-sdl2 –disable-sndio –enable-pocketsphinx –enable-librsvg –enable-libmfx –enable-libdc1394 –enable-libdrm –enable-libiec61883 –enable-chromaprint –enable-frei0r –enable-libx264 –enable-shared
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
Filter overlay
Overlay a video source on top of the input.
slice threading supported
Inputs:
#0: main (video)
#1: overlay (video)
Outputs:
#0: default (video)
overlay AVOptions:
x <string> ..FV……. set the x expression (default “0”)
y <string> ..FV……. set the y expression (default “0”)
eof_action <int> ..FV……. Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
repeat 0 ..FV……. Repeat the previous frame.
endall 1 ..FV……. End both streams.
pass 2 ..FV……. Pass through the main input.
eval <int> ..FV……. specify when to evaluate expressions (from 0 to 1) (default frame)
init 0 ..FV……. eval expressions once during initialization
frame 1 ..FV……. eval expressions per-frame
shortest <boolean> ..FV……. force termination when the shortest input terminates (default false)
format <int> ..FV……. set output format (from 0 to 7) (default yuv420)
yuv420 0 ..FV…….
yuv420p10 1 ..FV…….
yuv422 2 ..FV…….
yuv422p10 3 ..FV…….
yuv444 4 ..FV…….
rgb 5 ..FV…….
gbrp 6 ..FV…….
auto 7 ..FV…….
repeatlast <boolean> ..FV……. repeat overlay of the last overlay frame (default true)
alpha <int> ..FV……. alpha format (from 0 to 1) (default straight)
straight 0 ..FV…….
premultiplied 1 ..FV…….
framesync AVOptions:
eof_action <int> ..FV……. Action to take when encountering EOF from secondary input (from 0 to 2) (default repeat)
repeat 0 ..FV……. Repeat the previous frame.
endall 1 ..FV……. End both streams.
pass 2 ..FV……. Pass through the main input.
shortest <boolean> ..FV……. force termination when the shortest input terminates (default false)
repeatlast <boolean> ..FV……. extend last frame of secondary streams beyond EOF (default true)
This filter has support for timeline through the ‘enable’ option.
ffmpeg -i test-0.mp4 -vf “movie=filename=../sea.mp4,scale=w=iw/3:h=ih/3[watermarker]; [in][watermarker]overlay=x=0:y=0” ff_movie.mp4
ffmpeg -i test-0.mp4 -i test-1.mp4 -filter_complex “[1:v]scale=w=iw/3:h=ih/3[v1];[0:v][v1]overlay=x=0:y=0” ff_overlay.mp4
ffmpeg -i fuzhou.mp4 -i seas.mp4 -i seas.mp4 -i fuzhous.mp4 “[0:v]pad=width=iw*2:height=ih*2[a]; [a][1:v]overlay=x=w[b];[b][2:v]overlay=x=0:y=h[c];[c][3:v]overlay=x=w:y=h”