【FFmpeg】Filter 过滤器 ① ( FFmpeg 过滤器简介 | 过滤器概念 | 过滤器用法 | 过滤器工作流程 | 过滤器文档 | 过滤器分类 )

文章目录

  • 一、FFmpeg 过滤器 Filter 简介
    • 1、FFmpeg 过滤器概念
    • 2、FFmpeg 过滤器用法
    • 3、FFmpeg 过滤器工作流程
    • 4、FFmpeg 过滤器文档
  • 二、FFmpeg 过滤器 分类
    • 1、过滤器分类 - 根据处理数据类型分类
    • 2、过滤器分类 - 根据编码器位置分类
    • 3、过滤器分类 - 根据功能分类


FFmpeg 相关文档 :

  • FFmpeg 文档主页 : https://ffmpeg.org/documentation.html , 在该页面有 命令行工具文档 , 组件文档 , 库文档 , API 文档 等 , 点击对应的链接就可以跳转到对应的文档中 ;
  • 命令行工具文档 :
    • ffmpeg 命令文档 : https://ffmpeg.org/ffmpeg.html
    • ffplay 命令文档 : https://ffmpeg.org/ffplay.html
  • 组件文档 :
    • 过滤器 Filter 文档 : https://ffmpeg.org/ffmpeg-filters.html
    • 编解码器文档 : https://ffmpeg.org/ffmpeg-codecs.html




一、FFmpeg 过滤器 Filter 简介




1、FFmpeg 过滤器概念


FFmpeg 过滤器 又称为 " 滤镜 " , 是 FFmpeg 的重要的组件 , 用于 处理音视频流 和 处理多媒体操作 ;

FFmpeg 过滤器 是一种功能强大的工具 , 可以在 FFmpeg 输入 和 输出 之间 进行一系列的转换和处理 , 如 :

  • 裁剪
  • 旋转
  • 缩放
  • 变速
  • 添加水印

FFmpeg 过滤器 可以多个一起叠加使用 , 使用不同的 过滤器组合 和 调节参数 , 可以 处理复杂的 音视频 操作 , 如 :

  • 音视频转码
  • 音视频剪辑

多个 过滤器 一起使用 , 又称为 " 过滤器链 " , 或 " 滤镜链 " ;


参考之前的博客 , 有简单使用过 过滤器 / 滤镜 :

  • 【FFmpeg】ffplay 命令行参数 ④ ( 修改窗口标题 -window_title 参数 | 设置播放循环次数 | 设置显示模式 -showmode 参数 | 设置视频滤镜 -vf 参数 )
  • 【FFmpeg】ffplay 命令行参数 ⑤ ( 设置音频滤镜 -af 参数 | 设置统计信息 -stats 参数 | 设置同步时钟类型 -sync 参数 )
  • 【FFmpeg】ffmpeg 命令行参数 ④ ( ffmpeg 视频参数解析 | 设置视频帧数 | 设置视频码率 | 设置视频帧率 | 设置视频宽高 | 设置视频宽高比 | 设置视频滤镜 )

2、FFmpeg 过滤器用法


在 FFmpeg 命令行 中 , 将 过滤器 名称 作为参数进行传递 ,

  • 通过 命令行参数 -vf 设置视频过滤器
  • 通过 命令行参数 -af 设置 音频过滤器 ;

过滤器链 : 多个过滤器 可以链式组合 , 形成一个 过滤器链 Filter Chain , 同时实现多个过滤器的效果 ;

过滤器图 : 通过 命令行参数 filter_complex 选项 , 可以 创建一个 包含 多个输入 和 输出 的 复杂 过滤器图 Filter Graph ;

  • 可实现 将 多个音视频流 通过 不同的 过滤器 进行处理 ;

3、FFmpeg 过滤器工作流程


FFmpeg 过滤器工作流程 :

  • 输入 : 过滤器 接收 一个 或 多个 音视频输入流 ;
  • 处理 : 过滤器 对 输入流 进行各种操作 , 如 : 裁剪 , 混音 等操作 ;
  • 输出 : 过滤器 处理完数据后 , 输出 一个 或 多个 处理过的 输出流 ;

4、FFmpeg 过滤器文档


FFmpeg 文档主页是 https://ffmpeg.org/documentation.html

在这里插入图片描述

点击该页面的文档索引 , 可以跳转到对应的文档中 ;

在这里插入图片描述
点击 " 组件文档 " 下的 " 过滤器 " 选项 ,

在这里插入图片描述

可跳转到 过滤器文档页面 https://ffmpeg.org/ffmpeg-filters.html
在这里插入图片描述





二、FFmpeg 过滤器 分类




1、过滤器分类 - 根据处理数据类型分类


