我查看了 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
之间的值。1
0
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 秀波。