使用ffmpeg从opus创建波形文件图像

使用ffmpeg从opus创建波形文件图像,ffmpeg,Ffmpeg,我一直在尝试使用ffmpeg从opus文件创建波形文件图像。到目前为止,我已经找到了三种不同的方法,但似乎无法确定哪一种是最好的 最终的结果是希望有一个声波只有约55像素的高度。该图像将成为css背景图像的一部分 改编自: ffmpeg-i file.opus-filter_complex “showwavespic,colorbalance=bs=0.5:gm=0.3:bh=-0.5,drawbox=x=(iw-w)/2:y=(ih-h)/2:w=iw:h=1:color=black@0.5"

我一直在尝试使用ffmpeg从opus文件创建波形文件图像。到目前为止,我已经找到了三种不同的方法,但似乎无法确定哪一种是最好的

最终的结果是希望有一个声波只有约55像素的高度。该图像将成为css背景图像的一部分

改编自:

ffmpeg-i file.opus-filter_complex “showwavespic,colorbalance=bs=0.5:gm=0.3:bh=-0.5,drawbox=x=(iw-w)/2:y=(ih-h)/2:w=iw:h=1:color=black@0.5" file.png

这将生成此图像:

接下来,我发现了这个(我最喜欢的是它的简单性):

ffmpeg-i test.opus-lavfi showwavespic=split_channels=1:s=1024x800 test.png

这是它看起来的样子:

最后,这一个来自,但使用第二个实用程序(gnuplot)而不仅仅是ffmpeg似乎效率较低:

ffmpeg-i file.opus-ac1-filter:a a样本=4000-映射0:a-c:a pcm_s16le-f数据-|\ gnuplot-e“集合 端子png尺寸525050;设置输出 'file.png';取消设置键;取消设置tics;取消设置边框;设置 lmargin 0;集合rmargin 0;集合tmargin 0;集合bmargin 0;绘图'

选项二是我最喜欢的,但我不喜欢波形顶部和底部的边距

选项三(使用gnuplot)可以根据我们的需要制作出最佳的“成形”图像,因为当图像大小仅为50像素高时,声音的初始尖峰似乎会使其余的图像太小而无法使用(线条几乎消失)

有什么建议可以最好地解决这个问题吗?我真的对我看到的任何选项都不太了解,当然除了尺寸。请注意,我还有10个数千个要处理,所以我自然想在一开始就做出明智的选择。


原始和操纵波形

您可以使用过滤器来调整动态范围。然后用于生成水平线

ffmpeg -i test.opus -filter_complex \
"compand=gain=-6,showwavespic=s=525x50, \
 drawbox=x=(iw-w)/2:y=(ih-h)/2:w=iw:h=1:color=white" \
-vframes 1 output.png
它不会像原始波形那样精确地表示音频,但在视觉上可能是一种改进;尤其是在如此广泛的范围内

另请参见。


原始和操纵波形

您可以使用过滤器来调整动态范围。然后用于生成水平线

ffmpeg -i test.opus -filter_complex \
"compand=gain=-6,showwavespic=s=525x50, \
 drawbox=x=(iw-w)/2:y=(ih-h)/2:w=iw:h=1:color=white" \
-vframes 1 output.png
它不会像原始波形那样精确地表示音频,但在视觉上可能是一种改进;尤其是在如此广泛的范围内


另请参见。

您链接到的wiki中使用的方法没有什么“首选”的地方:它只是过时了,比showwavespic过滤器更旧。(奇怪的是,在看到您的问题前几分钟,我正在看那篇文章并考虑更新它)。谢谢你,lordNeckBeard-我确实注意到我认为首选方法的链接已被禁用!同样,我更喜欢选项二,因为它简单,但前提是我可以轻松地“平齐”波浪。下面是一个示例opus文件-抱歉-当我说“首选”时“这是因为这是我搜索“ffmpeg wavefile”时出现的第一个页面——这就是为什么我错误地认为它是首选方法。该wiki页面最近被重命名:您链接到的wiki中使用的方法没有“首选”:它只是过时了,比showwavespic过滤器更旧。(奇怪的是,在看到你的问题前几分钟,我正在看那篇文章并考虑更新它)。谢谢你,领主-我确实注意到了我认为首选方法的链接已被禁用!同样,我更喜欢选项二,因为它很简单,但前提是我可以轻松地“平齐”波浪。下面是一个opus文件示例-抱歉-当我说“首选”时,这是因为这是我搜索“ffmpeg波形文件”时出现的第一个页面-这就是为什么我错误地认为它是首选方法。该wiki页面最近被重命名: