FFplay文档解读-50-多媒体过滤器四

news2025/7/8 15:24:47

32.21 showspectrumpic

将输入音频转换为单个视频帧,表示音频频谱。

过滤器接受以下选项:

size,s

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

mode

指定显示模式。

它接受以下值:

解释
combined所有通道都显示在同一行中
separate所有通道都显示在单独的行中

默认值是:‘combined’

color

指定显示颜色模式。

它接受以下值:

解释
channel每个通道都以单独的颜色显示
intensity每个通道使用相同的颜色方案显示
rainbow使用彩虹配色方案显示每个通道
moreland每个通道都使用更多的颜色方案显示
nebulae使用星云颜色方案显示每个通道
fire使用火焰色方案显示每个通道
fiery每个通道都使用火热的配色方案显示
fruit使用水果配色方案显示每个通道
cool每个通道都使用炫酷的配色方案显示

默认值是:‘intensity’

scale

指定用于计算强度颜色值的比例。

它接受以下值:

解释
lin线性
sqrt平方根,默认
cbrt立方根
log对数的
4thrt第4 root
5thrt第5 root

默认值是:log

saturation

为显示的颜色设置饱和度修改器。 负值提供替代配色方案。 0根本没有饱和。 饱和度必须在[-10.0,10.0]范围内。 默认值为1

win_func

设置窗口功能。

它接受以下值:

rect
bartlett
hann
hanning
hamming
blackman
welch
flattop
bharris
bnuttall
bhann
sine
nuttall
lanczos
gauss
tukey
dolph
cauchy
parzen
poisson

默认值是:hann

orientation

设置时间与频率轴的方向。 可以是垂直的或水平的。 默认为垂直。

gain

设置用于计算强度颜色值的比例增益。 默认值为1

legend

绘制时间和频率轴和图例。 默认值已启用。

rotation

设置颜色旋转,必须在[-1.0,1.0]范围内。 默认值为0

32.21.1 示例

  • 使用ffmpeg提取1024x1024图像中整个音轨的音频频谱图。

      ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
    

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

  

32.22 showvolume

将输入音频音量转换为视频输出。

过滤器接受以下选项:

rate,r

设置视频速率。

b

设置边框宽度,允许范围为[0,5]。 默认值为1

w

设置通道宽度,允许范围为[80,8192]。 默认值为400

h

设置通道高度,允许范围为[1,900]。 默认值为20

f

设置淡入淡出,允许范围为[0,1]。 默认值为0.95

c

设置音量颜色表达式。

表达式可以使用以下变量:

变量解释
VOLUME当前最大通道容量,以dB为单位
PEAK当前的高峰
CHANNEL当前频道编号,从0开始
t

如果设置,则显示通道名称。 默认值已启用。

v

如果设置,则显示音量值。 默认值已启用。

o

设置方向,可以是水平:h或垂直:v,默认为h

s

设置步长,允许范围为[0,5]。 默认值为0,表示禁用步骤。

p

设置背景不透明度,允许范围为[0,1]。 默认值为0

m

设置测光模式,可以是峰值:prms:r,默认为p

ds

设置显示比例,可以是线性的:linlog:log,默认是lin

dm

第二。 如果设置为> 0。则显示前一秒中最大级别的行。 默认为禁用:0

dmc

最大线的颜色。 当dm选项设置为> 0时使用。默认值为:orange

32.23 showwaves

将输入音频转换为视频输出,表示样本波。

过滤器接受以下选项:

size,s

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

mode

设置显示模式。

可用值如下所示:

解释
point为每个样本画一个点
line为每个样本绘制一条垂直线
p2p为每个样本绘制一个点,并在它们之间画一条线
cline为每个样本绘制一条居中的垂直线

默认值是:point

n

设置在同一列上打印的样本数。 值越大,帧速率越低。 必须是正整数。 仅当未明确指定rate的值时,才能设置此选项。

rate,r

设置(近似)输出帧速率。 这可以通过设置选项n来完成。 默认值为25

split_channels

设置是否应单独绘制通道或重叠通道。 默认值为0

colors

设置以|分隔的颜色,这些颜色将用于绘制每个通道。

scale

设置幅度标度。

可用值如下所示:

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

默认值是:linear

draw

设置绘图模式。 这对于设置高n非常有用。

可用值如下所示:

解释
scale缩放每个绘制样本的像素值
full直接绘制每个样本

默认值是:scale

