
Я знаю, что -map_channel
аргумент может указывать на конкретный аудиоканал в файле, но есть ли способ сделать аналогичный аргумент в графе фильтров?
Я надеюсь, что что-то вроде этого будет возможно:
-filter_complex "[0.0.0]showspectrum…[Left];[0.0.1]showspectrum…[Right]"
Возможно ли что-то подобное?
решение1
Вы можете использоватьchannelsplit
фильтр. Предположим, что есть стереовход:
ffmpeg -i input -filter_complex \
"[0:a]channelsplit[l][r]; \
[l]showspectrum=color=intensity,pad=0:ih*2[left]; \
[r]showspectrum=color=intensity[right]; \
[left][right]overlay=0:h[v]" \
-map "[v]" -map 0:a -c:v libx264 -c:a copy output.mkv
Это просто пример, чтобы показать, как channelsplit
можно использовать. Если вы действительно хотите showspectrum
разделить каналы, просто сделайте:
ffmpeg -i input -filter_complex "[0:a]showspectrum=mode=separate[v]" \
-map "[v]" -map [0:a] -c:v libx264 -c:a copy output.mkv