
音频波形或音频图是以视频形式显示声音的一种视觉表现形式。在社交媒体上经常可以看到播客视频或播客广告中包含动画波形,使视频更具视觉吸引力,并为静态场景添加动画效果。
在本教程中,您将学习如何使用名为 FFmpeg 的工具创建播客视频中可能出现的波形视频。
关于 FFmpeg
FFmpeg 是一款免费的开源命令行工具,用于处理视频、音频和其他形式的多媒体。你可以用它来完成文件转换、编辑、转码等任务。它的多功能性使其成为开发人员和视听工程师的首选。
安装 FFmpeg
要跟上本指南并生成波形,您需要在电脑上安装 FFmpeg。首先,运行以下命令检查是否已安装。
1 ffmpeg --version
如果已安装,您应该能看到版本号和构建信息。
如果没有,请访问 FFmpeg 官方下载页面,选择适合您操作系统的版本,然后按照安装说明进行操作。
通常,这包括下载 FFmpeg 软件包、解压缩其内容,以及将 FFmpeg 可执行文件夹添加到系统的 PATH 中。
FFmpeg 波形命令
在本演示中,我们将使用以下音频,文件名为 input.mp3。
打开终端并导航到音频文件所在的目录,然后运行以下 FFmpeg 命令:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=white,format=yuv420p[vout]" -map "[vout]" -map 0:a -c:v libx264 -c:a copy output.mp4
当 FFmpeg 处理音频文件并生成名为 output.mp4 的视频文件时,你会看到命令的输出结果。
filter-complex 和 showwaves filter 的工作原理
该命令有几个参数共同作用生成波形。最重要的部分是 -filter_complex 参数和 showwaves=size=854×480:colors=white 值。FFmpeg -filter_complex 参数允许对媒体文件应用多个滤波器。
在本例中,我们使用 showwaves 过滤器生成波形。showwaves 过滤器有多个选项,可让您自定义波形,如大小、颜色和样式。在本例中,我们将尺寸设置为 854×480 像素,颜色设置为白色。
compand 过滤器用于压缩和扩展波形以填充视频帧。format=yuv420p 参数用于将像素格式设置为 yuv420p,与大多数视频播放器兼容。
[0:a] 为输入音频流输入,[vout] 为输出视频流。
其余参数细目
该命令还有几个值得一提的参数:
- -i input.mp3 告诉 FFmpeg 我们要用来生成波形的音频文件。
- -r 25 将输出视频的帧频设置为每秒 25 帧(fps)。
- -map “[vout]” 将输出视频流映射到输出文件。
- -map 0:a 将输入音频流映射到输出文件。
- -c:v libx264 指定输出文件要使用的视频编解码器。在本例中,我们使用 H.264 (mp4) 编解码器。
- -c:a copy 将音频流从输入文件复制到输出文件,无需重新编码。
- output.mp4 指定输出视频文件的名称。
如何设计波形外观
在前面的示例中,我们生成了一个基本波形。您可以通过更改 showwaves 滤波器的参数来定制波形的外观。以下是一些可以调整的常用参数:
绘制参数
绘制选项可设置为全图或缩放,控制波形中采样的绘制方式。默认值为缩放,可缩放每个绘制样本的像素。全图选项则直接绘制每个样本。使用完全绘制时,波形看起来更醒目,也更容易看清。
下面是相同的命令,但绘制参数设置为全图:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=white:draw=full,format=yuv420p[vout]" -map "[vout]" -map 0:a -c:v libx264 -c:a copy output.mp4
模式参数
模式参数控制波形的样式。默认值为点(point),即绘制单个采样点而不用线条连接。其他可用模式包括线、cline 和 p2p。
以前面的命令为例,下面是一个使用线模式的示例:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=white:draw=full:mode=line,format=yuv420p[vout]" -map "[vout]" -map 0:a -c:v libx264 -c:a copy output.mp4
使用 cline 模式:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=white:draw=full:mode=cline,format=yuv420p[vout]" -map "[vout]" -map 0:a -c:v libx264 -c:a copy output.mp4
最后,使用 p2p 模式:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=white:draw=full:mode=p2p,format=yuv420p[vout]" -map "[vout]" -map 0:a -c:v libx264 -c:a copy output.mp4
刻度参数
缩放参数用于调整波形振幅,影响波形的波峰和波谷。默认值为 lin(线性)。其他可用值包括 log(对数)、sqrt(平方根)和 cbrt(立方根)。
接上一条命令,下面是一个使用对数标度的示例:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=white:draw=full:mode=p2p:scale=log,format=yuv420p[vout]" -map "[vout]" -map 0:a -c:v libx264 -c:a copy output.mp4
使用 sqrt 缩放:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=white:draw=full:mode=p2p:scale=sqrt,format=yuv420p[vout]" -map "[vout]" -map 0:a -c:v libx264 -c:a copy output.mp4
并使用 cbrt 缩放:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=white:draw=full:mode=p2p:scale=cbrt,format=yuv420p[vout]" -map "[vout]" -map 0:a -c:v libx264 -c:a copy output.mp4
颜色参数
到目前为止,我们所有的波形都是白色的。您可以将波形颜色设置为任何您喜欢的颜色。您可以使用内置的 FFmpeg 颜色名称,如白色、红色或蓝色。可用的颜色名称列在 FFmpeg 颜色指南中。
您也可以使用 HTML 风格的十六进制颜色,如 0x25d3d0 或 #25d3d0。根据您的 FFmpeg 版本,您还可以使用 @ 后跟一个介于 0 和 1 之间的值为颜色添加透明度。例如,0x25d3d0@0.3 将颜色设置为 30% 不透明度。或者在十六进制代码的末尾添加阿尔法设置,如 0x25d3d0CC。
下面是一个使用 Shotstack 重点色 #25d3d0 的示例:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=#25d3d0:draw=full:mode=line,format=yuv420p[vout]" -map "[vout]" -map 0:a -c:v libx264 -c:a copy output.mp4
多种颜色
您也可以使用多种颜色,方法是用管道 | 符号分隔它们。例如,colors=blue|yellow 将创建一个包含蓝色和黄色的波形。
对于不同类型的音频,例如音乐文件,使用多种波形颜色效果更好。下面是一个使用重点色、辅助紫色 #7925d3 和音乐文件的示例:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=#25d3d0|#7925d3:draw=full:mode=line,format=yuv420p[vout]" -map "[vout]" -map 0:a -c:v libx264 -c:a copy output.mp4
尺寸参数
您可以使用尺寸参数调整波形的大小。这也将决定视频的输出大小,除非您使用其他 FFmpeg 参数来裁剪和调整视频大小。
我们的原始视频为 854×480 像素。下面是一个创建 400px x 400px 小正方形视频的示例:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=400x400:colors=#25d3d0:draw=full:mode=line,format=yuv420p[vout]" -map "[vout]" -map 0:a -c:v libx264 -c:a copy output.mp4
背景颜色
到目前为止,所有波形视频的背景都是黑色的。使用以下命令可以更改背景颜色:
1 ffmpeg -i input.mp3 -f lavfi -i color=c=#7925d3:s=854x480 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=#25d3d0:draw=full:mode=line[vout];[1:v][vout]overlay=format=auto:shortest=1,format=yuv420p[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy output.mp4
在本例中,我们添加了以下内容:
-f lavfi -i color=c=#7925d3:s=854×480 使用单一滤镜并创建纯色背景。c 参数是十六进制格式的颜色,s 参数是视频的大小。纯色的大小应与波形视频的大小相匹配。
[1:v][vout]overlay=format=auto:shortest=1,format=yuv420p[v]使用叠加滤波器将波形输出叠加到背景颜色上。1:v][vout]和[v]符号控制滤波器的连锁方式。
shortest=1 参数可确保输出视频与最短输入流(即波形视频)的长度相同(如果不设置为最短输入流,背景色将永久播放)。
透明背景
在现实场景中,通常需要将波形叠加到图像或其他视频之上。为此,您需要创建一个透明背景的视频。我们一直使用的 H.264 编解码器无法做到这一点。
相反,您需要使用 QuickTime 动画编解码器 -c:v qtrle, argb 像素格式,并将视频保存为 .mov 文件。QuickTime 动画编解码器支持 alpha 透明背景。
下面是一个创建透明背景波形视频的命令示例:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=#25d3d0:draw=full:mode=line,format=argb[vout]" -map "[vout]" -map 0:a -c:v qtrle -c:a copy output.mov
输出视频将是一个透明背景的 .mov 文件。您可以在视频编辑软件中将此视频叠加到其他视频或图像之上。
删除音频
也有可能您想将音频分离出来,不将其与波形视频包含在一起。为此,您只需删除命令中的 -map 0:a -c:a copy 参数即可。下面是一个例子:
1 ffmpeg -i input.mp3 -r 25 -filter_complex "[0:a]compand,showwaves=size=854x480:colors=#25d3d0:draw=full:mode=line,format=argb[vout]" -map "[vout]" -map 0:a -c:v qtrle output.mov
总结
本指南介绍了 FFmpeg showwaves 过滤器的主要功能,以及如何从音频文件创建波形视频。您将学习如何通过调整绘制、模式、比例、颜色、大小和背景等参数来定制波形外观。您还学会了如何创建透明背景的波形视频,以及如何从输出视频中移除音频。
您还可以探索 FFmpeg showwaves 过滤器的其他一些选项,包括 n 和 split_channels。您可以通过数百种不同的方法来组合所有这些设置,以创建各种波形模式,让您的视频栩栩如生。
文章名称:《如何使用 FFmpeg 生成音频波形高级教程》
文章固定链接:https://www.dayanzai.me/ffmpeg-create-waveform.html
本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。
猜你喜欢
- 2020-11-30如何在 Windows 10 中禁止欢迎屏幕
- 2023-09-07解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题
- 2025-05-16腾讯即时通信工具 微信 WeChat 4.0.5 正式版更新发布
- 2024-10-11乌班图 Linux 系统 Ubuntu 24.10 发布更新镜像下载
- 2022-12-02Windows 剪贴板缓存实用程序 CLCL 2.1.3 中文绿色汉化版
相关推荐
- 2022-03-31完全免费视频编辑工具 VideoProc Vlogger 1.4 中文多语免费版
- 2019-06-15图像批量调整工具 FastStone Photo Resizer 4.3 绿色汉化版
- 2025-03-29虚拟打印机工具 priPrinter Professional 7.0.0.2563 中文多语免费版
- 2021-04-07台湾网友自制宅在家麦克笔/宅在家自动笔手写免费商用字体
- 2024-03-26微软发布针对 Windows Server 域控制器崩溃的紧急修复程序
发表评论
MORE>>微软应用
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
MORE>>安卓应用
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
MORE>>教程资源
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
MORE>>其它资源
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8