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, гарантирует, что вы получите строгий дуохромный вывод. Лучше, чем вытащить ключ.