32. 多媒体过滤器

以下是当前可用的多媒体过滤器的说明。

32.1 abitscope

将输入音频转换为视频输出,显示音频位范围。

过滤器接受以下选项:

rate,r

设置帧速率,表示为每秒帧数。 默认值为25

size,s

指定输出的视频大小。 有关此选项的语法,请查阅(ffmpeg-utils)视频大小语法。 默认值为1024x256

colors

指定由空格分隔的颜色列表或用于绘制通道的|。 未识别或缺失的颜色将被白色替换。

32.2 ahistogram

将输入音频转换为视频输出,显示音量直方图。

过滤器接受以下选项:

dmode

指定如何计算直方图。

学习地址:音视频新手快速入门必备系列-FFmpeg+SDL播放器开发实现-学习视频教程-腾讯课堂
【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

它接受以下值:

解释
single 对所有通道使用单个直方图
separate 为每个通道使用单独的直方图

默认值是:single

rate,r

设置帧速率,表示为每秒帧数。 默认值为25

size,s

指定输出的视频大小。 有关此选项的语法,请查阅(ffmpeg-utils)视频大小语法。 默认值为hd720

scale

设置显示比例。

它接受以下值:

解释
log 对数
sqrt 平方根
cbrt 立方根
lin 线性
rlog 反向对数

默认值是:log

ascale

设置幅度标度。

它接受以下值:

解释
log 对数
lin 线性

默认值是:log

acount

设置在直方图中累积的帧数。 Defauls1。将此值设置为-1会累积所有帧。

rheight

设置窗口高度的直方图比率。

slide

设置超声波图。

它接受以下值:

解释
replace 用新的行替换旧行
scroll 从上到下滚动

默认值是:replace

32.3 aphasemeter

将输入音频转换为视频输出,显示音频相位。

过滤器接受以下选项:

rate,r

设置输出帧速率。 默认值为25

size,s

设置输出的视频大小。 有关此选项的语法,请查阅(ffmpeg-utils)视频大小语法。 默认值为800x400

rc
gc
bc

指定红色,绿色,蓝色对比度。 默认值为2,71。允许范围为[0,255]

mpc

设置将用于绘制中间相位的颜色。 如果color is none是默认值,则不会绘制中间相位值。

video

启用视频输出。 默认值已启用。

过滤器还导出帧元数据lavfi.aphasemeter.phase,它表示当前音频帧的平均相位。 值在[-1,1]范围内。 -1表示左右声道完全异相,1表示声道同相。

32.4 avectorscope

将输入音频转换为视频输出,表示音频矢量范围。

滤波器用于测量立体声音频流的声道之间的差异。 由相同的左和右信号组成的单声道信号产生直的垂直线。 任何立体声分离都可以看作是与该线的偏差,从而形成一个Lissajous图。 如果出现直线(或偏离它)但水平线出现,则表示左右声道异相。

过滤器接受以下选项:

mode, m

设置矢量示波器模式。

可用值如下所示:

解释
lissajous 利萨如旋转了45度
lissajous_xy 与上述相同但未旋转
polar 形状类似于圆的一半

默认值是:‘lissajous’

size, s

设置输出的视频大小。 有关此选项的语法,请检查(ffmpeg-utils)视频大小语法。 默认值为400x400

rate, r

设置输出帧速率。 默认值为25

rc
gc
bc
ac

指定红色,绿色,蓝色和Alpha对比度。 默认值为40,160,80255。允许范围为[0,255]

rf
gf
bf
af

指定红色,绿色,蓝色和alpha淡入淡出。 默认值为15,10,55。允许范围为[0,255]

zoom

设置缩放系数。 默认值为1。允许的范围为[0,10]。 低于1的值将自动将缩放系数调整为最大可能值。

draw

设置矢量示波器绘图模式。

可用值如下所示:

解释
dot 为每个样本绘制点
line 在先前和当前样本之间画线

默认值是:‘dot

scale

指定音频样本的幅度比例。

可用值如下所示:

解释
lin 线性
sqrt 平方根
cbrt 立方根
log 对数
swap

用右通道轴交换左通道轴。

mirror

镜轴。

解释
none 没有镜像
x 仅镜像x轴
y 仅镜像y轴
xy 镜像两个轴