根据处理数据类型 , 可以将 过滤器 分为如下三类 :

  • 音频过滤器 Filter : 用于处理音频数据 , 如 : 音频裁剪 , 多路音频混音 , 音频变速 , 音频变调 等 ;
  • 视频过滤器 Filter : 用于处理视频数据 , 如 : 视频裁剪 , 视频缩放 , 视频旋转 , 视频叠加 等 ;
  • 字幕过滤器 Filter : 用于处理字幕数据 , 如 : 修改字幕 , 字幕翻译 等 ;

2、过滤器分类 - 根据编码器位置分类


根据 过滤器 工作时间 与编解码器工作时间 的 前后位置 , 可以将 过滤器 分为如下三类 :

  • Prefilters : 在 编码之前 使用的过滤器 , 主要进行 数据 预处理 ;
  • Intrafilters : 在 编码时 使用的过滤器 , 是 视频编解码器 的组成部分 ;
  • Postfilters : 在 解码后 使用的过滤器 , 用于 数据 的 后处理 ;

3、过滤器分类 - 根据功能分类


根据过滤器的功能 , 可以将过滤器分为很多类型 :

  • scale : 视频缩放 过滤器 ;
  • overlay : 视频叠加 过滤器 ;
  • crop : 视频裁剪 过滤器 ;
  • trim : 视频截取 过滤器 ;
  • rotate : 视频旋转 过滤器 ;
  • movie : 视频加载 过滤器 ;

更多的 视频过滤器 参考 FFmpeg 过滤器文档 的 " 11 视频滤镜 " 章节 ;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

typescript的入门到吐槽:看了typescript,发现前端真的卷,

typescript TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。 TypeScript 与 JavaScript 的区别 其实就是对JavaScript的封装,把一个弱类型语言封…

刨析YOLOv8的改进模块

1、YOLOv5回顾 这里粗略回顾一下,这里直接提供YOLOv5的整理的结构图吧:Backbone:CSPDarkNet结构,主要结构思想的体现在C3模块,这里也是梯度分流的主要思想所在的地方;PAN-FPN:双流的FPN,必须香,也必须快,但是量化还是有些需要图优化才可以达到最优的性能,比如cat前后…

淘宝扭蛋机小程序,开启你的惊喜探索之旅!

亲爱的淘宝用户们,我们非常高兴地宣布,全新的淘宝扭蛋机小程序即将上线!这是一款集合了趣味、惊喜与购物乐趣于一体的创新应用,让你在淘宝的海洋里,找到那份独特的快乐。 一、淘宝扭蛋机小程序是什么? 淘…

Qt与MySQL连接

QT连接Mysql数据库(详细成功版)-CSD N博客 我的MySQL是64位的,所以我的Qt的套件也需要是64位的 遇到的问题: (available drivers中已经有QMYSQL QMYSQL3,还是not loaded) QSqlDatabase: QMYS…

RAG 检索的底座:Milvus Cloud向量数据库

在业界实践中,RAG 检索通常与向量数据库密切结合,也催生了基于 ChatGPT + Vector Database + Prompt 的 RAG 解决方案,简称为 CVP 技术栈。这一解决方案依赖于向量数据库高效检索相关信息以增强大型语言模型(LLMs),通过将 LLMs 生成的查询转换为向量,使得 RAG 系统能在向…

团结引擎+OpenHarmony 3 通信

团结引擎和鸿蒙之间通信 因为 ts 并没有像 JAVA 有反射的调用,所以我们必须要像 Web GL 平台一样通过导出的行为告诉引擎到底哪些 ts 的接口可以给 C# 来调用。 1 在 Tuanjie 引擎里 需要一个tsllib文件,用于设置给导出对象 C#使用。就可以直接创建以 …

C++ | Leetcode C++题解之第72题编辑距离

题目&#xff1a; 题解&#xff1a; class Solution { public:int minDistance(string word1, string word2) {vector<vector<int>> dp(word1.size() 1, vector<int>(word2.size() 1, 0));for (int i 0; i < word1.size(); i) dp[i][0] i;for (int j…

大模型的概念与特点

在人工智能的浩瀚星空中&#xff0c;大模型犹如一颗璀璨的明星&#xff0c;引领着技术发展的方向。它们以巨大的参数规模和复杂的计算结构&#xff0c;展现出前所未有的智能潜力。本小节将从大模型的基本概念出发&#xff0c;逐步深入解析其发展历程、特点、分类以及泛化与微调…

实用 Chrome 指令

实用 Chrome 指令 Google Chrome 作为广泛使用的浏览器&#xff0c;提供了丰富的快捷键和命令行指令&#xff0c;提高用户的浏览体验和生产力。以下是一些常用的 Chrome 快捷键和命令行指令&#xff0c;帮助你更高效地使用 Chrome 浏览器。 一、快捷键&#xff08;Windows &a…

