将 ffmpeg showwaves 更改为白色

将 ffmpeg showwaves 更改为白色

我查看了 showwaves 上的所有条目,已经完成了 99% 的目标,但我不知道如何让波形显示为白色。无论我如何更改,波形仍然是黑色的。我希望在图像背景上出现略微透明的白色波形。

ffmpeg -i 00002.wav -i MarsSurface.jpg -filter_complex "[0:a]showwaves=s=1920x1080:mode=cline:colors=white|white|white:rate=24:scale=lin,colorkey=0x000000:0.01:0.001,format=yuva420p[v];[1:v]scale=1920:1080[bg];[bg][v]overlay[outv]" -map "[outv]" -map 0:a output.mp4

知道我遗漏了什么吗?我猜这是个小事,但我却遗漏了。

答案1

以下旨在将音频输入样本波形显示为视频输出,并将透明度应用于输出样本波形,然后叠加到背景图像上。评论与原始问题相关。

以下在黑色背景上生成白色样本波形输出。

scale=lin(线性)不是必需的,因为这是默认设置。colors设置每个绘制通道的颜色。如果所有通道都是相同颜色,则只需说明一次。

ffmpeg -i audio.wav -filter_complex [0]showwaves=s=1920x1080:mode=cline:colors=white output.mp4

以下将示例波形叠加到背景图像上。

仅当输出前没有提供替代背景时,才会应用上述输出中的黑色背景颜色。因此,不需要colorkey过滤器。

ffmpeg -i audio.wav -i image.jpg -filter_complex [0:a]showwaves=s=1920x1080:mode=cline:colors=white[v];[1]scale=1920:1080[bg];[bg][v]overlay[out] -map [out] -map 0:a output.mp4

最后,在将样本波形叠加到背景图像之前,我们可以(0.5)使用滤镜将透明度应用于样本波形。可以设置(完全不透明) 和(完全透明)format之间的值。10

ffmpeg -i audio.wav -i image.jpg -filter_complex [0:a]showwaves=s=1920x1080:mode=cline:split_channels=1:colors=white[v];[v]format=argb,colorchannelmixer=aa=0.5[vt];[1]scale=1920:1080[bg];[bg][vt]overlay[out] -map [out] -map 0:a output.mp4

在上面的最后一个例子中,我添加了split_channels=1选项,以分离两个通道以获得更高的清晰度(可选)。

以上所有内容仅用于回答原始问题(需要进行一些编辑)。ffmpeg 文档提供了更多有用的附加设置,位于多媒体过滤器部分:18.29 秀波

https://ffmpeg.org/ffmpeg-filters.html#showwaves

相关内容