音频波形或音频图是以视频形式显示声音的一种视觉表现形式。在社交媒体上经常可以看到播客视频或播客广告中包含动画波形,使视频更具视觉吸引力,并为静态场景添加动画效果。
在本教程中,您将学习如何使用名为 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 生成音频波形高级教程》
文章固定链接:http://www.dayanzai.me/ffmpeg-create-waveform.html
本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。
猜你喜欢
- 2014-09-03Win7 苹果主题 Mac OS X Theme for Windows 7 强烈推荐!
- 2024-09-17BT 种子下载工具 Free Download Manager 6.24.2.5857 + x64 中文多语免费版
- 2024-06-14哈希值验证工具 Hasher 4.2 中文多语免费免费版
- 2024-03-02安卓代码编辑器 Acode 1.10.0 中文免费版
- 2024-03-05TranslucentTB 让您的 Windows 10、11 任务栏变成透明/半透明效果
相关推荐
- 2022-05-02开源 NES 游戏模拟器 My Nes 7.13.8155.38062 中文绿色版
- 2024-07-09重复文件查找工具 AllDup 4.5.62 中文多语免费版
- 2024-05-23Windows 系统优化 Abelssoft PC Fresh 2024 10.01.54545 中文多语免费版
- 2021-10-20大眼仔推荐 5 款适用于 CG 设计的 3D 雕刻软件
- 2022-02-20大眼仔带您快速了解什么是知识共享和非商业用途?