FFMPEG форма волны прозрачная, фон сплошной цвет

Я пытаюсь сгенерировать сигнал с помощью ffmpeg, хочу, чтобы фон был сплошным, а фактический сигнал - прозрачным. Следующее частично выполняет то, что я хочу, за исключением того, что у него черный фон. Я хотел бы иметь возможность изменить это на любой цвет, но форма сигнала должна быть прозрачной. Как я могу добиться этого с ffmepg?

ffmpeg -i input.mp3 -filter_complex \
"[0:a]aformat=channel_layouts=mono,\
compand=gain=-6, \
showwavespic=s=600x120, \
colorchannelmixer=rr=1:gg=0:bb=0:aa=1,\
drawbox=x=(iw-w)/2:y=(ih-h)/2:w=iw:h=1:color=red,\
format=rgba,\
colorkey=#ff0000" \
-vframes 1 output.png

Это создает эту форму волны: фон черный, сам сигнал прозрачный. Как изменить цвет фона на другой, сохраняя при этом форму сигнала прозрачной?

1 ответ

Решение

Использовать этот

ffmpeg -i input.mp3 -filter_complex \
   "[0:a]aformat=channel_layouts=mono,compand=gain=-6, \
    showwavespic=s=600x120:colors=white,negate[a]; \
    color=red:600x120[c]; \
    [c][a]alphamerge"  -vframes 1 output.png

Цвет, указанный в showwavespic, гарантирует, что вы получите строгий дуохромный вывод. Лучше, чем вытащить ключ.

Другие вопросы по тегам