32.23.1 示例

  • 同时输出输入文件音频和相应的视频表示:

      amovie=a.mp3,asplit[out0],showwaves[out1]
    
  • 创建合成信号并使用showwaves显示它,强制帧速率为每秒30帧:

      aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
    

32.24 showwavespic

将输入音频转换为单个视频帧,表示样本波。

过滤器接受以下选项:

size,s

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

split_channels

设置是否应单独绘制通道或重叠通道。 默认值为0

colors

设置以|分隔的颜色,这些颜色将用于绘制每个通道。

scale

设置幅度标度。

可用值如下所示:

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

默认值是:linear

32.24.1 示例

  • 使用ffmpeg1024x800图片中提取整个音轨的波形的通道分割表示:

      ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
    

32.25 sidedata, asidedata

删除帧边数据,或根据它选择帧。

此过滤器接受以下选项:

mode

设置过滤器的操作模式。

可用的值如下所示:

解释
select选择具有类型的边数据的每个帧
delete删除类型的边数据。 如果未设置type,则删除框架中的所有边数据
type

设置所有模式使用的边数据类型。 必须设置为选择模式。 有关帧边数据类型的列表,请参阅'libavutil / frame.h'中的AVFrameSideDataType枚举。 例如,要选择AV_FRAME_DATA_PANSCAN边数据,必须指定PANSCAN

32.26 spectrumsynth

2个输入视频频谱中合成音频,第一个输入流表示跨时间的幅度,第二个表示跨时间的相位。滤波器将从视频中显示的频域转换回音频输出中显示的时域。

此滤波器主要用于反转已处理的showpectrum滤波器输出,但也可以合成其他频谱图的声音。但是在这种情况下,如果相位数据不可用,结果将会很差,因为在这种情况下需要重新创建相位数据,通常只是从随机噪声中重新创建。为获得最佳效果,请使用仅灰色输出(显示光谱滤镜中的通道颜色模式)和对数视频的对数比例和相位视频的lin比例。要为第二个视频制作相位,请使用数据选项。输入视频通常应使用全帧幻灯片模式,因为这样可以节省解码视频所需的资源。

过滤器接受以下选项:

sample_rate

指定输出音频的采样率,生成频谱的音频采样率可能不同。

channels

设置输入视频频谱中表示的频道数。

scale

设置在生成幅度输入频谱时使用的比例。可以linlog。默认为log

slide

设置生成输入光谱时使用的幻灯片。可以是replacescrollfullframerscroll。默认为fullframe

win_func

设置用于再合成的窗口函数。

overlap

设置窗口重叠。在[0,1]范围内。默认值为1,表示将选择所选窗口函数的最佳重叠。

orientation

设置输入视频的方向。可以是垂直的或水平的。默认为垂直。

32.26.1 示例

  • 首先从音频创建幅度和相位视频,假设音频是44100采样率的立体声,然后使用spectrumsynth将视频重新合成回音频:

      ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=log:overlap=0.875:color=channel:slide=fullframe:data=magnitude -an -c:v rawvideo magnitude.nut
      ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=lin:overlap=0.875:color=channel:slide=fullframe:data=phase -an -c:v rawvideo phase.nut
      ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
    

32.27 split, asplit

将输入分成几个相同的输出。

asplit适用于音频输入,与视频分开。

过滤器接受一个指定输出数量的参数。 如果未指定,则默认为2

32.27.1 示例

  • 从同一输入创建两个单独的输出:

      [in] split [out0][out1]
    
  • 要创建3个或更多输出,需要指定输出数量,如:

      [in] asplit=3 [out0][out1][out2]
    
  • 从同一输入创建两个单独的输出,一个裁剪,一个填充:

      [in] split [splitout1][splitout2];
      [splitout1] crop=100:100:0:0    [cropout];
      [splitout2] pad=200:200:100:100 [padout];
    
  • 使用ffmpeg创建5个输入音频副本:

      ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
    

32.28 zmq, azmq

接收通过libzmq客户端发送的命令,并将它们转发到filtergraph中的过滤器。

zmqazmq用作传递过滤器。必须在两个视频滤波器之间插入zmq,两个音频滤波器之间的azmq。两者都能够向任何过滤器类型发送消息。

要启用这些过滤器,需要安装libzmq库和标头,并使用--enable-libzmq配置FFmpeg

zmqazmq过滤器用作libzmq服务器,它接收通过'bind_address'(或缩写'b')选项定义的网络接口发送的消息。该选项的默认值为'tcp:// localhost:5555'。可能希望根据需要更改此值,但不要忘记转义任何符号(请参阅filtergraph转义)。

