【发布时间】:2015-12-29 09:03:51
【问题描述】:
我一直在尝试使用 ffmpeg 从 opus 文件创建波形文件图像。到目前为止,我已经找到了三种不同的方法,但似乎无法确定哪一种是最好的。
最终的结果是希望有一个只有大约 1 倍的声波。高度为 55 像素。该图像将成为 CSS 背景图像的一部分。
改编自Generating a waveform using ffmpeg:
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=黑色@0.5" 文件.png
接下来,我找到了这个(也是我最喜欢的一个,因为它很简单):
ffmpeg -i test.opus -lavfi showwavespic=split_channels=1:s=1024x800 test.png
这就是它的样子:
最后,这个来自FFmpeg Wiki: Waveform,但使用第二个实用程序 (gnuplot) 而不是 ffmpeg 似乎效率较低:
ffmpeg -i file.opus -ac 1 -filter:a aresample=4000 -map 0:a -c:a pcm_s16le -f 数据- | \ gnuplot -e "设置 终端 png 大小 525,050;设置输出 'file.png';未设置键;未设置抽动;未设置边框;放 lmargin 0;设置 rmargin 0;设置 tmargin 0;设置 bmargin 0;阴谋 '
选项二是我最喜欢的,但我不喜欢波形顶部和底部的边距。
选项三(使用 gnuplot)制作最适合我们需要的“形状”图像,因为当图像大小仅为50 像素高。
任何建议如何最好地解决这个问题?我对我看到的任何选项都知之甚少,当然除了尺寸。还要注意,我有 10 的数千个要处理,所以我自然想在一开始就做出明智的选择。
【问题讨论】:
-
您链接到的 wiki 中使用的方法没有任何“首选”:它只是过时且比 showwavespic 过滤器更旧。 (奇怪的是,我正在查看那篇文章并考虑在看到您的问题前几分钟对其进行更新)。
-
谢谢 lordNeckBeard - 我确实注意到我认为首选方法的链接已被禁用!同样,我更喜欢选项二,因为它很简单,但前提是我可以轻松地“平息”一点波浪。这是一个示例作品文件 - comptonpeslonline.com//html5Audio/newWaveSurfer/test.opus
-
抱歉——当我说“首选”时,因为这是我搜索“ffmpeg 波形文件”时出现的第一页——这就是为什么我错误地认为它是首选方法。
-
该 wiki 页面最近已重命名:trac.ffmpeg.org/wiki/Waveform
标签: ffmpeg