如何输入音频文件,生成视频,分割,裁剪和叠加以输出万花筒效果

时间:2017-09-27 16:21:55

标签: audio video ffmpeg

我需要创建一个读取音频文件的FFMPEG脚本(本例中为“testloop.wav”)使用“showcqt”过滤器从波形生成视频,然后裁剪并覆盖其输出以生成万花筒般的效果。这是我到目前为止的代码 - 初始视频和输出部分的生成正常工作,但是我无法追踪的分割,裁剪和叠加部分存在错误。

    ffmpeg -i "testloop.wav" -i "testloop.wav" \
-filter_complex  "[0:a]showcqt,format=yuv420p[v]" -map "[v]" \
        "split [tmp1][tmp2]; \
        [tmp1] crop=iw:(ih/3)*2:0:0, pad=0:ih+ih/2 [top]; \
        [tmp2] crop=iw:ih/3:0:(ih/3)*2, hflip [bottom]; \
        [top][bottom] overlay=0:(H/3)*2"\
-map 1:a:0 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart "${i%.wav}.mp4

1 个答案:

答案 0 :(得分:0)

您无法拆分或定义多个filter_complex es 。此外,无需输入两次输入。

ffmpeg -i "testloop.wav" \
-filter_complex  "[0:a]showcqt,format=yuv420p, \
        split [tmp1][tmp2]; \
        [tmp1] crop=iw:(ih/3)*2:0:0, pad=0:ih+ih/2 [top]; \
        [tmp2] crop=iw:ih/3:0:(ih/3)*2, hflip [bottom]; \
        [top][bottom] overlay=0:(H/3)*2"\
-c:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p \
-c:a aac -strict -2 -b:a 384k -ar 48000 -movflags +faststart out.mp4

(我没有调试你想要实现的效果的逻辑。只有语法)