ffmpeg 缩放算法_抖音快手短视频分屏怎么做?ffmpeg scale过滤器了解下
原标题:抖音快手短视频分屏怎么做?ffmpeg scale过滤器了解下
引言
我们每天都在使用的抖音,快手,西瓜视频等APP,里面有为数众多的视频文件。对于这些文件,我们需要考虑各个手机厂商的品牌手机分辨率不同,宽高比不同。而视频发布者所上传的视频文件,格式画质帧频等等各不相同。
那么为了让用户取得更为优质的体验,就需要对原始音视频文件进行深度处理。
今天我们来说一说ffmpeg工具内的scale过滤器,很显然从字面上理解,这个是缩放的!
下面这张是本文所使用的原始图片,分辨率 535x346。
简单缩放
如果想要简单地把图片resize为指定的宽高 320x240,可以使用 scale 过滤器的基本用法:
ffmpeg -i input.avi -vf scale=320:240 output.avi
用于缩放图片也一样有效:
ffmpeg -i input.jpg -vf scale=320:240 output_320x240.png
原始图片经过这么变换后,是这个样子:
你也看到了,前后宽高比不同,画面出现了拉伸。
保持宽高比缩放
如果想要保持宽高比,那么我们需要先手动固定一个元素,比如宽度,或者高度,然后另外一个视情况而定。用下面的写法:
ffmpeg -i input.jpg -vf scale=320:-1 output_320.png
上面的指令,先固定宽度=320px,高度则根据情况裁切。保证了图片不变形。最终图片呈现为 320x207 的分辨率。如下:
一些编码器会要求宽度/高度是n的倍数,那么可以将 -1 指定为需要的值,如下:
ffmpeg -i input.jpg -vf scale=320:-2 output_320.png
这样得到的就是一个 320x206 像素的图片。
使用变量
ffmpeg 过滤器内置了很多非常有用的变量,我们可以方便地使用,并组装成功能复杂的用法。比如把宽度拉伸2倍:
ffmpeg -i input.jpg -vf scale=iw*2:ih input_double_width.png
图片处理后长这样:
如果是宽高都缩放到原始图片的一半,则可以是乘以 0.5 或 除以 2,像下面这样写:
ffmpeg -i input.jpg -vf "scale=iw*.5:ih*.5" input_half_size.png
ffmpeg -i input.jpg -vf "scale=iw/2:ih/2" input_half_size.png
避免图像放大
有时缩放图像,但如果尺寸太低,想要避免将其放大,我们可以使用 min 来限定:
ffmpeg -i input.jpg -vf "scale='min(320,iw)':'min(240,ih)'" input_not_upscaled.png
上述命令,宽度最多 320 像素,高度最多 240 像素。如果是低于此像素值的,会保持原始值。
适配固定宽高比的窗口
我们经常见到在短视频中分屏显示,比如用户喜欢玩的同步动作,需要将视频装进固定的窗口内,要怎么样操作呢?
这个时候你需要 force_original_aspect_ratio 选项,它提供两个值:
decrease:输出视频自动减小
increase:输出视频自动增大
下面的指令将原始图片强制装进一个 320x240 的盒子,并保持宽高比缩小比例:
ffmpeg -i input.jpg -vf scale=w=320:h=240:force_original_aspect_ratio=decrease output_320.png
输出的图片分辨率 320x207,跟前面贴出的那张一致:
缩放到矩形区域之后,画面还会有一些空白,我们可以使用 pad 选项填充黑边:
ffmpeg -i input.jpg -vf "scale=320:240:force_original_aspect_ratio=decrease,pad=320:240:(ow-iw)/2:(oh-ih)/2" output_320_padding.png
上述指令有几个常量需要注意,这是经常使用的常量:
iw:输入图片宽度
ih:输入图片高度
ow:输出图片宽度
oh:输出图片高度
高阶:指定缩放算法
你可以使用 -sws_flags 选项指定缩放所使用的算法。比如明确指定使用 bilinear 代替默认的 bicubic 算法:
ffmpeg -i test.tif -vf scale=504:376 -sws_flags bilinear out.bmp
要同时适用多个算法,那就用 + 号连起来写:
-sws_flags lanczos+full_chroma_inp
或者不使用该选项,直接在 scale 过滤器内指定:
-vf scale=1920x1080:flags=lanczos
写在最后
不要着急,一天一个知识点,把每个知识点弄懂,并且熟练掌握,自然水到渠成。
ffmpeg 功能丰富繁杂,初学者易望而却步,掌握方法循序渐进,才是正道。
Happy coding :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
责任编辑:
ffmpeg 缩放算法_抖音快手短视频分屏怎么做?ffmpeg scale过滤器了解下相关推荐
- n行Python代码系列:两行代码去除抖音快手短视频尾部Logo
☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 一.引言 最近看到好几篇类似"n行Python代码-"的博文,看起来还 ...
- 抖音快手短视频平台的区别在哪
"南抖音,北快手"的说法我们知道,这也说明了如今抖音快手短视频平台在短视频领域的地位.随着短视频逐渐成为用户在线娱乐不可或缺的方式,短视频平台广告变现及其他变现方式还有发展空间,所 ...
- 抖音快手短视频推广方式
之前的快手短视频主要集中在三四线城市以及农村等消费力不强的用户群体上,没能有力的抓住主流用户的眼光;如今在一二线城市大放异彩的抖音短视频让厂商们再也无法无视短视频对于用户的吸引力.有了短视频这一全新渠 ...
- 抖音快手短视频内容营销技巧
新媒体运营的一些运营方法也是适用于短视频运营的,在做短视频运营时,我们要学会去分析,如何去找准自己想做的行业,然后在这个行业里去找我们自己能怎样去做自己的创作,抖音快手中短视频内容营销就是做短视频运营 ...
- 视频教程-抖音快手短视频自媒体制作引流运营兼职创业赚钱盈利实战教程-网络营销
抖音快手短视频自媒体制作引流运营兼职创业赚钱盈利实战教程 MS互联网创业学院创始人,腾讯课堂,网易云课堂,爱奇艺知识,51cto等多平台认证讲师,抖音实战派讲师.从事过保险销售,广告,影视以及互联网和 ...
- 如何将抖音快手短视频好看视频等任何直播平台视频转为MP4
如何将抖音快手短视频好看视频等任何直播平台视频转为MP4 总是有些需求来自不停地技术革新之中,这不有个客户就问我怎样将好看视频的视频下载下来,大家都知道抖音.快手.好看等直播平台的短视频都是不能直接下 ...
- 抖音快手短视频批量去水印采集软件v1.8使用文档
本文的旨在教您如何快速学会使用由哼哼猫去水印提供的抖音快手短视频批量去水印采集软件v1.8版本. 一.下载和安装软件 前往官方下载地址( http://jx.henghengmao.com/page/ ...
- 抖音快手短视频平台营销技巧
随着碎片化的加剧,短视频平台依靠其时长短.数据流量的优势持续吸引大量用户.而今年的疫情危机,给社会带来了非常大的影响.在这次疫情中,在承担社会责任的同时,抖音快手短视频平台的逆转营销也是做得很成功,这 ...
- 抖音快手短视频功能解读
很多人玩抖音快手都不知道抖音快手里面有哪些功能,别人一天到晚打开抖音快手,出了一直往下滑这刷抖音快手短视频,都不知道抖音快手还有这些功能权限,抖音快手短视频功能解读带着大家一起扫盲一下抖音快手的功能权 ...
最新文章
- TIOBE 12 月编程语言:Python 有望第四次成为年度语言!
- MongoDB复制集与Raft协议异同点分析
- Winform中实现实时颜色拾取器显示RGB和16进制颜色(附代码下载)
- css 样式三元运算_20条书写CSS代码的建议
- windows命令提示符_如何个性化Windows命令提示符
- 乘方计算(信息学奥赛一本通-T1069)
- 支付宝:“我的小程序”用户访问量一周激增165%
- 自定义灵活 自动滚动的Dialog
- 关于conda-新手必读
- Android系统源码分析--Process启动过程
- SqlServer实现split功能
- 阿里云落地全球最大云原生实践:双11核心系统全面云原生化
- 土豆英雄抽传说卡程序(非土豆英雄玩家不要看)
- dnf仓库打不开怎么办,dnf仓库打不开_DNF仓库锁。设置之后,点了强制解除。然后仓库打不......
- 牛客小白月赛2 J.美
- 八款PM常用〖项目管理〗工具
- C++ POCO库(访问数据库,版本问题,本人配置失败)
- Adobe软件老是出现要求输入密码的弹窗怎么解决?
- python获取cookie文件_Python Cookie 读取和保存方法
- 【基础知识】PID(比例微分积分)控制