FFmpeg中的通用知识(一) -- 表达式(Expression Evaluation)

Scheme五大核心原语:从λ演算到可执行代码的认知重启 编程语言的本质,是计算模型的具象化表达。Scheme作为λ演算的工程实现,以极简原语揭示了函数抽象、求值控制、环境绑定、代码即数据与延续捕获等基础原理。它不追求语法糖的便利,而致力于暴露‘计算’本身的结构契约——例如lambda不仅是函数定义,更是闭包构造器;apply绕过常规求值实现参数解包;quote赋予符号一等地位,支撑宏系统与元编程。这些能力共同构成高阶函数、惰性求值、DSL设计和协作式并发的技术根基,在编译器开发、教育系统与规则引擎等场景中展现出不可替代的表达力。本文聚焦Scheme最本质的五个原 阅读详情

Expression Evaluation


在FFmpeg可以对算术表达式求值。FFmpeg有一套内部的表达式规则,通过libavutil/eval.h提供的接口实现。表达式类型包含一元、二元、常量和函数。

两个表达式expr1、expr2可以通过分号组合成为一个新的表达式"expr1;expr2",新的表达式将会分别对expr1,expr2求值,并将expr2的结果作为新表达式的结果返回。


一元表达式

一元表达式的操作符包括:+, -

二元表达式

二元表达式的操作符包括:+, -, *, /, ^


函数

函数表达式包括:

abs(x)

求绝对值


acos(x)

求反余弦


asin(x)

求反正弦


atan(x)

求反正切


between(x, min, max)

若x的值在min和max的闭区间内,则返回1;否则返回0


bitand(x, y)

bitor(x, y)

按为计算x、y的与/或操作。在做求值操作前,传入的参数将被转换为整形。但是不论是传参转换为整形,还是求值结果重新转换为浮点数,都有可能损失一些精度。当计算大数(大于 2^53的数)时,要注意出现未知错误。


ceil(expr)

求表达式expr的结果,并对结果向上取整,作为返回值返回。


clip(x, min, max)

返回x在min,max范围内的部分的值


cos(x)

求x的余弦


cosh(x)

求x的双曲线余弦


eq(x, y)

如果x、y相等则返回1,否则返回0


exp(x)

求x的指数,底为e


floor(expr)

对表达式expr的结果向下求整


gauss(x)

求高斯函数的值,x为输入。等价于求表达式exp(-x*x/2) / sqrt(2*PI)的指


gcd(x, y)

求x、y的最大公约数。如果x、y均为0或者x、y中任意一个为负数,则结果未定义


gt(x, y)

若x大于y,则返回1;否则返回0


gte(x, y)

若x大于或等于y,则返回1;否则返回0


hypot(x, y)

求x、y的平方和的平方根,即sqrt(x*x + y*y);例如求直角边为x、y的直角三角形的斜边长度,或者二维坐标系中点(x,y)到原点的距离


if(x, y)

若x的值不为0,则返回y的值,否则返回0


if(x, y, z)

若x的值不为0,则返回y的值,否则返回z的值


isinf(x)

若x为正/负无穷,则返回1.0,;否则返回0.0


isnan(x)

若x为非数值,则返回1.0,否则返回0.0


st(var, expr)

保存expr的值到内部变量中,var指定保存的索引,var只能取值在0-9范围。这个函数返回存入内部变量的值。(注:目前表达式之间的的内部变量是不共享的)


ld(var)

根据var取出存在内部变量中的值(即使用st函数保存的)


log(x)

求x的自然对数


lt(x, y)

如果x小于y,则返回1;否则返回0


lte(x,y)

如果x小于或等于y,则返回1,;否则返回0


max(x, y)

返回x、y中较大的那个


min(x,y)

返回x、y中较小的那个


mod(x,y)

用x对y求模,即x%y


not(expr)

若expt等于0则返回1.0,否则返回0.0


pow(x,y)

求x的y次方,即x^y


print(t)

print(t, l)

以l指定的日志等级打印t的值,若l未指定,则使用默认的日志等级。返回打印的值


random(x)

返回一个0.0到1.0之间的伪随机数。x作为内部变量的索引,指定一个位置用于保存随机数种子/状态


root(expr, max)

以ld(0)的返回值为参数,计算expr的值,若结果为0,则将参数作为反回值返回。待测试的值依次存放在内部变量的索引在0-max范围的位置处。表达式必须为可复用的,否则结果将不可预期


sin(x)

求x的正弦


sinh(x)

求x的双曲线正弦


sqrt(expr)

求expt的值得平方根


squish(x)

求表达式1/(1 + exp(4*x))的值


tan(x)

