Use isto:
ffmpeg -y -i in.mkv -filter_complex "extractplanes=y+u+v[y][u][v]; \
[y]histeq=strength=0.3:intensity=1[lumaeq]; \
[lumaeq][u][v]mergeplanes=0x001020:yuv420p[out]" -map "[out]" out.mkv
O filtro extractplanes
precisa extrair cada canal (y + u + v [y] [u] [v]), que pode ser combinado posteriormente com mergeplanes
.
Note que afirmei o formato da saída explicitamente como yuv420p, porque meu material de entrada é do mesmo formato.
Observe que usei seus pontos strongs e valores para o filtro histeq
, o que tornou minha gravação "normal" completamente inutilizável. Isso não quer dizer que não funcionará em filmagens mal filmadas. Mas até mesmo um valor de histeq=strength=0.1:intensity=0.5
estava bem no limite da usabilidade. Isso ocorre porque histeq é um filtro global e aplicar a um canal não é um processo ideal. Em qualquer caso, você pode usar o filtro curves
para segmentar individualmente os canais também.
Mas o princípio de divisão e mesclagem é como acima.