ffmpeg介绍与命令行基本用法(2)

添加动画文字水印

参数说明
ffmpeg算法函数链接:https://ffmpeg.org/ffmpeg-utils.html
//参数说明:enable代表激活水印的时机,如果不添加这个参数的话那么将一直显示
//注意事项:fontfile,指定字体的路径,如果转换后的时候是乱码的话,大概率是找不到该字体。

固定位置

ffmpeg -i input.mp4 -filter:v drawtext="fontfile=STXINGKA.ttf:text='hello world':fontcolor=red@1.0:fontsize=36:y=h-line_h-10:x=100" -codec:v libx264 -codec:a copy -y output.mp4

根据调整x,y参数可以实现改变文字展示的位置,实现从上到下、从右到左等方式展示。
//10-20s显示

ffmpeg -i input.mp4 -filter:v drawtext="fontfile=Microsoft YaHei Mono.ttf='hello world':fontcolor=red@1.0:fontsize=36:y=h-line_h-10:x=100:enable=between(t\,10\,20)" -codec:v libx264 -codec:a copy -y output.mp4

//从第10s,从左到右显示

ffmpeg -i input.mp4 -filter:v drawtext="fontfile=STXINGKA.ttf:text='动态文字':fontcolor=red@1.0:fontsize=36:y=h-line_h-10:x=w/10*mod(t\,10):enable=gt(t\,10)" -codec:v libx264 -codec:a copy -y output.mp4

显示时间

添加字幕

新建一个srt/ass文件,写入字幕信息,关于字幕的样式,均写在文件中。可参考此文章

ffmpeg  -i  input.mp4  -vf subtitles=test.srt -y output.mp4

画中画

实现视频画中画,将一个视频嵌入到另一个视频中

ffmpeg -i input.mp4 -vf "movie=test.mp4,scale=480x320[test]; [in][test] overlay=x=100:100 [out] enable=10" over.mp4

动态改变x,y值,实现走马灯效果

ffmpeg -i input.mp4 -vf "movie=test.mp4,scale=480x320[test]; [in][test] overlay=x='if(gte(t,2),-w+(t-2)*20)':100 [out] "  -y over.mp4

效果图:
在这里插入图片描述

多宫格显示

ffmpeg -re -i input.mp4 -re -i over.mp4 -re -i test.mp4 -re -i zzz.mp4 -filter_complex "nullsrc=size=640x480 [base]; [0:v] setpts=PTS-STARTPTS,scale=320x240 [upperleft]; [1:v] setpts=PTS-STARTPTS,scale=320x240 [upperright];[2:v] setpts=PTS-STARTPTS, scale=320x240 [lowerleft]; [3:v] setpts=PTS-STARTPTS,scale=320x240 [lowerright]; [base][upperleft] overlay=shortest=1 [temp1]; [temp1][upperright] overlay=shortest=1:x=320 [temp2]; [temp2][lowerleft] overlay=shortest=1:y=240 [temp3]; [temp3][lowerright] overlay=shortest=1:x=320:y=240 " -c:v libx264 output.mp4

在这里插入图片描述

抠图

参数说明:colorkey 将指定的色值变成透明色,0.3这个颜色的范围

ffmpeg -i blue.png -vf colorkey=0x09377a:0.3 -y out.png

在这里插入图片描述

在这里插入图片描述

视频背景模糊处理

//split过滤器创建两个输入文件的拷贝并标记为[a],[b]
// [a]boxburl过滤器进行虚化并输出到[1],参数2:1将亮度,色度和alpha半径设置为2,将boxblur滤镜应用到相应平面的次数1次
// [b]scale过滤器可以缩放视频视频并输出到[2].
// 用overlay过滤器把 [2]覆盖到[1]的旁边,W代表[1]的宽,w为[2]的宽。

ffmpeg -i input.mp4 -vf "split[a][b];[a]scale=iw*1.5:ih*1.5,boxblur=2:1[1];[b]scale=iw:ih[2];[1][2]overlay=(W-w)/2:(H-h)/2" -c:v libx264 -crf 18 -preset veryfast   -f mp4 output.mp4 -y

在这里插入图片描述
方法二:
[0:v]代表视频流为输入源
crop代表截取视频范围,一般参数有4个w,h,x,y分别为宽:长:x轴截取起点:y轴截取起点(默认x,y为(W-w)/2:(Y-y)/2)
gblur代表高斯模糊

ffmpeg -i test.mp4 -filter_complex [0:v]crop=iw/10:100,gblur=sigma=5,scale=iw*10:720[v1];[v1][0:v]overlay=0:(H-h)/2 -y out.mp4

在这里插入图片描述

音视频倍速处理

视频变速
setpts,小于1为加快速度,大于1为减速

ffmpeg -i input.mp4 -vf "setpts = 0.5 * PTS, setpts=0.5*PTS" -y output.mp4

音频变速
atempo 只能使用0.5到2.0之间的值,大于1是加速,与视频中的参数相反

ffmpeg -i input.mp4 -af "atempo=2.0" -y output.mp4

同时对音视频变速处理

ffmpeg -i input.mp4 -filter_complex "[0:v]setpts = 0.5 * PTS[v1];[0:a] atempo=2.0[a1]" -map "[v1]" -map "[a1]" output.mp4

视频淡入淡出效果

fade
•type, t
指定类型是in代表淡入,out代表淡出,默认为in

•start_frame, s
指定应用效果的开始时间,默认为0.

•nb_frames, n
应用效果的最后一帧序数。
对于淡入,在此帧后将以本身的视频输出,对于淡出此帧后将以设定的颜色输出,默认25.

•alpha
如果设置为1,则只在透明通道实施效果(如果只存在一个输入),默认为0

•start_time, st
指定按秒的开始时间戳来应用效果。
如果start_frame和start_time都被设置,则效果会在更后的时间开始,默认为0

•duration, d
按秒的效果持续时间。
对于淡入,在此时后将以本身的视频输出,对于淡出此时后将以设定的颜色输出。
如果duration和nb_frames同时被设置,将采用duration值。默认为0

//前面30帧黑色,100帧淡入

ffmpeg -i test.mp4 -vf fade=in:30:100 -y oo.mp4

//前面3s黑屏,3.5s淡入

ffmpeg -i test.mp4 -vf fade=t=in:st=3:d=3.5 -y oo.mp4

调整亮度、饱和度、对比度、gama变换

contrast 对比度范围-1000-1000 default 1
brightness 亮度-1.0-1.0 default 0
saturation 饱和度 取值范围0.0-3.0 default 1
gamma 取值范围0.1-10.0 default 1
gamma_r
gamma_g
gamma_b

//对比度为50

ffmpeg -i test.mp4 -vf eq=contrast=50 -y ooo.mp4

在这里插入图片描述

ffmpeg -i test.mp4 -vf eq=gamma_r=6 -y ooo.mp4

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值