求x的正切


tanh(x)

求x的双曲线正切


taylor(expr, x)

taylor(expr, x, id)

求x的泰勒级数(暂未理解)


time(0)

返回当前的墙上时间


trunc(expr)

对expr的值向0取整。例如trunc(-1.5) = -1.0


while(cond, expr)

当表达式cond的值不为0是,则循环求expr的值,将最后依次expr的值作为最终结果返回。若cond总为false,则返回NAN


常量表达式

常量表达式包括:

PI

圆周率,大约3.14

E

exp(1) 欧拉常量,自然常量;大约2.718

PHI

黄金比例 (1+sqrt(5))/2,大约1.618

 

其他

若一个表达式的值为非0的值且用于表示“true”,那么*表示AND(和运算),+表示OR(或运算)。例如if (A AND B) then C 可用if(A*B, C)表示

 

 

 

FFmpeg filter过滤器使用方法 FFmpeg filter 提供了很多音视频特效处理功能,比如视频缩放、截取、翻转、叠加等。FFmpeg有很多已经实现好的滤波器,这些滤波器的实现位于libavfilter目录之下,用户需要可以调用这些滤波器实现滤波。我们可以通过ffmpeg -filters命令查看FFmpeg支持的过滤器。FFmpeg常用的filter包括:scale:视频/图像的缩放;overlay:视频/图片的叠加;crop:视频/图像的裁剪;trim:截取视频的片段;rotate:以任意⻆度旋转视频。 阅读详情

相关推荐

FFMpeg-9、给视频添加实时时间水印drawtext filters+中文水印显示问题

从ffmpeg官方文档介绍drawtext过滤器,从参数实例扩展到命令行实际,C++API实际实现实时时间的水印添加、多处水印添加

zw1996的博客 9439

FFmpeg表达式(Expression Evaluation)

expr2",新的表达式将会分别对expr1,expr2求值,并将expr2的结果作为新表达式的结果返回。以ld(0)的返回值为参数,计算expr的值,若结果为0,则将参数作为反回值返回。若一个表达式的值为非0的值且用于表示“true”,那么表示AND(和运算),+表示OR(或运算)。例如求直角边为x、y的直角三角形的斜边长度,或者二维坐标系中点(x,y)到原点的距离。当表达式cond的值不为0是,则循环求expr的值,将最后依次expr的值作为最终结果返回。若x的值在min和max的闭区间内,则返回1;

weixin_43966742的博客 214

ffmpeg 视频实现各种特效

//渐入 i in.mp4 -vf fade=in:0:90 out.mp4 //黑白 i in.mp4 -vf lutyuv="u=128:v=128" out.mp4 //锐化 i in.mp4 -vf unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5 out.mp4 //反锐化 i in.mp4 -vf unsharp=7:7:-2:7:7:-2 out.mp...

dgnankai的专栏 2827

音视频学习之ffmpeg常用基础命令整理

基于windows环境安装好必要的ffmpeg后,对ffmpeg基础命令进行一些了解: 1:ffmpeg查看版本: ffmpeg -version 2:ffmpeg查询命令: 基本信息:ffmpeg -h 高级信息:ffmpeg -h long 所有信息:ffmpeg -h full ffplay查看帮助: ffplay -h ffprobe查看帮助: ffprobe -h ffmpeg具体分类支持的参数查看帮助: ffmepg -h type=name 比如: ffmpeg -h muxer

yun6853992的博客 4280

YOLOv8傻瓜式教程

YOLOv8傻瓜式教程,附带详细参数配置。

Father_of_Python的博客 1万+

重磅!Repo Wiki!

RepoWiki是Qoder平台的智能文档生成功能,通过静态代码分析自动提取项目架构、模块依赖和核心逻辑,并持续追踪代码变更保持文档同步。其工作流程分为四个阶段:1)代码扫描与AST解析;2)结构分析与依赖映射;3)文档智能生成;4)增量更新机制。支持多种编程语言,能识别设计模式并推断技术决策,适用于新项目搭建和遗留系统维护。优势在于降低理解成本和提高开发效率,但存在文件数量限制和依赖Git的局限性。典型应用场景包括自动生成架构图、API手册和团队知识沉淀。

ayusong870的博客 4024

python用ffmpeg进行视频处理

1.下载及安装 在ffmpeg官网https://ffmpeg.zeranoe.com/builds/可以下载到需要的版本,然后解压到D盘,添加环境变量(如D:\ffmpeg\bin) 在cmd输入ffmpeg,出现如图现象,即为安装成功 2.视频合并 方法1: cd到视频所在文件夹,在命令行输入ffmpeg -i “concat:A.mp4|B.mp4|” -c copy output.mp4 方法2: 将视频地址存放在filelist.txt文件里,如: file 'C:\Users\cjk\Desk

