《FFmpeg Basics》中文版-05-裁剪视频
创始人
2024-01-28 18:21:58

正文

裁剪视频意味着从输入到输出中选择想要的矩形区域而没有余数。 裁剪通常用于调整大小,填充和其他编辑。

裁剪基础知识

较老的FFmpeg版本有cropbottom、cropleft、cropright和croptop选项,但现在已弃用,并使用下表中描述的裁剪操作。

视频过滤器:裁剪

描述将输入视频帧的宽度和高度从x和y值表示的位置裁剪到指定的宽度和高度;x和y是输出的左上角坐标,协调系统的中心是输入视频帧的左上角。如果使用了可选的keep_aspect参数,将会改变输出SAR(样本宽比)以补偿新的DAR(显示长宽比)
语法crop=ow[:oh[:x[:y[:keep_aspect]]]]
************用于ow和oh参数的表达式中的可用变量
x, y对x的计算值(从左上角水平方向的像素个数)和y(垂直像素的数量),对每个帧进行评估,x的默认值为(iw - ow)/2, y的默认值为(ih - oh)/2
in_w, iw输入的宽度
in_h, ih输入的高度
out_w, ow输出(裁剪)宽度,默认值= iw
out_h, oh输出(裁剪)高度,默认值= ih
a纵横比,与iw/ih相同
sar输入样本比例
dar输入显示宽比,等于表达式a*sar
hsub, vsub水平和垂直的色度子样本值,对于像素格式yuv422p, hsub的值为2,vsub为1
n输入框的数目,从0开始
pos位置在输入框的文件中,如果不知道NAN
t时间戳以秒表示,如果输入时间戳未知

ow的值可以从oh得到,反之亦然,但不能从x和y中得到,因为这些值是在ow和oh之后进行的。x的值可以从y的值中得到,反之亦然。例如,在输入框的左三、中三和右三,我们可以使用命令:

ffmpeg -i input -vf crop=iw/3:ih:0:0 output
ffmpeg -i input -vf crop=iw/3:ih:iw/3:0 output
ffmpeg -i input -vf crop=iw/3:ih:iw/3*2:0 output

【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

  

原视频这样:(就当给人家打广告了)

经过如下的测试指令:

ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4 -vf crop=iw/3:ih:0:0 /Users/zhangfangtao/Desktop/newTest.mp4 

让我重新编码之后长这样:(惊不惊喜?意不意外)

再用下面的测试指令:

ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4 -vf crop=iw/3:ih:iw/3:0 /Users/zhangfangtao/Desktop/newTest.mp4 

生成的视频如下图:

这次显示的中间的三分之一iw/3:ih

使用如下指令:

ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4  -vf crop=iw/3:ih:iw/3*2:0 /Users/zhangfangtao/Desktop/newTest.mp4 

生成的视频如下图:(最右边的三分之一)

image.png

下图是相关参数的示意图:

裁剪框中心

当我们想要裁剪框架中心的区域时,作物过滤器的设计可以跳过x和y参数的输入。x和y的默认值是。

这意味着默认值被设置为自动裁剪输入中心的区域。该命令语法对w宽度和h高度的矩形中心区域进行裁剪。

ffmpeg -i input_file -vf crop=w:h output_file

我做了一个100*100的裁剪,指令如下:

ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4  -vf crop=100:100 /Users/zhangfangtao/Desktop/newTest.mp4 

输出的视频长这样:

为了裁剪中间的半帧,我们可以使用以下命令:

ffmpeg -i input.avi -vf crop=iw/2:ih/2 output.avi

我的测试指令:

ffmpeg -i /Users/zhangfangtao/Desktop/test.mp4 -vf crop=iw/2:ih/2 /Users/zhangfangtao/Desktop/newTest.mp4 

裁剪之后的视频:

自动检测裁剪区域

为了自动检测出裁剪的非黑色区域,我们可以使用crop检测过滤器,如下表所示。当输入视频中包含一些黑条时,这种自动裁剪是有用的,通常是在从第4:3到16:9的转换之后,反之亦然。

描述检测作物过滤器的作物大小,结果是由参数确定的输入帧的非黑色区域
语法cropdetect[=limit[:round[:reset]]]
all parameters are optional
************参数的描述
limit阈值,从0(无)到255 (all),默认值= 24
round-即使是整数,宽度和高度也必须是可分割的
- 4:2 2视频需要一个2的值,它只给出了维度
-偏移量自动更改为中心帧
-默认值为16,它是许多编解码器的最佳值
reset计数器决定了多少帧crop探测将重置之前检测到的最大视频区域并重新开始检测当前最优的作物区域。默认值为0。当通道标识扭曲了视频区域时,这是很有用的。0表示永远不会重置和返回在回放期间遇到的最大区域

limit参数指定了选择了多少深颜色的输出,零值意味着只有完整的黑色被裁剪。例如,要裁剪非黑输出,我们可以使用以下命令:(我这边也没存在黑色边框的视频,测试了几个,没发现有啥用)

ffmpeg -i input.mpg -vf cropdetect=limit=0 output.mp4

时间的裁剪

媒体播放器通常有一个进度条,显示经过的秒数,但大多数只有在鼠标指针停止并在特定持续时间后隐藏时才会显示。 FFmpeg包含一个包含定时器的testsrc视频源,我们可以使用以下命令显示它:

这里面大家可能会遇到一个问题,你编译出来的ffmpeg里面可能没有ffplay,我是遇到过这个问题,网上找了很多方案,也没啥用,最后来了一个简单直接的。。。

ffplay -f lavfi -i testsrc

我在自己电脑上测试的,指令和上面的一样,显示的效果如下图所示:

testsrc的默认大小是320x240像素,初始计时器的数字0有29x52像素大小,它在左上角的位置是256个像素,垂直于94像素。要裁剪一个数字的面积,我们可以使用以下命令:

ffmpeg -f lavfi -i testsrc -vf crop=29:52:256:94 -t 10 timer1.mpg

我在自己的电脑上测试了一下,显示的效果如下图(一个10秒钟,20K的小视频):

我们想用这个命令来创建一个有1、2、3和4位数字的定时器,每个数字的筛选器和时间期限的规格都在表中:

数的位数数字过滤器规范时长
1crop=29:52:256:949 seconds
0 min : 9 sec
00:00:09

2crop=61:52:224:9499 seconds
1 min : 39 sec
00:01:39

3crop=93:52:192:94999 seconds
16 min : 39 sec
00:16:39

4crop=125:52:160:949999 seconds
2 hours : 46 min : 39 sec
02:46:39

给大家示范一下下面的指令:

 ffmpeg -f lavfi -i testsrc -vf crop=125:52:160:94 -t 50 timer.mp4

显示的效果如下:

如果我们想要比52像素高的更大的数字,我们可以用一个size参数指定更大的testsrc输出(例如:i testsrc=size=vga),然后相应地调整作物区域。

上面的那个完整的指令如下:(我自己试了一下,视频有了,没有文字。。。)

ffmpeg -f lavfi -i testsrc=size=vga  -vf crop=125:52:160:94 -t 50 timer.mp4

为了改变数字和背景的颜色,我们可以使用一个lut过滤器,这是在颜色修正的章节中描述的。创建的计时器将用于视频覆盖的示例。

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
上海有几个区 最新上海16区划... 你平常会使用地图吗?一幅标准的地图可以帮助我们解决很多问题。自然资源部最新公布了长三角标准地图,上海...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
男生摸女生胸 同桌把我带到卧室... 所谓“酒色财气”,酒与色往往是连在一起的,澳洲有个医学生,就因为两次酒后猥亵自己的同学,几乎葬送了自...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...