ffmpeg 实用命令 -- 缩放与裁切

缩放

缩放是一个常见的需求,这需要使用到 FFmpeg 提供的视频过滤器(或称视频滤镜,video filter),也即 -vf 参数。由于过滤器的使用过于复杂,在此也不会详细介绍;这里只是针对过滤器中的缩放器(scaler)功能进行说明。缩放器还有许多复杂的用法详情也可以参考官方文档的 Video filter - Scaler 章节。

例如,我们要将一个高分辨率视频从 1440p 缩放,那么我们可以使用参数:

# 输出到1280x720的例子
## 直接指定宽1280、高720。选择以下任意一种写法即可
scale=w=1280:h=720
scale=1280:720
scale=1280x720
## 可以用-1表示按原视频宽高比自动计算
scale=1280:-1
scale=-1:720
## 也可以使用倍率的写法,用iw、ih代表输入视频的宽和高
scale=iw/2:ih/2# 输出到方形720x720的例子。
## 可以用ow、oh代表变换后输出视频的宽和高
scale=iw/2:ow

使用冒号作为分隔符、等号作为键值对的连接符。

除了分辨率,我们有时候也会用 flags 参数指定缩放算法(参见官方文档 Scaler Options)。关于视频缩放算法的选择(与图片可能不同),可以参考 StackExchange 上的这一篇回答 Which resize algorithm to choose for videos? ;简单地说, 该回答建议在降分辨率时使用 Lanczos 或 spline,在升分辨率时使用 bicubic 或 Lanczos 。

命令示例:

# 使用默认的  bicubic 算法缩放到高720并保持原宽高比,并用默认编码格式(H.264)编码
ffmpeg -i video.mp4 -vf scale=-1:720 out.mp4# 指定使用 Lanczos 算法缩放到原视频的宽高的各一半,并用 H.265 格式以默认质量编码
ffmpeg -i video.mp4 -vf scale=iw/2:ih/2:flags=lanczos -c:v libx265 -c:a copy out.mp4

裁切

裁切同样使用视频过滤器完成,使用 crop 字段:

# 从原视频距左上角横20、竖30的位置,向右下角裁切一个宽100、高200的矩形
crop=w=100:h=200:x=20:y=30
crop=100:200:20:30
# 在视频的正中央进行裁切
crop=100:200
# 也可以使用倍率的写法,用iw、ih代表输入视频的宽和高
## 裁切视频的中间 3/5 宽度画面
crop=3/5*iw:ih:iw/5:0

例子:

# 裁切 1/6 到 5/6 宽的画面范围,并用 x265 编码器以 CRF 30 的质量来编码
ffmpeg -i video.mp4 -c:v libx265 -crf 30 -vf "scale=2/3*iw:ih:iw/6:0" -c:a copy out.mp4

FFmpeg 还支持一种自动检测裁切区域的参数 cropdetect,常用于四周有黑色边框的情形:

# 自动检测黑色边框来裁切
ffmpeg -i video.mp4 -vf "cropdetect" -c:a copy out.mp4

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

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

相关文章

Github2024-01-23 开源项目日报 Top9

