我正在尝试编写一个 ffmpeg 命令来从音频生成波形。我已经成功生成了波形,但在尝试添加一条线以使静音区域不为空白时失败了。
当前命令是:
-filter_complex "[0:a]aformat=channel_layouts=mono,compand=attacks=0:points=-80/-900|-45/-15|-27/-9|0/-7|20/-7:gain=15,showwavespic=s=180x26:colors=#7c84cc[fg];color=s=180x26:color=#303030[bg];[bg][fg]overlay=format=auto,drawbox=x=(iw-w)/2:y=(ih-h)/2:w=iw:h=1:color=#7c84cc" -frames:v 1
我自己添加了一些调整来增强视觉吸引力,但我想要的是使用没有滤色器的抽屉。如果我尝试这样做,该线会在静音部分消失。
我也尝试过使用透明图像作为背景,但也失败了。
在解决这个问题时,我非常依赖这个问题:
使用 ffmpeg 生成波形
一种选择是使用
gradients
滤镜来添加变化的颜色渐变。
例如
ffmpeg -i input.mp3 -filter_complex "gradients=s=vga:c0=303030:c1=7c84cc:x0=0:x1=0:y0=0:y1=640 [bg];[0:a]showwaves=mode=p2p:s=vga:split_channels=1:scale=lin:draw=scale:colors=Yellow|White[v];[bg][v]overlay=shortest=1:format=rgb:alpha=premultiplied [vid]" -map "[vid]" -map 0:a -vsync vfr -preset ultrafast -f matroska - | ffplay -autoexit -
还有一个
speed
参数来调整渐变旋转。