【音视频】ffmpeg其他常用过滤器filter实现(6-4)
最近一直在研究ffmpeg的过滤器使用,发现挺有意思的,这里列举几个个人感觉比较有用的过滤器filter,如下是代码实现,同样适用于命令行操作:
1、视频模糊:通过boxblur可以将画面进行模糊处理,第1个参数2:2是对亮度进行滤波的参数,分别表示算法处理的[半径:强度];第2个参数1:1是对色度进行滤波的参数,分别表示算法处理的[半径:强度]
string filterDesc = "boxblur=2:2:1:1";
2、视频锐化:有2组参数,默认值是"5:5:1.0:5:5:0.0",其中第1组“5:5:1.0”是对亮点做锐化算法的参数,5:5表示的是锐化算法中像素判断的子窗口大小,范围是[3,23]之间的奇数,1.0是强度参数,范围[-1.5,1.5],值越大纹理越明显,则锐化程度越高,但是值过大容易产生高亮的像素,即容易过曝;第2组“5:5:0.0”是色度做锐化算法的参数,5:5表示的是锐化算法中像素判断的子窗口大小,范围是[3,23]之间的奇数,0.0是强度参数,范围[-1.5,1.5],值越大纹理越明显,则锐化程度越高,强度参数过大容易导致色差过大。注意当强度参数为负数,则表示的是通过unsharp来实现画面的模糊
string filterDesc = "unsharp=5:5:0.9:5:5:0.1";
3、对比度(contrast)、亮度(brightness)、饱和度(saturation):用eq滤波器实现,对比度范围[-2.0,2.0],默认0;亮度范围 [-1.0,1.0],默认0、饱和度,范围[0,3.0],默认1。注意:亮度为负数可以降低画面亮度,为正数可以提升画面亮度
string filterDesc = "eq=contrast=1.05:brightness=0.02:saturation=1.4";
4、视频裁剪:参数分别为“裁剪后的宽:裁剪后的高:裁剪后的X轴位置:裁剪后的Y轴位置”,iw是原始图片宽,ih原始图片高,如果不指定x和y默认居中裁剪
string filterDesc = "crop=iw/2:ih/2:iw/4:ih/4";
5、扩充视频边:可以扩充宽的两边或高的两边或四边,如下例子是扩展宽两边,且扩充颜色是黑色
string filterDesc = "pad=w=iw*1.4:h=ih:x=iw*0.2:y=0:color=black";
6、视频旋转:使用transpose,参数为0-逆时针旋转90度且按X轴翻转,1-顺时针旋转90度,2-逆时针旋转90度,3-顺时针旋转90且按X轴翻转,旋转之后分辨率会变化,比如从横屏19201080旋转90度,变为10801920
string filterDesc = "transpose=1";
7、视频旋转2:使用rotate,可以指定任意旋转角度,旋转之后的分辨率不变,比如19201080旋转60度之后,分辨率还是19201080,超出的四角不显示
string filterDesc = "rotate=PI/3";
8、垂直翻转:按照X轴翻转
string filterDesc = "vflip";
9、水平翻转:按照Y轴翻转
string filterDesc = "hflip";
最后调用avfilter_graph_parse_ptr(filterGraph, filterDesc.c_str(), &inputs, &outputs, nullptr)将过滤器描述filterDesc传入Graphics中,相关代码可以参考《【音视频】使用movie、drawtext过滤器实现图片、文字水印(6-3)》
相关文章:
【音视频】ffmpeg其他常用过滤器filter实现(6-4)
最近一直在研究ffmpeg的过滤器使用,发现挺有意思的,这里列举几个个人感觉比较有用的过滤器filter,如下是代码实现,同样适用于命令行操作: 1、视频模糊:通过boxblur可以将画面进行模糊处理,第1个…...
云栖3天,云原生+ AI 多场联动,新产品、新体验、新探索
云栖3天,云原生 AI 20场主题分享,三展互动,为开发者带来全新视听盛宴 2024.9.19-9.21 云栖大会 即将上演“云原生AI”的全球盛会 展现最新的云计算技术发展与 AI技术融合之下的 “新探索” 一起来云栖小镇 见证3天的云原生AI 前沿探索…...
jackson对于对象序列化的时候默认空值和手动传入的null的不同处理
Jackson 在序列化对象时如何处理默认的空值和手动传入的 null,其实归结于它的序列化机制和注解配置。默认情况下,Jackson 不区分 手动设置的 null 和 对象中字段的默认空值,但可以通过配置来改变其行为。具体细节如下: 1. 默认行为…...
L8打卡学习笔记
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 SVM与集成学习 SVMSVM线性模型SVM非线性模型SVM常用参数 集成学习随机森林导入数据查看数据信息数据分析随机森林模型预测结果结果分析 个人总结 SVM 超平面&…...
VBA解除Excel工作表保护
Excel工作表保护解除 工作表保护后无法编辑内容,可能是密码忘记,不可暴力破解隐私 1 打开需的Excel 2 Alt F11 打开代码编辑,点击任意代码编辑项,将如下代码复制,并运行。 Public Sub GetWorkbookPassword()Dim w1 A…...
bash: unzip: 未找到命令,sudo: nano:找不到命令
在 Ubuntu/Debian 系统上 打开终端并运行以下命令: sudo apt update sudo apt install unzip在 CentOS/RHEL 系统上 打开终端并运行以下命令: sudo yum install unzip在 macOS 上 如果您使用的是 macOS,可以使用 Homebrew 安装 unzip&#…...
tauri开发配置文件和文件夹访问路径问题
文件夹没权限:Unhandled Promise Rejection: path not allowed on the configured scope: /Users/song/Library/Application Support/com.pakeplus.app/assets/default.png 没有文件夹,需要先创建:Unhandled Promise Rejection: path: /Users…...
【web安全】——信息收集
一、收集域名信息 1.1域名注册信息 工具:站长之家 whois查询 SEO综合查询 1.2子域名收集 原理:字典爆破,通过字典中的各种字符串与主域名拼接,尝试访问。 站长之家 直接查询子域名 ip138.com https://phpinfo.me/domain/ …...
赵长鹏今日获释,下一步会做什么?币安透露2024年加密货币牛市的投资策略!
中国时间2024年9月28日,加密货币行业的风云人物赵长鹏(Changpeng Zhao,简称CZ)终于从监狱获释。他因在担任币安首席执行官期间未能有效执行反洗钱(AML)计划而被判刑四个月。赵长鹏的获释引发了广泛关注,不仅因为他是全…...
SpringMVC之ContextHolder
员工不必为自己的弱点而太多的忧虑,而是要大大地发挥自己的优点,使自己充满自信,以此来解决自己的压抑问题。我自己就有许多地方是弱项,常被家人取笑小学生水平,若我全力以赴去提升那些弱的方面,也许我就做…...
什么是SQL注入?
SQL注入是一种安全漏洞,攻击者通过在应用程序的输入字段中插入恶意SQL代码,从而操控数据库。此类攻击通常利用应用程序未对用户输入进行适当验证和清理的弱点。 工作原理: 输入字段:攻击者在登录表单或搜索框等输入区域插入恶意…...
混合密码系统——用对称密钥提高速度,用公钥密码保护会话密钥
混合密码系统(Hybrid Cryptosystem)是一种结合了多种密码学技术和算法的加密方案,旨在充分利用不同密码算法的优势,以提供更强大的安全性、更高的效率或更好的功能特性。以下是对混合密码系统的详细解释: 组成要素 对…...
Three.js粒子系统与特效
目录 粒子系统基础常见粒子系统特效粒子系统基础 基础的粒子系统 使用THREE.ParticleSystem和THREE.ParticleBasicMaterial实现: // 导入Three.js库 import * as THREE from three...
Tableau数据可视化入门
目录 一、实验名称 二、实验目的 三、实验原理 四、实验环境 五、实验步骤 1、Tableau界面引导 2、数据来源 3、数据预处理操作 4、制作中国各个地区的利润图表 4.1条形图 4.2气泡图 5、制作填充地球图 一、实验名称: 实验一:Tableau数据可视…...
Linux云计算 |【第四阶段】RDBMS1-DAY2
主要内容: 常用函数(函数分类1:单行、分组;函数分类2:字符、数学、日期、流程控制)、分组查询group by、连接查询 一、常用函数 1. 按使用方式分类 ① 单行函数 单行函数(Scalar Functions&…...
后台监控中的云边下控耗时、边缘采集耗时 、云边下控量
云边下控耗时:指云端控制边缘设备的时间,从云端下发指令到边缘设备响应完成的时间。该指标反映了云端控制边缘设备的效率和响应速度。 边缘采集耗时:指边缘设备采集数据到云端处理完成的时间,包括数据采集、传输、处理等环节。该…...
【学习笔记】手写 Tomcat 四
目录 一、Read 方法返回 -1 的问题 二、JDBC 优化 1. 创建配置文件 2. 创建工具类 3. 简化 JDBC 的步骤 三、修改密码 优化返回数据 创建修改密码的页面 注意 测试 四、优化响应动态资源 1. 创建 LoginServlet 类 2. 把登录功能的代码放到 LoginServlet 类 3. 创…...
探索基因奥秘:汇智生物如何利用组蛋白甲基化修饰测序技术革新农业植物基因组研究?
引言: 随着生物医学技术的不断进步,我们对生命奥秘的探索越来越深入。在众多的生物技术中,表观组学分析技术逐渐成为研究的热点。本文将带您走进汇智生物,了解他们如何利用DNA亲和纯化测序技术(DAP-seq)推…...
二叉搜索树的介绍、模拟实现二叉搜索树、leetcode---根据二叉树创建字符串、leetcode---二叉树的最近公共祖先等的介绍
文章目录 前言一、二叉搜索树的介绍二、模拟实现二叉搜索树三、leetcode---根据二叉树创建字符串四、leetcode---二叉树的最近公共祖先总结 前言 二叉搜索树的介绍、模拟实现二叉搜索树、leetcode—根据二叉树创建字符串、leetcode—二叉树的最近公共祖先等的介绍 一、二叉搜索…...
人工智能的基本概念与发展历程
一、人工智能的基本概念与发展历程 人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。它涵盖了机器人技术、语言识别、图像识别、自然语言处理和专家系统等众多领域。自20世纪30年代数理逻辑的形式化和智能可计算思想开始构建计…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