CJK's Blog 1905

Blender点云渲染实战:用Geometry Nodes快速搞定论文配图(附Cycles渲染技巧)

本文详细介绍了如何利用Blender的Geometry Nodes系统,高效地将三维点云数据转化为高质量的科研论文配图。通过实战步骤,从数据导入、节点化几何处理、材质赋予到Cycles渲染引擎的优化设置,手把手教你制作出专业、美观的可视化图像,助力科研成果展示。

hp777的博客 265

FFMPEG常用命令

ffmpeg学习

qq_44632658的博客 3096

探索Vortex开源GPGPU:RISC-V SIMT架构(4-1),Execute SFU(1)

本文详细分析了Vortex RISC-V内核6级流水线中Execute阶段的SFU(特殊功能单元)模块。重点介绍了SFU的数据流结构,包含dispatch_unit、pe_switch、csr_unit、wctl_unit和gather_unit五个子模块。文章深入解析了warp控制指令wspawn和tmc的实现机制:wspawn用于激活指定数量的warp并设置新PC值,tmc则用于控制线程掩码和warp状态。通过C代码和汇编指令的对照分析,阐明了这些指令在并行计算中的关键作用,包括线程激活、状态切换和执行

weixin_55313207的博客 1363

gerrit 配置 ----Gitweb集成

