如何使用ffmpeg将单个showwave(或showfreq)叠加层相对于两个对称滚动的showspecrum叠加层集中定位?

时间:2019-02-05 15:22:04

标签: audio video ffmpeg command-line-interface

我正在尝试正确地map并将单个showwaves(或showfreqs)覆盖物相对于两个对称滚动的showspectrum ffmpeg覆盖物,例如,< / p>

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

enter image description here

如上面的屏幕截图所示,showwaves覆盖图被顽固地固定在右上象限中。目的是使其在整个中心水平显示。

如果您能帮助我加粗showwaves过滤器绘制的线条,则会获得加分。

1 个答案:

答案 0 :(得分:1)

使用

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。