FFMPEG常用命令

FFMPEG常用命令ffmpeg fdshow iaudio 麦克风 Realtek Audio fdshow iaudio virtual audio capturer filter complexam

大家好,欢迎来到IT知识分享网。

初识ffmpeg命令

ffmpeg版本查看

$:ffmpeg -version 

image.png

ffmpeg命令查询

ffmpeg分类查询

基础命令

提取音/视频

转封装

过滤器

视频拼接

  1. 生成测试文件

◼ 找三个不同的视频每个视频截取5秒内容

  1. 开始拼接文件:

◼ 以MP4格式进行拼接(注意拼接前使用mediaInfo查看1/2/3.MP4文件分辨率、 音视频是否一致)

  1. 测试不同编码拼接:

◼ 修改音频编码

视频裁剪

image.png

变量 用于 ow 和 oh 参数的表达式中的可用变量

文字水印

使用实例:

(1)将文字的水印加在视频的左上角
ffplay -i input.mp4 -vf “drawtext=fontsize=100:fontfile=FreeSerif.ttf:text=‘hello world’:x=20:y=20”
将字体的颜色设置为绿色:
ffplay -i input.mp4 -vf “drawtext=fontsize=100:fontfile=FreeSerif.ttf:text=‘hello world’:fontcolor=green”
如果想调整文字水印显示的位置,调整 x 与 y 参数的数值即可。
ffplay -i input.mp4 -vf “drawtext=fontsize=100:fontfile=FreeSerif.ttf:text=‘hello world’:fontcolor=green:x=400:y=200”
修改透明度
ffplay -i input.mp4 -vf “drawtext=fontsize=100:fontfile=FreeSerif.ttf:text=‘helloworld’:fontcolor=green:x=400:y=200:alpha=0.5”






(2)文字水印还可以增加一个框,然后给框加上背景颜色:
ffplay -i input.mp4 -vf “drawtext=fontsize=100:fontfile=FreeSerif.ttf:text=‘hello world’:fontcolor=green:box=1:boxcolor=yellow”

(3)有些时候文字水印希望以本地时间作为水印内容,可以在 drawtext 滤镜中配合一些特殊用法来完成,在 text 中显示本地当前时间,格式为年月日时分秒的方式,
ffplay -i input.mp4 -vf “drawtext=fontsize=60:fontfile=FreeSerif.ttf:text=‘%{localtime:%Y-%m-%d %H-%M-%S}’:fontcolor=gree
n:box=1:boxcolor=yellow”
在使用 ffmpeg 转码存储到文件时需要加上-re,否则时间不对。
ffmpeg -re -i input.mp4 -vf “drawtext=fontsize=60:fontfile=FreeSerif.ttf:text=‘%{localtime:%Y-%m-%d %H-%M-%S}’:fontcolor=gree n:box=1:boxcolor=yellow” out.mp4
(4)在个别场景中,需要定时显示水印,定时不显示水印,这种方式同样可以配合 drawtext 滤镜进行处理,使用 drawtext 与 enable 配合即可,
例如每 3 秒钟显示一次文字水印:
ffplay -i input.mp4 -vf “drawtext=fontsize=60:fontfile=FreeSerif.ttf:text=‘test’:fontcolor=green:box=1:boxcolor=yellow:enable=lt(mod(t,3),1)”
在使用 ffmpeg 转码存储到文件时需要加上-re,否则时间不对。
表达式参考:http://www.ffmpeg.org/ffmpeg-utils.html 3 Expression Evaluation
lt(x, y) Return 1 if x is lesser than y, 0 otherwise.
mod(x, y) Compute the remainder of division of x by y.










(5)跑马灯效果
ffplay -i input.mp4 -vf “drawtext=fontsize=100:fontfile=FreeSerif.ttf:text=‘helloworld’:x=mod(100t,w):y=abs(sin(t))h0.7″
修改字体透明度,修改字体颜色
ffplay -i input.mp4 -vf “drawtext=fontsize=40:fontfile=FreeSerif.ttf:text=‘liaoqingfu’:x=mod(50

t,w):y=abs(sin(t))h0.7:alpha=0.5:fontcolor=white:enable=lt(mod(t,3),1)”

图片水印

为视频添加图片水印可以使用 movie 滤镜,相关参数:

使用实例:

生成画中画

可以通过 overlay 将 多个视频流、多个多媒体采集设备、多个视频文件合并到一个界面中,生成画中画的效果。

使用实例:

多宫格处理

从前文中可以看出进行视频图像处理时,overlay 滤镜为关键画布,可以通过 FFmpeg建立一个画布,也可以使用默认的画布。如果想以多宫格的方式展现,则可以自己建立一个足够大的画布, 下面就来看一下多宫格展示的例子:

ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -filter_complex “nullsrc=size=640×480[base];[0:v] setpts=PTS-STARTPTS,scale=320×240[upperleft];[1:v]setpts=PTS-STARTPTS,scale=320×240[upperright];[2:v]setpts=PTS-STARTPTS, scale=320×240[lowerleft];[3:v]setpts=PTS-STARTPTS,scale=320×240[lowerright];[base][upperleft]overlay=shortest=1[tmp1];[tmp1][upperright]overlay=shortest=1:x=320[tmp2];[tmp2][lowerleft]overlay=shortest=1:y=240[tmp3];[tmp3][lowerright]overlay=shortest=1:x=320:y=240” out.mp4

1.2.3.4.mp4 为文件路径,out.MP4 为输出文件路径,通过 nullsrc 创建 overlay 画布,画布大小 640:480,使用[0:v][1:v][2:v][3:v]将输入的 4 个视频流去除,分别进行缩放处理,然后基于 nullsrc 生成的画布进行视频平铺,命令中自定义 upperleft,upperright,lowerleft,lowerright 进行不同位置平铺。

视频倒放相关控制

通过ffmpeg命令行进行音视频倒放,android平台同样可以以将ffmpeg集成进去实现音视频的相关编辑

图片与视频互转

视频录制命令

ffmpeg -list_devices true -f dshow -i dummy

直播推流/拉流命令


免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/112148.html

(0)
上一篇 2026-01-20 13:11
下一篇 2026-01-20 13:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信