收到的消息必须采用以下格式:

TARGET COMMAND [ARG]

TARGET指定命令的目标,通常是过滤器类的名称或特定的过滤器实例名称。默认筛选器实例名称使用模式Parsed_ <filter_name> _ <index>,但您可以使用filter_name @ id语法覆盖它(请参阅Filtergraph语法)。

COMMAND指定目标过滤器的命令名称。

ARG是可选的,它指定给定COMMAND的可选参数列表。

在接收时,处理该消息并将相应的命令注入到过滤器图中。根据结果​​,过滤器将向客户端发送回复,采用以下格式:

ERROR_CODE ERROR_REASON
MESSAGE

MESSAGE是可选的。

32.28.1 示例

查看'tools / zmqsend'以获取zmq客户端的示例,该客户端可用于发送由这些过滤器处理的命令。

考虑ffplay生成的以下过滤器图。 在此示例中,最后一个覆盖过滤器具有实例名称。 所有其他过滤器都将具有默认实例名称。

ffplay -dumpgraph 1 -f lavfi "
color=s=100x100:c=red  [l];
color=s=100x100:c=blue [r];
nullsrc=s=200x100, zmq [bg];
[bg][l]   overlay     [bg+l];
[bg+l][r] overlay@my=x=100 "

要更改视频左侧的颜色,可以使用以下命令:

echo Parsed_color_0 c yellow | tools/zmqsend

改变右侧:

echo Parsed_color_1 c pink | tools/zmqsend

要改变右侧的位置:

echo overlay@my x 150 | tools/zmqsend

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/6852.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot入门必会(基本介绍+依赖管理+自动装配)

目录 一.基础入门 1.Spring Boot 是什么? 2.SpringBoot 快速入门 2.1完成步骤 2.2快速入门小结 3.Spring SpringMVC SpringBoot 的关系 3.1梳理关系 3.2如何理解 -约定优于配置 二.依赖管理和自动配置 1.依赖管理 1.1 什么是依赖管理 1.2 修改自动仲裁/默认版本号 …

论文阅读-Federated Social Recommendation with Graph NeuralNetwork

基于图神经网络的联邦社交推荐 1. 引言 因此&#xff0c;针对社交推荐任务&#xff0c;我们设计了一个联邦学习推荐系统&#xff0c;该系统具有异构性、个性化和隐私保护要求&#xff0c;具有一定的挑战性。为此&#xff0c;设计了一个基于图神经网络(FeSoG)的联邦社交推荐框…

【RHCE】ansible的简单配置

目录 使用静态清单文件指定受管主机 定义主机清单 定义方式 使用静态主机清单指定受管主机&#xff08;默认&#xff09; 验证清单 第一种方式 第二种方式&#xff08;图表形式显示&#xff09; 选择主机和组&#xff1a; 1>匹配所有主机 2>匹配指定的主机或者主…

二叉树与树、森林之间的转换

关于树的概念 树可以称为特殊的森林 &#xff0c; 其中二叉树是树中一些节点度数最大为2 &#xff0c;并且分左右孩子的树 ● 二叉树很重要 • 结构简单 • 存储效率高 • 运算算法相对简单 • 任何森林、树都可以转换成二叉树 ● 讨论 • 二叉树 度为2 的树 ? 答: 树的度就是…

官方盘点 .NET 7 新功能

.NET 7 为C# 11/F# 7、.NET MAUI、ASP.NET Core/Blazor、Web API、WinForms、WPF 等应用程序带来了更高的性能和新功能。使用 .NET 7&#xff0c;您还可以轻松地将 .NET 7 项目容器化&#xff0c;在 GitHub 操作中设置 CI/CD 工作流&#xff0c;并实现云原生可观察性。欢迎下载…

java之Fork/Join框架

文章目录前言工作窃取算法Fork/Join框架的设计Fork/Join框架的异常处理Fork/Join框架的实现原理总结前言 Fork/Join框架是java7提供的一个用于执行并行任务的框架&#xff0c;是一个把大部分任务分割成若干个小任务&#xff0c;最终汇总每个小任务结果后&#xff0c;得到大任务…

4进程地址空间

文章目录前言1. 概念引入2. CPU和物理内存关系3.何为进程地址空间4. 为什么存在地址空间?前言 本节主要是讲解进程地址空间,区分和物理内存地址空间的差别,并且向读者解释四个疑问: 怎样验证地址空间的排布; 进程地址空间是什么; 进程地址空间和物理内存之间的关系; 为什么要…