32.4.1 示例

  • 使用ffplay的完整示例:

      ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];[a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
    

32.5 bench, abench

过滤图的基准部分。

过滤器接受以下选项:

action

启动或停止计时器。

可用值如下所示:

解释
start 获取当前时间,将其设置为帧元数据(使用密钥lavfi.bench.start_time),并将帧转发到下一个过滤器
stop 获取当前时间并从输入帧元数据中获取lavfi.bench.start_time元数据以获取时差。 然后打印时间差,平均值,最大和最小时间(分别为tavgmaxmin)。 时间戳以秒表示

32.5.1 示例

  • 基准选择性滤色片:

      bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
    

32.6 concat

连接音频和视频流,将它们一个接一个地连接在一起。

过滤器适用于同步视频和音频流的片段。所有段必须具有相同数量的每种类型的流,并且这也将是输出流的数量。

过滤器接受以下选项:

n

设置段数。默认值为2

v

设置输出视频流的数量,也就是每个段中的视频流数量。默认值为1

a

设置输出音频流的数量,即每个段中的音频流数量。默认值为0

unsafe

激活不安全模式:如果段具有不同的格式,请不要失败。

滤波器具有v + a输出:第一个v视频输出,然后是音频输出。

nx(v + a)个输入:首先是第一个段的输入,与输出的顺序相同,然后是第二个段的输入,等等。

由于各种原因(包括编解码器帧大小或草率创作),相关流并不总是具有完全相同的持续时间。出于这个原因,应该立即连接相关的同步流(例如视频及其音频轨道)。 concat过滤器将使用每个段中最长流的持续时间(除了最后一个),并且如果需要,用静音填充较短的音频流。

要使此过滤器正常工作,所有段必须从时间戳0开始。

所有相应的流必须在所有段中具有相同的参数;过滤系统将自动选择视频流的常用像素格式,以及音频流的常用样本格式,采样率和通道布局,但其他设置(如分辨率)必须由用户明确转换。

不同的帧速率是可以接受的,但会在输出时产生可变的帧速率;一定要配置输出文件来处理它。

32.6.1 示例

  • 连接一个开头,一集和一个结尾,都是双语版本(流0中的视频,流12中的音频):

      ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \'[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]concat=n=3:v=1:a=2 [v] [a1] [a2]' \-map '[v]' -map '[a1]' -map '[a2]' output.mkv
    
  • 连接两部分,分别处理音频和视频,使用(a)电影源,并调整分辨率:

      movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;[v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
    

请注意,如果音频和视频流在第一个文件中的持续时间不完全相同,则会在针迹处发生异步。

32.6.2 命令行

此筛选器支持以下命令:

next

关闭当前段并转到下一段。

32.7 drawgraph, adrawgraph

使用输入视频或音频元数据绘制图形。

它接受以下参数:

m1

设置第一帧元数据键,将使用元数据值绘制图形。

fg1

设置第一个前景色表达式。

m2

设置第二帧元数据键,将使用元数据值绘制图形。

fg2

设置第二个前景色表达式。

m3

设置第3帧元数据键,将使用元数据值绘制图形。

fg3

设置第3个前景色表达式。

m4

设置第4帧元数据键,将使用元数据值绘制图形。

fg4

设置第4个前景色表达式。

min

设置元数据值的最小值。

max

设置元数据值的最大值。

bg

设置图形背景颜色。 默认为白色。

mode

设置图形模式。

模式的可用值如下所示:

bar
dot
line

默认值是:line

slide

设置幻灯片模式。

幻灯片的可用值如下:

解释
frame 到达右边框时绘制新框架
replace 用新的列替换旧列
scroll 从右向左滚动
rscroll 从左向右滚动
picture 画出单张照片

默认值是:frame

size

设置图形视频的大小。 有关此选项的语法,请检查(ffmpeg-utils)视频大小语法。 默认值为900x256

前景色表达式可以使用以下变量:

变量 解释
MIN 元数据值的最小值
MAX 元数据值的最大值
VAL 当前元数据键值

颜色定义为0xAABBGGRR

使用来自signalstats过滤器的元数据的示例:

signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255

使用来自ebur128过滤器的元数据的示例:

ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5

FFplay文档解读-47-多媒体过滤器一相关推荐

  1. FFplay文档解读-22-音频过滤器七

    26.60 loudnorm EBU R128响度归一化.包括动态和线性归一化模式.支持单通道(直播,文件)和双通(文件)模式.该算法可以针对IL,LRA和最大真实峰值.为了准确地检测真实峰值,音频流 ...

  2. FFplay文档解读-41-视频过滤器十六

    29.150 selectivecolor 将青色,品红色,黄色和黑色(CMYK)调整为特定颜色范围(例如"reds","yellows","gree ...

  3. FFplay文档解读-43-视频过滤器十八

    29.170 telecine 将电视电影处理应用于视频. 此过滤器接受以下选项: first_field 选项 解释 top, t top field first bottom, b 底部字段优先默 ...

  4. FFplay文档解读-20-音频过滤器五

    26.41 chorus 为音频添加合唱效果. 可以使单个声音听起来像合唱,但也可以应用于乐器. 合唱类似于具有短延迟的回声效果,但是对于回声,延迟是恒定的,伴随合唱,使用正弦或三角调制来改变它. 调 ...

  5. FFplay文档解读-49-多媒体过滤器三

    32.14 sendcmd, asendcmd 将命令发送到filtergraph中的过滤器. 这些过滤器读取要发送到filtergraph中其他过滤器的命令. 必须在两个视频滤镜之间插入sendcm ...

  6. FFplay文档解读-31-视频过滤器六

    29.50 elbg 使用ELBG(增强型LBG)算法应用海报效果. 对于每个输入图像,滤波器将根据码本长度(即不同输出颜色的数量)计算从输入到输出的最佳映射. 此过滤器接受以下选项. codeboo ...

  7. FFplay文档解读-16-音频过滤器一

    26. 音频过滤器 配置FFmpeg构建时,可以使用--disable-filters禁用任何现有过滤器. 配置输出将显示构建中包含的音频过滤器. 以下是当前可用音频过滤器的说明. 26.1 acom ...

  8. FFplay文档解读-39-视频过滤器十四

    29.130 prewitt 应用prewitt运算符输入视频流. 过滤器接受以下选项: planes 设置要处理的平面,将复制未处理的平面. 默认值为0xf,将处理所有平面. scale 设定值将与 ...

  9. FFplay文档解读-45-视频过滤器二十

    29.190 w3fdif 对输入视频进行去交错(w3fdif代表Weston 3 Field Deinterlacing Filter). 基于Martin Weston为BBC R&D描述 ...

最新文章

  1. Java / Android String.format 的使用
  2. SQL注入不能多句执行时的一种突破方法(SA权限)
  3. 2 获取对象 IDbDataAdapter 用于填充 DataSet 和更新数据源
  4. 强化学习(十九) AlphaGo Zero强化学习原理
  5. 爬楼梯与路径类题目记忆化递归与动态规划双解法(Leetcode题解-Python语言)
  6. C++是如何实现多态的
  7. 使用mysql制作学生成绩单_【实例讲解】快速制作学生成绩单
  8. TIM怎么更新版本 TIM检查更新版本教程
  9. java同步方法必须是静态的吗_Java基础知识之synchronized同步方法、代码块、静态方法、静态代码块的区别...
  10. Flex中如何通过设置GridLines对象的horizontalAlternateFill样式交错显示LineSeries图表背景颜色的例子...
  11. 会计学硕和计算机,会计学与会计硕士有什么区别
  12. ARM体系结构与编程笔记
  13. RAID磁盘阵列与阵列卡
  14. 电脑网络经常断线是怎么回事?从这几个问题去下手
  15. 对于多人联机游戏中 游戏房间实现的想法
  16. 第一个TensorFlow程序
  17. win10如何使用WinSAT测试体验指数
  18. 使用Python 绘制双Y轴和误差棒柱状图
  19. [Phonegap+Sencha Touch] 移动开发71 Sencha项目开发、调试方法建议
  20. pandas的行列获取/pandas iloc和loc的使用/如何获取pandas的行和列

热门文章

  1. 通过Safari浏览器获取iOS设备UDID(设备唯一标识符)
  2. 基于Domoticz智能家居系统(十三)Domoticz-3.8153在Tiny6410开发板上的移植
  3. 数字信号处理——窗函数
  4. Python爬虫学习总结
  5. 淘宝轮播图片制作技巧
  6. 如何把小程序游戏运行到自有App中?(IOS篇)
  7. LaTex关于数学公式的使用(11)--- 单位
  8. python中的乘方_python中的乘方
  9. python输入一个三位数输出百位十位个位_python输入一个水仙花数(三位数) 输出百位十位个位实例...
  10. 解决 M1 MAC安装软件提示来自身份不明开发者