当前位置: 首页 > news >正文

FFMpeg zoompan 镜头聚焦和移动走位

案例 

原始图片

# 输出帧数,默认25帧/秒,25*4 代表4秒
# s=1280x80 # 输出视频比例,可以设置和输入图片大小一致
# zoom+0.002 表示每帧放大的倍数,下面代码是25帧/每秒 * 4秒,共1000帧
# 最终是 0.002*25*4 = 0.2,最终是放大1.2倍
ffmpeg -i "./sdout/1.jpg" \
-filter_complex \
"zoompan=z='zoom+0.002':d=25*4:s=600x380" \
out.gif

只是改变Z坐标的话,图片将会从左上角开始变化

也可以指定x,y,(默认值是0)

如果想缩放到图片右边,可以指定 x=iw-iw/zoom ,图片的宽-缩放后的宽

如果想缩放到图片底部,指定 y=ih-ih/zoom

如果想缩小图片,需要初始化图片尺寸,比如 z='if(eq(on,1),1.2,zoom-0.002) 

ffmpeg -i "./sdout/1.jpg" \
-filter_complex \
"zoompan=x='iw-iw/zoom':y='ih-ih/zoom':z='if(eq(on,1),1.2,zoom-0.002)':d=25*4:s=600x338" \
out1.gif

# 如果zoom <= 1.0, z=1.5 否则 z= (1.001 和 zoom-0.0015)中大的
# 最终效果就是: 从 1.5 倍数缩小到 1.001ffmpeg -i "./sdout/1.jpg" \
-filter_complex \
"zoompan=z='if(lte(zoom,1.0),1.5,max(1.001,zoom-0.0015))':d=25*4:s=600x380" \
out2.gif

聚焦中心点

# 聚焦到图片center中心点,时长4秒
ffmpeg -i "./sdout/1.jpg" \
-filter_complex \
"zoompan=x='iw/2*(1-1/zoom)':y='ih/2*(1-1/zoom)':z='zoom+0.002':d=25*4:s=600x338" \
out3.gif# zoompan拆解
zoompan=x='iw/2*(1-1/zoom)': # iw/2 代表要聚焦的x轴,zoom = 下面放大的比例y='ih/2*(1-1/zoom)': # ih/2 代表要聚焦的y轴z='2': # 聚焦放大的比例,这里代表2倍d=25*4: # 输出帧数,默认25帧/秒,25*4 代表4秒s=640x360 # 输出视频比例,可以设置和输入图片大小一致

参数

# 以下是命令参数
zoom, z  放大倍数,1到10,默认1
x,y    坐标,默认0
d    总帧数,默认90
s    输出图片尺寸,默认hd720
fps    帧率,默认25# 以下是参数里的常量
in_w, iw    输入宽
in_h, ih    输入高
out_w, ow    输出宽
out_h, oh    输出高
in    输入帧数
on    输出帧数
in_time, it    The input timestamp expressed in seconds. It’s NAN if the input timestamp is unknown.
out_time, time, ot    The output timestamp expressed in seconds.
x,y    Last calculated ’x’ and ’y’ position from ’x’ and ’y’ expression for current input frame.
px,py    ’x’ and ’y’ of last output frame of previous input frame or 0 when there was not yet such frame (first input frame).
zoom    上一帧 z 值
pzoom    Last calculated zoom of last output frame of previous input frame.
duration    Number of output frames for current input frame. Calculated from ’d’ expression for each input frame.
pduration    number of output frames created for previous input frame
a    Rational number: input width / input height
sar    sample aspect ratio
dar    display aspect ratio

表达式

Expression Evaluation - FFmpeg

# x,y 中取大值
max(x, y)# x <= y 返回 1, 否则返回 0
lte(x, y)

参考:

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

FFmpeg Filters Documentation

Ken Burns Effect Slideshows with FFMPeg | mko.re 

http://www.lryc.cn/news/170234.html

相关文章:

  • 利用hutool工具类实现验证码功能
  • 前端面试题: 请解释什么是函数的作用域?
  • 华为云云服务器云耀L实例评测 | 华为云云服务器实例新品全面解析
  • Nginx配置SSL证书
  • 一,安卓aosp源码编译环境搭建
  • video 视频编解码一些debug方法
  • 中秋国庆假期——模板推荐
  • 【配代码演示】Cookie和Session的区别
  • 【Linux初阶】信号入门2 | 信号阻塞、捕捉、保存
  • 【已解决】:该该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)“按钮获取它的所有权。否则,请按“取消(C)“按钮以防损坏。
  • 系统架构常用的工具
  • 腾讯云2核4G服务器5M带宽 218元一年 优惠价格明细表
  • [C++ 网络协议] 多播与广播
  • IOS17正式版今日发布
  • 2560. 打家劫舍 IV
  • java web中部署log4j.xml
  • 【张兔兔送书第一期:考研必备书单】
  • 基于Spring Boot+ Vue的健身房管理系统与实现
  • ThreadLocal线程局部变量
  • C++ Primer (第五版)第一章习题部分答案
  • Python与GUI集成:零基础也能开发国际象棋游戏
  • SaaS软件能保证数据安全吗?
  • 方案:基于AI烟火识别与视频技术的秸秆焚烧智能化监控预警方案
  • phantomjs插件---实现通过链接生成网页截图
  • SpringBoot分页实现查询数据
  • Jetson Xavier NX 与飞控(Pixhawk 4 Mini)实现串口通信
  • 为什么2022年秋招嵌入式开发岗位薪资大涨?
  • 在HTML里,attribute和property有什么区别?
  • 机器学习入门与实践:从原理到代码
  • SpringCloud在idea中一键启动项目