[附源码]java毕业设计基于web的球类体育馆预定系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

数据链路层(2层 Data Link Layer)

1、数据链路层属于2层 2、传输单元&#xff1a;帧 帧格式&#xff1a; 802.3 有线网卡 802.11 无线网卡&#xff0c;无线路由器都支持802.11 802开头的都是国际标准&#xff0c;是由IEEE国际学术组织制定的标准 3、帧结构的构成&#xff1a;MAC子层&#xff08;帧头&…

MySQL表的增删改查(进阶)

目录1.数据库约束1.1约束类型1.2 NULL约束1.3 UNIQUE&#xff1a;唯一约束1.4 PRIMARY KEY: 主键约束1.5 DEFAULT&#xff1a;默认值约束1.6 FOREIGN KEY&#xff1a;外键约束2. 表的设计3. 新增4. 查询4.1 聚合查询4.1.2 GROUP BY子句4.2 联合查询4.2.1内连接4.2.2外连接4.2.3…

2022 第十四届蓝桥杯模拟赛第一期(题解与标程)

第十四届蓝桥杯模拟赛第一期1. 二进制位数问题描述答案提交参考答案2. 晨跑问题描述答案提交参考答案3. 调和级数问题描述答案提交参考答案程序验证4. 山谷问题描述答案提交参考答案5. 最小矩阵问题描述答案提交参考答案6. 核酸日期问题描述输入格式输出格式样例输入样例输出评…

项目风险管理的5大关键点,你做了几点?

1、全方位科学分析项目风险 为了提高项目抗风险能力&#xff0c;我们需要对项目风险进行科学全面的分析。一般我们从3个维度对风险进行科学分析&#xff1a;影响的严重性、发生的可能性、产生的影响性。 根据风险或机会对项目的影响程度&#xff0c;一般我们会从三个维度将其划…

javascript大作业《web课程设计》用html做一个期末作业网站,梅西足球体育网页,css

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

STING 与 cGAS的结合导致TBK1 激酶募集和活化

来自细菌或病毒的核酸在受感染的细胞中会产生强效的免疫反应&#xff0c;而病原体衍生核酸的检测是宿主感知感染并启动保护性免疫反应的核心策略。cGAS (Cyclic GMP-AMP synthase) 是一种双链 DNA 传感器&#xff0c;可催化 cGAMP&#xff08;cyclic GMP-AMP&#xff09;的合成…

二级导航栏

简介&#xff1a;本文通过HTML与CSS相集合的方式&#xff0c;来实现二级导航菜单。 HTML构建骨架 <body><ul class"nav1"><li>水果<ul class"nav2"><li>苹果</li><li>香梨</li><li>火龙果</li…

前端CSS射门动画-为梅西最后一届世界杯加油

☆ 距离2022卡塔尔世界杯只有6天时间了&#xff0c;众多球星我喜欢梅西和奥乔亚。 ☆ 我们不能到现场去&#xff0c;只能手中的代码自娱自乐一下&#xff0c;就当为梅西加油了。这是梅西最后一届世界杯了。 梅西给我的感觉&#xff0c;踢球足够利落干净&#xff0c;你不会从他的…

AI遮天传 ML/DL-感知机

感知机的出现是人工智能发展史一大重要里程碑&#xff0c;其后才诞生了&#xff1a;多层感知机、卷积神经网络等一系列的经典网络模型。 在我看来&#xff0c;它虽然是深度学习领域的一大开端&#xff0c;但本身解决的只是线性二分类问题&#xff0c;它本身与机器学习经典模型线…

RORγ 反向激动剂-XY101 小分子化合物

早在 2016 年&#xff0c;中国科学院广州生物医药与健康研究院许永教授团队就曾与加州大学戴维斯分校的陈宏武教授合作&#xff0c;首次发现核激素受体 RORγ 是作用于雄激素受体 AR 上游的关键驱动因子&#xff0c;直接调控雄激素受体 AR 的表达。因此&#xff0c;RORγ 成为前…

gitlab+jenkins+harbor次完整CI链条

用一台机器搭harbor 先安装docker工具&#xff0c;因为装harbor需要docker [rootharbor ~]# cd /etc/yum.repos.d [rootharbor yum.repos.d]# wget https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo [rootharbor yum.repos.d]# sed -i s#download.docke…

HTML做一个个人博客页面(纯html代码)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…