根据Github Trendings的统计,今日(2024-01-23统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目3Go项目2TypeScript项目2Dart项目1Jupyter Notebook项目1 gpt4free 语言模型集合改进计划 创建周期…

vConsole 与 Vue中未定义变量而引发的Maximum call stack size exceeded异常问题

一、问题描述 前段时间有个前端小伙伴反馈在打包发布正式环境后调用VantUI的<van-popup>组件显示时&#xff0c;显示空白&#xff0c;并且在控制台看到一个Maximum call stacksize exceeded&#xff08;超出最大调用堆栈大小&#xff09;,而本地开发环境正常&#xff1a…

工业相机+镜头选型及靶面、焦距计算等相关详解

工业相机镜头选型及靶面、焦距计算等相关详解 着重讲述相机的各个参数及使用意义总结相机镜头选型主要参数的推理计算 0. 工业相机相关概念简介 相机与镜头一览 工业相机与镜头实物图如下图所示&#xff1a; 常见的相机有两种供电方式&#xff1a;一种是电源线供电&#xff0…

接口自动化测试框架开发(pytest+allure+aiohttp+ 用例自动生成)

近期准备优先做接口测试的覆盖&#xff0c;为此需要开发一个测试框架&#xff0c;经过思考&#xff0c;这次依然想做点儿不一样的东西。 接口测试是比较讲究效率的&#xff0c;测试人员会希望很快能得到结果反馈&#xff0c;然而接口的数量一般都很多&#xff0c;而且会越来越…

设置Linux用户的最大进程数和最大打开文件描述符数

【命令】 cat <<EOF>> /etc/security/limits.conf root - nproc 512000 * - nproc 512000 root - nofile 512000 * - nofile 512000 EOF 【解读】 这个命令是在执行一个Shell脚本&#xff0c;通过sh -c来传递一个字符串作为命令参数。这个字符串包含了对/e…

【Cloudflare】怎样重定向www二级域名到根域名?

官方文档&#xff1a;Redirecting www to domain apex 按照上述文档操作就可以&#xff0c;步骤比较繁琐。 另外&#xff0c;在网站页面有菜单&#xff1a;Rules -> Redirect Rules&#xff0c;在这里做重定向配置比上述方式简单&#xff0c;但我没看到官方文档的介绍&…

如何制作自己的实景中国视频地图?

让每一个人都有自己的地图&#xff01; 我们在《水经微图Web版1.5.0发布》一文中&#xff0c;提到了水经微图&#xff08;简称“微图”&#xff09;Web版新增了视频气泡的功能。 现在&#xff0c;我们为你分享一下如何基于此功能&#xff0c;制作一个属于自己的实景中国视频地…

PG14.2异构迁移_数据目录拷贝方式

本文源库和目标库都是采用二进制tar包进行的安装&#xff0c;非rpm和源码编译方式安装。 采用的办法是编译安装数据库软件 拷贝数据目录的方式 迁移要求 由于Centos即将停止维护&#xff0c;客户强烈要求操作系统更改成Ubuntu18.04&#xff0c;需将Centos的PG14迁移至Ubuntu…

leetcode2171 拿出最少数目的魔法豆

题目 给定一个 正整数 数组 beans &#xff0c;其中每个整数表示一个袋子里装的魔法豆的数目。 请你从每个袋子中 拿出 一些豆子&#xff08;也可以 不拿出&#xff09;&#xff0c;使得剩下的 非空 袋子中&#xff08;即 至少还有一颗 魔法豆的袋子&#xff09;魔法豆的数目…

yolov5 opencv dnn部署 github代码

yolov5 opencv dnn部署 github代码 源码地址实现推理源码中作者的yolov5s.onnx推理条件python部署(因为python比较简单就直接介绍了)c部署 参考链接 源码地址 yolov5官网还提供的dnn、tensorrt推理链接本人使用的opencv c github代码,代码作者非本人&#xff0c;也是上面作者推…

javascript的 with语句

with 语句是 JavaScript 中的一个关键字&#xff0c;用于简化访问对象属性和方法的代码&#xff0c;但它在现代的 JavaScript 开发中已经不推荐使用。以下是 with 语句的一些用途和注意事项&#xff1a; 简化对象属性的访问&#xff1a;使用 with 语句可以省略重复的对象名称来…

22. 离线MC强化学习算法(1)

文章目录 1. 理解离线MC强化学习的关键2. 什么是重要性采样3.重要性采样定理给我们的一般启示4.重要性采样定理给离线蒙特卡洛强化学习的启示 1. 理解离线MC强化学习的关键 离线强化学习的特点是采样策略 π ′ ≠ 待评估策略 π \pi\ne 待评估策略\pi π′待评估策略π&…

防御第一次作业-ensp的华为防火墙USG6000V1(1)

目录 1.用ensp搭建防火墙 2.添加管理员 3.组网 接口 安全区域 1.用ensp搭建防火墙 1.只能用6000那个防火墙 2.初始用户名密码&#xff1a;admin/ADMIN123 3.开启所有服务 4.与电脑联通&#xff1a;添加个云&#xff0c;然后增加1个udp并绑定创建的环回网卡 4.5.让云可…

ICP(Index Condition Pushdown)索引下推

什么是索引下推了&#xff1f; MySQL的“索引下推”&#xff08;Index Condition Pushdown&#xff0c;简称ICP&#xff09;是MySQL 5.6引入的一个优化特性。这个特性允许MySQL在执行索引查询时&#xff0c;将某些条件判断下推到索引扫描阶段&#xff0c;从而减少需要检查的行…

数据结构与算法教程,数据结构C语言版教程!(第五部分、数组和广义表详解)五

第五部分、数组和广义表详解 数组和广义表&#xff0c;都用于存储逻辑关系为“一对一”的数据。 数组存储结构&#xff0c;99% 的编程语言都包含的存储结构&#xff0c;用于存储不可再分的单一数据&#xff1b;而广义表不同&#xff0c;它还可以存储子广义表。 本章重点从矩阵…

代码随想录算法训练DAY27|回溯3

算法训练DAY27|回溯3 39. 组合总和 力扣题目链接 给定一个无重复元素的数组 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明&#xff1a; 所有数字&#xff08;包括 …

二、arcgis 点shp数据处理

在工作中&#xff0c;很多时候客户会提供点坐标&#xff0c;那么要想把点坐标生成shp文件&#xff0c;有两种方法&#xff08;坐标系CGCS2000&#xff09;&#xff1a; 1.当只有个位数的点坐标时&#xff0c;可以直接在arcgisMap中添加&#xff0c;具体步骤如下&#xff1a; …

【人工智能大脑】仿生学与人工智能交汇:基于MP神经网络的精准农业实践

MP神经网络&#xff0c;即McCulloch-Pitts模型&#xff08;MCP Model&#xff09;&#xff0c;是神经网络的早期形式之一&#xff0c;由Warren McCulloch和Walter Pitts在1943年提出。这个模型为现代人工神经网络的发展奠定了理论基础&#xff0c;并首次尝试模拟了生物神经元的…

最长子字符串的长度(二) - 华为OD统一考试

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 给你一个字符串 s&#xff0c;字符串s首尾相连成一个环形 &#xff0c;请你在环中找出’l’、‘o’、‘x’ 字符都恰好出现了偶数次最长子字符串的长度。 输入描…

​《WebKit 技术内幕》学习之九(3): JavaScript引擎

3 JavaScriptCore引擎 3.1 原理 JavaScriptCore引擎是WebKit中的默认JavaScript引擎&#xff0c;也是苹果在开源WebKit项目之后&#xff0c;开源的另外一个重要的项目。同其他很多引擎一样&#xff0c;在刚开始的时候它的主要部分是一个基于抽象语法树的解释器&#xff0c;这…