我正在尝试正确map
并将单个showwaves
(或showfreqs
)覆盖层相对于两个对称滚动的ffmpeg的showspectrum
覆盖层集中定位,例如
ffmpeg -i input.mp3 -filter_complex "[0:a]showspectrum=color=fiery:saturation=1:slide=scroll:scale=log:win_func=gauss:overlap=1:s=960x1080,pad=1920:1080[vs]; [0:a]showspectrum=color=fiery:saturation=2:slide=rscroll:scale=log:win_func=gauss:overlap=1:s=960x1080[ss]; [0:a]showwaves=s=960x540:mode=p2p[sw]; [vs][ss]overlay=w[out]; [out][sw]overlay=w[out]" -map "[out]" -map 0:a -c:v libx264 -preset fast -crf 18 -c:a copy output.mkv
如上面的屏幕截图所示,
showwaves
覆盖图固定地固定在右上象限中。目的是使其在整个中心水平显示。如果您可以帮助我加粗
showwaves
过滤器绘制的线条,则可以加分。 最佳答案
使用ffmpeg -i input.mp3 -filter_complex "[0:a]showspectrum=color=fiery:saturation=1:slide=scroll:scale=log:win_func=gauss:overlap=1:s=960x1080,pad=1920:1080[vs]; [0:a]showspectrum=color=fiery:saturation=2:slide=rscroll:scale=log:win_func=gauss:overlap=1:s=960x1080[ss]; [0:a]showwaves=s=1920x540:mode=p2p,inflate[sw]; [vs][ss]overlay=w[out]; [out][sw]overlay=0:(H-h)/2[out]" -map "[out]" -map 0:a -c:v libx264 -preset fast -crf 18 -c:a copy output.mkv
为放映波的叠加设置坐标。 showwaves大小也更改为跨全宽。添加了充气过滤器以模拟“厚度”,但就质量而言,YMMV。