此外,为了让用户能够查看任何关于 gitweb 的信息 项目中,用户必须能够阅读所有引用(包括 refs/meta/config,refs/meta/dashboards/*等)。或者,如果Gerrit通过反向代理送达,它可以 为gitweb的链接生成不同的URL(需要的) 在网页服务器上重写为)。Gerrit 代码审查可以管理和生成指向 gitweb 的超链接, 允许用户从Gerrit内容跳转到相同信息, 但由 gitweb 显示。默认为,这是 Linux 发行版上“gitweb”包的常见安装路径。

QuanQuanYuanXin的博客 1405

《ffmpeg basics》中文版 -- 16.数字音频

16.数字音频 ​ 术语数字音频和术语数字视频类似,数字视频是一种用于处理和显示可移动图像的技术,而数字音频则是处理声音。数字音频是一种可以使用 PCM(pulse-code modulation:脉冲编码调制)来将声音编码为字节流的技术,它包括捕捉,记录,编辑,编码,复制等多个操作。FFmpeg 支持多种音频格式,如 AAC , MP3 , Vorbis ,WAV , WMA 等。在第二章中我们...

qq_34305316的博客 551

Security Onion的部署(超详细)

本文介绍了开源入侵检测系统securityonion的部署

qq_72583325的博客 6069

(二)、FFmpeg 表达式(Expression Evaluation)

目录 简介 一元表达式 二元表达式 函数 常量表达式 其他 示例 简介 FFmpeg可以对算术表达式求值,大多结合filter过滤进行使用,如控制显示时间,通过libavutil/eval.h实现。 两个表达式expr1、expr2可以通过分号组合成为一个新的表达式"expr1;expr2",新的表达式将会分别对expr1,expr2求值,并将expr2的结果作为新表达式...

qq_30062125的博客 1618

Qt之QSqlTableModel:高效数据库操作与视图绑定的实战指南

本文深入探讨了Qt框架中的QSqlTableModel组件,它作为连接数据库与Qt视图的智能中介,能极大简化数据库的增删改查操作。通过实战代码演示,详细讲解了如何快速构建可编辑的数据表格、理解并设置关键的数据编辑策略(如OnManualSubmit),以及实现数据过滤、排序等高级功能。文章还提供了性能优化、事务处理及常见避坑指南,帮助开发者高效、稳健地开发数据库驱动的桌面应用。

y4z5a6b7的博客 440

提示工程ROI计算模板:架构师私藏Excel表(含自动计算)

花3个人力优化提示词,到底能带来多少实际收益?“这个提示工程项目值得做吗?投入10万成本,多久能回本?“不同LLM应用的提示词优化优先级怎么排?全凭经验拍脑袋?当前90%的企业在提示工程投入上缺乏标准化的量化评估方法,导致资源浪费(盲目投入无回报项目)或错失机会(低估高价值优化点)。ROI = (总收益 - 总成本) / 总成本 × 100%对于提示工程,总成本=显性成本+隐性成本,总收益=直接收益+间接收益(后文会详细拆解)。提示工程的价值不是“玄学”,而是可以用数据量化的投资行为。本文分享的。

AI开发架构师 1073

LLM Application Development 插件实战指南:从 LangGraph Agent 到生产级 RAG 系统

本指南以 [plugins/llm-application-dev/README.md](https://link.gitcode.com/i/6291f0247bde2bd5b47eb9b966ec0bb6) 为核心,系统讲解本仓库中面向 Claude Code 的 LLM 应用开发插件。文章覆盖 v2.0.0 的核心更新(LangGraph 迁移、Voyage AI 嵌入、结构化输出)、三大

gitblog_00274的博客 1178

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Mythos:首个具备系统级漏洞挖掘能力的AI安全模型

漏洞挖掘正从人工驱动、规则匹配的传统模式,迈向基于形式化验证与状态空间探索的AI原生范式。Mythos代表了这一转折点——它不再依赖关键词扫描或启发式规则,而是通过符号执行(SMT求解)、动态参数调度和嵌入式行为契约沙箱,实现对内存布局、控制流路径与提权链路的深度建模。其技术价值在于将‘发现→验证→利用→提升’全链路压缩至小时级,支撑可规模化、可复现、可调度的安全运营闭环。典型应用场景包括企业级渗透测试自动化、开源组件深度审计、零日漏洞预判及防御策略生成。本文聚焦Mythos在真实工业网关审计中的8小时完整

weixin_34210740的博客 472

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

FFmpeg学习(三)-- libavutil 代码组成

FFmpeg libavutil

云梦居 3714

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ffmpeg的一些初级语法

ffmpeg初级语法

a74559774的专栏 2675

ffmpeg 常用命令汇总

 part 1: 经常用到ffmpeg 做一些视频数据的处理转换等,用来做测试,今天总结了一下,参考了网上部分朋友的经验,一起在这里汇总了一下,有需要的朋友可以收藏测试一下,有问题欢迎在下面回帖交流,谢谢;by ternence.hsu) 1、ffmpeg使用语法 命令格式:     ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]     ff...

kingvon_liwei的专栏 17万+

ffmpeg入门教程之ffmpeg命令行手册------视频滤镜(翻译)

文章目录本文将持续更新,敬请关注滤镜filtering简单滤镜Simple filtergraphs复杂滤镜Complex filtergraphs-filter_complex filtergraph (global)覆盖 overlayxyformatyuv420yuv422yuv444rgbgbrpautomain_w, Wmain_h, Hoverlay_w, woverlay_h, ho...

奋斗的IT青年 4177

FFmpeg命令行滤镜使用

对视频的滤镜处理还是很有吸引力的,因为可以做出各种比较炫酷的视频效果。这篇学习使用FFmpeg命令行来简单的操作制作视频的滤镜效果。 Filter Filter的参数排列格式为: [输入流或标记名]滤镜参数[临时标记];[输入流或标记名]滤镜参数[临时标记名] 看一个命令行示例: ffmpeg -i input.mp4 -i logo.png -filter_complex "[...

LymanYe的博客 6252

ffmpeg文档08-表达式计算/求值

8 表达式计算/求值 在计算表达式时,ffmpeg通过libavutil/eval.h接口调用内部计算器进行计算。 表达式可以包含一元运算符、运算符、常数和函数 两个表达式expr1和expr2可以组合起来成为"expr1;expr2" ,两个表达式都会被计算,但是新表达式(组合起来的)值实为表达式expr2的值。 表达式支持的二元运算符有:+,-,*,/,^ 一元运算符:+,-...

weixin_30954265的博客 198

ffmpeg 入门篇

如:输入input.mp4,输出帧率更改为 30 fps,输出到output.mp4,且遇到同名文件不询问直接覆盖。为输入的处理结果添加标签,在下一个处理包含上一个结果时,通过标签引用结果。命令先把 input_1.mp4 应用 rotate,同时赋予标签。)和 input_2.mp4 执行overlay。,再引用rotate的结果(帧 / 时间段 循环。

2301_78684949的博客 672

FFMPEG geq与比较函数

比较函数 https://ffmpeg.org/ffmpeg-utils.html 1、gt(x, y) Return 1 if x is greater than y, 0 otherwise. 如果x比y大则返回1,否则返回0 ; 2、gte(x, y) Return 1 if x is greater than or equal to y, 0 otherwise. 如果x大于等于y则返回1,否则返回0 ; 3、hypot(x, y) 计算点(x,y)(x, y)(x,y)到原点的距离; 4、if(x

m0_37477175的博客 1159
上一篇: FFmpeg中的滤镜(九):视频滤镜 -- blackframe
下一篇: FFmpeg中的滤镜(十):视频滤镜 -- blend, tblend
joee33
博客等级 码龄17年 28粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值