ffmpeg 的最终呈现效果【版本二】
2021-06-08 本文已影响0人
张清柏
2021年03月31日10:51:24 总结命令
实现效果及相关命令
弹入
- png 命令
// 视频 move.mp4
// 从第3秒开始放大,最多放大至2倍,停止放大,显示4秒
ffmpeg -y -loop 1 -i ./jpg/qp1.png -i 0329_short.mp4 -filter_complex "[0]format=pix_fmts=rgba[v0];[v0]scale=-1:'100+20*min(t-3,2)':eval=frame[v1];[1][v1]overlay=x='if(gte(t,3), if(gte(t,7), NAN,700 ),NAN ):y=200:shortest=1'[v2]" -map [v2] -c:v libx264 move.mp4
- gif 命令
ffmpeg -y -i 0329_short.mp4 -ignore_loop 0 -itsoffset 2 -i ./gif/_45.gif -filter_complex "[0:0]scale=iw:ih[a];[1:0]scale=-1:'100+20*min(t-3,2)':eval=frame[wm];[a][wm]overlay=x='if(gte(t,3), if(gte(t,7), NAN,700 ),NAN ):y=200:shortest=1'[v2]" -map [v2] -c:v libx264 move_gif.mp4
弹簧
- png 命令
// 视频 move.mp4
// 需要计算 滑行距离,滑行时间,计算滑行速度
ffmpeg -y -loop 1 -i ./jpg/qp1.png -i 0329_short.mp4 -filter_complex "[0]format=pix_fmts=rgba[v0];[v0]scale=-1:'100+20*sin((t-3)*6)':eval=frame[v1];[1][v1]overlay=x='if(gte(t,3), if(gte(t,7), NAN,700 ),NAN ):y=200:shortest=1'[v2]" -map [v2] -c:v libx264 move.mp4
- gif 命令
ffmpeg -y -i 0329_short.mp4 -ignore_loop 0 -itsoffset 2 -i ./gif/_45.gif -filter_complex "[0:0]scale=iw:ih[a];[1:0]scale=-1:'100+20*sin((t-3)*6)':eval=frame[wm];[a][wm]overlay=x='if(gte(t,3), if(gte(t,7), NAN,700 ),NAN ):y=200:shortest=1'[v2]" -map [v2] -c:v libx264 move_gif.mp4
向左滑动
- png 命令
// 视频 move.mp4
// 需要计算 滑行距离,滑行时间,计算滑行速度
ffmpeg -y -loop 1 -i ./jpg/qp1.png -i 0329_short.mp4 -filter_complex "[0]format=pix_fmts=rgba[v0];[v0]scale=140:140[v1];[1][v1]overlay=x='if(gte(t,3), if(gte(t,6), NAN,1000-(t-3)*40 ),NAN ):y=200:shortest=1'[v2]" -map [v2] -c:v libx264 move.mp4
- gif 命令
ffmpeg -y -i 0329_short.mp4 -ignore_loop 0 -itsoffset 2 -i ./gif/_45.gif -filter_complex "[0:0]scale=iw:ih[a];[1:0]scale=200:200[wm];[a][wm]overlay=x='if(gte(t,3), if(gte(t,6), NAN,1000-(t-3)*40 ),NAN ):y=200:shortest=1'[v2]" -map [v2] -c:v libx264 move_gif.mp4
- 截取命令
ffmpeg -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cutout1.mp4 -y
ffmpeg -i ./demo.mp4 -vcodec copy -acodec copy -ss 00:00:13 -to 00:00:17 ./tanhuang.mp4 -y
ffmpeg -ss 00:00:30 -to 00:00:35 -i demo.mp4 -vcodec copy -acodec copy chandou.mp4
ffmpeg -ss 00:00:47 -to 00:00:51 -i demo.mp4 -vcodec copy -acodec copy qitiao.mp4
ffmpeg -ss 00:00:52 -to 00:00:55 -i demo.mp4 -vcodec copy -acodec copy yushua.mp4
ffmpeg -ss 00:00:13 -to 00:00:15 -i demo.mp4 -vcodec copy -acodec copy tanru.mp4
暂无
向上滑动
同上
向下滑动
同上
颤抖
- png 命令
ffmpeg -y -loop 1 -i ./jpg/qp1.png -i 0329_short.mp4 -filter_complex "[0]format=pix_fmts=rgba[v0];[v0]scale=140:140[v1];[1][v1]overlay=x='if(gte(t,3), if(gte(t,6), NAN,700+mod(floor(n/3),2)*10 ),NAN ):y=200+mod(floor(n/3),2)*10:shortest=1'[v2]" -map [v2] -c:v libx264 chandou_png.mp4
- gif 命令
ffmpeg -y -i 0329_short.mp4 -ignore_loop 0 -itsoffset 2 -i ./gif/_45.gif -filter_complex "[0:0]scale=iw:ih[a];[1:0]scale=200:200[wm];[a][wm]overlay=x='if(gte(t,3), if(gte(t,6), NAN,700+mod(floor(n/3),2)*10 ),NAN ):y=200+mod(floor(n/3),2)*10:shortest=1'[v2]" -map [v2] -c:v libx264 chandou_gif.mp4
摇摆
- png 命令
ffmpeg -loop 1 -i ./jpg/qp1.png -i 0329_short.mp4 -filter_complex "[0]format=pix_fmts=rgba[v0];[v0]rotate=sin(4*PI/2*t):ow='max(iw,ih)':oh=ow:c=none[v1];[1][v1]overlay=y='if(gte(t,2), if(gte(t,5), NAN,200 ),NAN ):x=50:shortest=1'[v2]" -map [v2] -c:v libx264 yaobai_png.mp4
- gif 命令
ffmpeg -y -ignore_loop 0 -i ./gif/_45.gif -i 0329_short.mp4 -filter_complex "[0]format=pix_fmts=rgba[v0];[v0]scale=200:200[v5];[v5]rotate=sin(4*PI/2*t):ow='max(iw,ih)':oh=ow:c=none[v1];[1][v1]overlay=x=800:y=200:shortest=1[v2]" -map [v2] -c:v libx264 yaobai_gif.mp4
ffmpeg -y -ignore_loop 0 -i ./gif/_45.gif -i 0329_short.mp4 -filter_complex "[0]format=pix_fmts=rgba[v0];[v0]rotate=sin(4*PI/2*t):ow='max(iw,ih)':oh=ow:c=none[v1];[1][v1]overlay=x='if(gte(t,3), if(gte(t,6), NAN,700+mod(floor(n/3),2)*10 ),NAN ):y=200+mod(floor(n/3),2)*10:shortest=1'[v2]" -map [v2] -c:v libx264 yaobai_gif.mp4
轻微跳动,并在结尾淡出
- png 命令
// 视频 move.mp4
// 需要计算 滑行距离,滑行时间,计算滑行速度
ffmpeg -y -loop 1 -i ./jpg/qp1.png -i 0329_short.mp4 -filter_complex "[0]format=pix_fmts=rgba[v0];[v0]scale=140:140[v1];[v1]fade=t=out:st=11:d=1:alpha=1[v5];[1][v5]overlay=x='if(gte(t,6), if(gte(t,12), NAN,800),NAN ):y=200+40*sin((t-6)*3/2):shortest=1'[v2]" -map [v2] -c:v libx264 tiaodong_png.mp4
- gif 命令
ffmpeg -y -i 0329_short.mp4 -ignore_loop 0 -itsoffset 2 -i ./gif/_45.gif -filter_complex "[0:0]scale=iw:ih[a];[1:0]scale=200:200[wm];[wm]fade=t=out:st=7:d=1:alpha=1[wm1];[a][wm1]overlay=x='if(gte(t,3), if(gte(t,8), NAN,800),NAN ):y=200+40*sin((t-3)*3/2):shortest=1'[v2]" -map [v2] -c:v libx264 move_gif.mp4
雨刷
- png 命令
// 视频 move.mp4
// 需要计算 滑行距离,滑行时间,计算滑行速度
ffmpeg -y -loop 1 -i ./jpg/qp1.png -i 0329_short.mp4 -filter_complex "[0]pad=320:288:200:40:0x00F8FF@0[v0];[v0]rotate=1.8*sin(2*PI/5*t):ow='max(iw,ih)':oh=ow:c=none[v1];[1][v1]overlay=y='if(gte(t,2), if(gte(t,25), NAN,200 ),NAN ):x=50:shortest=1'[v2]" -map [v2] -c:v libx264 yaobai_png.mp4
- gif 命令
ffmpeg -y -i 0329_short.mp4 -ignore_loop 0 -itsoffset 2 -i ./gif/_45.gif -filter_complex "[0:0]scale=iw:ih[a];[1:0]scale=200:200[wm1];[wm1]pad=400:400:200:800:0x00F8FF@0[v1];[v1]rotate=1.8*sin(2*PI/5*t):ow='max(iw,ih)':oh=ow:c=none[wm];[a][wm]overlay=x='if(gte(t,3), if(gte(t,25), NAN,800),NAN ):y=200+40*sin((t-3)*3/2):shortest=1'[v2]" -map [v2] -c:v libx264 move_gif.mp4