ffmpeg 特效 转场 放大缩小

案例

复制代码
ffmpeg \
-i input.mp4 \
-i image1.png \
-i image2.png \
-filter_complex \
[1:v]scale=100:100[img1]; \
[2:v]scale=1280:720[img2]; \
[0:v][img1]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[bkg];\
[bkg][img2]overlay=0:0 \
-y output.mp4

-i input.mp4//这个是原始文件

-i image1.png//第一个水印图片

-i image2.png//第二个水印图片

-y output.mp4//输出文件

1:v\]这个里头两个参数,1表示的是操作对象的编号。在本例中 0就是原始视频文件input.mp4, 1就是image1.png, 2就是image2.png, 3就是output.mp4。 而另一个参数v表示操作对象里的视频信息。 \[img1\]是这个操作过滤器的名字。(当然名字可以随便起) \[1:v\]scale=100:100\[img1\]; \\ 所以这头一句\[1:v\]scale=100:100\[img1\]的意思就是对图片imagei.png进行调节尺寸的操作,并将这个操作的结果命名为img1。 \[2:v\]scale=1280:720\[img2\]; \\ 后面的\[2:v\]和\[img2\]也是一个意思。 \[0:v\]\[img1\]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2\[bkg\];\\ 我们继续,overlay前面\[0:v\]\[img1\]凑一起是什么意思呢 0自然就是指的原始视频input.mp4,这句的意思就是将\[img1\]叠加到0对象的视频上。本例中就是把image1.png叠加到input.mp4上。 这里需要注意的就是顺序:后一个对象叠加到前一个上,后一个对象在上层。如果写成\[img1\]\[0:v\],那相对本例其实就是把视频叠加到图片imge1.png上。这样的话一般来说由于视频通常是全屏,等于用视频覆盖了图片,水印完全看不到了。 好,我们又把这个操作的结果命名为\[bkg\], \[bkg\]\[img2\]overlay=0:0 \\ 那么接下来\[bkg\]\[img2\]的意思就很明了了。就是把image2.png再叠加上去,image2.png是在最上层的,如果位置重合的话,他会遮盖 image1.png的水印。 于是,事就这样成了。

转场动画

复制代码
ffmpeg \
-loop 1 -t 3 -i img001.jpg \
-loop 1 -t 3 -i img002.jpg \
-loop 1 -t 3 -i img003.jpg \
-loop 1 -t 3 -i img004.jpg \
-loop 1 -t 3 -i img005.jpg \
-filter_complex \
"[0][1]xfade=transition=circlecrop:duration=0.5:offset=2.5[f0]; \
[f0][2]xfade=transition=smoothleft:duration=0.5:offset=5[f1]; \
[f1][3]xfade=transition=pixelize:duration=0.5:offset=7.5[f2]; \
[f2][4]xfade=transition=hblur:duration=0.5:offset=10[f3]" \
-map "[f3]" -r 25 -pix_fmt yuv420p -vcodec libx264 output-swipe-custom.mp4

duration:动效时间

offset:指前一个视频做转场的起始位置,是从视频头开始算

0:1\]这个里头两个参数,0表示的是操作对象的编号。在本例中0就是img001.jpg,1就是img002.jpg,2就是img003.jpg。 \[f0\]是这个操作过滤器的名字。(当然名字可以随便起) \|\<==offset \|\<==duration==\>\| AAAAAAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBBBBBBBBBBBBBB

复制代码
"[0][1:v]xfade=transition=fade:duration=1:offset=3[vfade1]; \
 [vfade1][2:v]xfade=transition=fade:duration=1:offset=10[vfade2]; \
 [vfade2][3:v]xfade=transition=fade:duration=1:offset=21[vfade3]; \
 [vfade3][4:v]xfade=transition=fade:duration=1:offset=25,format=yuv420p; \
 [0:a][1:a]acrossfade=d=1[afade1]; \
 [afade1][2:a]acrossfade=d=1[afade2]; \
 [afade2][3:a]acrossfade=d=1[afade3]; \
 [afade3][4:a]acrossfade=d=1" \
-movflags +faststart out.mp4
input input duration + previous xfade offset - xfade duration offset =
v0.mp4 4 + 0 - 1 3
v1.mp4 8 + 3 - 1 10
v2.mp4 12 + 10 - 1 21
v3.mp4 5 + 21 - 1 25

Merging multiple video files with ffmpeg and xfade filter - Stack Overflow

转场+放大

复制代码
ffmpeg \
-t 5 -i 1.jpg \
-t 5 -i 2.jpg \
-t 5 -i 3.jpg \
-t 5 -i 4.jpg \
-filter_complex \
"[0:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=out:st=4:d=1[v0]; \
 [1:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \
 [2:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \
 [3:v]zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=125,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v3]; \
 [v0][v1][v2][v3]concat=n=4:v=1:a=0,format=yuv420p[v]" -map "[v]" -s "800x450" -t 40 ./out_fade.mp4

参数v表示操作对象里的视频信息。

st=0 表示动画的开始时间,这里是4

d=3 表示动画的时间

复制代码
ffmpeg \
-loop 1 -t 2 -i 1.jpg \
-loop 1 -t 2 -i 2.jpg \
-loop 1 -t 2 -i 3.jpg \
-loop 1 -t 2 -i 4.jpg \
-loop 1 -t 2 -i 5.jpg \
-filter_complex \
"[0:v]xfade=transition=wiperight:duration=1:offset=1[v0]; \
[1:v]xfade=transition=wiperight:duration=1:offset=1[v1];  \
[2:v]xfade=transition=wiperight:duration=1:offset=1[v2];  \
[3:v]xfade=transition=wiperight:duration=1:offset=1[v3]; \
[v0][v1][v2][v3]concat=n=4:v=1:a=0,format=yuv420p[v]" \
-map "[v]" \
-y out.mp4

FFmpeg中转场滤镜xfade的时间参数(duration和offset)与算法解读_ffmpeg xfade_Jack_Chai的博客-CSDN博客

How to Create a Slideshow from Images with FFmpeg - Bannerbear

Creating an FFmpeg image slideshow with zoompan and fade in/out - Super User

FFmpeg实现音视频同步的精准片段拼接_ffmpeg atrim_Jack_Chai的博客-CSDN博客

所有转场效果: Xfade -- FFmpeg

xfade官方文档:FFmpeg Filters Documentation

fade滤镜:FFmpeg Filters Documentation

zoompan

FFmpeg滤镜效果--镜头聚焦和移动走位 - 知乎

相关推荐
qq_316837756 小时前
使用ffmpeg 将图片合成为视频,填充模糊背景,并添加两段音乐
ffmpeg·音视频
林鸿群10 小时前
Mediamtx与FFmpeg远程与本地推拉流使用
ffmpeg
unix2linux2 天前
YOLO v5 Series - FFmpeg & (HTML5 + FLV.js ) & ONNX YOLOv5s Integrating
yolo·ffmpeg·html5
Antonio9152 天前
【音视频】FFmpeg解封装
ffmpeg·音视频
Antonio9152 天前
【音视频】FFmpeg内存模型
ffmpeg·音视频
hjjdebug2 天前
全面介绍AVFilter 的添加和使用
ffmpeg·avfilter
邪恶的贝利亚2 天前
基于 FFmpeg 的音视频处理基础原理与实验探究
ffmpeg·音视频
Antonio9153 天前
【音视频】AAC-ADTS分析
ffmpeg·音视频·aac
这被禁忌的游戏3 天前
网页下载的m3u8格式文件使用FFmpeg转为MP4
ffmpeg
hunandede3 天前
ffmpeg 硬解码相关知识
ffmpeg