【Java基础】字符串的内存情况及应用场景

String 特点 用双引号引起来的一串字符&#xff0c;字符串不变&#xff0c;它们的值在创建后不能被更改String str"hello";存储在堆中的字符串常量池已经定义过的字符串&#xff0c;再次定义时直接使用已有的字符串String类重写了**boolean equals(object obj)**方…

爱丁堡大学出新招,大小语言模型配合节约成本!

在大语言模型的应用中&#xff0c;往往面临着成本和性能权衡的问题。 一方面&#xff0c;大型LLM的参数量极大&#xff08;如70B&#xff09;&#xff0c;每次调用都可能带来更多的成本&#xff0c;而小型LLM&#xff08;如7B&#xff09;的成本则更容易被接受。 另一方面&am…

若依Ruoyi微服务版,通过docker-compose部署流程和部分坑记录

1 各个子微服务&#xff0c;yml文件修改&#xff0c;如nacos地址等等 【有坑&#xff0c;看下面】 2 后端服务打成jar包&#xff0c;mvn package命令 3 前端项目打包 4 docker目录下有个copy.sh文件&#xff0c;运行&#xff0c;将jar 包复制到 docker相应目录下&#xff0c;总…

接收区块链的CCF会议--NDSS 2025 截止7.10 附录用率

会议名称&#xff1a;Network and Distributed System Security Symposium (NDSS) CCF等级&#xff1a;CCF A类学术会议 类别&#xff1a;网络与信息安全 录用率&#xff1a;2024年接收率19.5% Submissions are solicited in, but not limited to, the following areas: Ant…

RabbitMQ:深入理解高性能消息队列

RabbitMQ&#xff1a;深入理解高性能消息队列 文章目录 RabbitMQ&#xff1a;深入理解高性能消息队列前言一、RabbitMQ概述二、RabbitMQ的核心概念三、RabbitMQ的工作原理一、生产者发送消息二、交换机转发消息三、队列存储消息四、消费者接收并处理消息 四、RabbitMQ的使用场景…

DOTA-Gly-Asp-Tyr-Met-Gly-Trp-Met-Asp-Phe-NH2,1306310-00-8,是一种重要的多肽化合物

一、试剂信息 名称&#xff1a;DOTA-Gly-Asp-Tyr-Met-Gly-Trp-Met-Asp-Phe-NH2CAS号&#xff1a;1306310-00-8结构式&#xff1a; 二、试剂内容 DOTA-Gly-Asp-Tyr-Met-Gly-Trp-Met-Asp-Phe-NH2是一种重要的多肽化合物&#xff0c;其CAS号为1306310-00-8。该多肽包含一个DO…

ICLR 2024 杰出论文开奖了!录用率31%,两篇国内论文获荣誉提名

朋友们&#xff0c;ICLR 2024开奖了&#xff01;5月7日至11日&#xff0c;今年的大会在奥地利维也纳展览会议中心举行。 ICLR&#xff08;国际表征学习大会&#xff09;是公认的深度学习领域国际顶级会议之一&#xff0c;属于CCF A类&#xff0c;主要专注于深度学习和强化学习等…

Unity 浮点数的精度问题

文章目录 前言一、精度问题1、数值不相等2、数值计算不确定3、不同设备计算结果不同 二、解决方法&#xff1a;总结 前言 说到浮点数精度&#xff0c;大家想到的就是double比float的精度高&#xff0c;想要高精度就用double类型。两者最明显的区别就是所占位数的不同&#xff…

java驱动bat脚本执行mysql恢复备份根据自定义mysql备份名

我有个需求&#xff0c;需要根据mysql备份的地址&#xff0c;恢复mysql数据 就是说我把sql备份了&#xff0c;然后需要通过java代码触发执行恢复的mysql脚本&#xff0c;但是需要传一个备份的路径 直接上代码 java代码如下&#xff1a; public static void main(String[] a…

22 | MySQL有哪些“饮鸩止渴”提高性能的方法?

短连接风暴 第一种方法:先处理掉那些占着连接但是不工作的线程。 kil id 第二种方法:减少连接过程的消耗。 让数据库跳过权限验证阶段,重启数据库,并使用–skip-grant-tables 参数启动。 慢查询性能问题 索引没有设计好 创建索引都支持 Online DDL 了,对于那种高峰期数…

hexo 博客插入本地图片时遇到的坑

哈喽大家好&#xff0c;我是咸鱼。 最近一直在折腾博客的事&#xff0c;说是 hexo 极易上手&#xff0c;我觉得只仅限于在安装部署的时候&#xff0c;随着对 hexo 的深入使用&#xff0c;发现遇到的问题还是挺多的。 那今天来讲一下我在把本地图片插入到 hexo 博客文章中遇到…