Precisa de uma explicação detalhada para o ffmpeg colorchannelmixer

0

Eu li o documento link ; mas não consigo entender o significado do exemplo,

colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131

Alguém pode explicar cada valor? .393, .769 .... por que tem 11 números?

    
por Stony 11.06.2018 / 11:01

2 respostas

1

O filtro aceita até 16 valores na seguinte ordem,

colorchannelmixer=rr:rg:rb:ra:gr:gg:gb:ga:br:bg:bb:ba:ar:ag:ab:aa

Cada valor pode variar de 0.0 a 1.0

O que o filtro faz é aplicar quatro equações lineares.

Suponha que uma cor de pixel RGBA de entrada seja (192,64,128,200) e a expressão seja

colorchannelmixer=.3:.4:.3:0:.1:.54:.3:0:1:.2:.5

Assim, o valor R de saída será .3x192 + .4x64 + .3x128 + 0x200 = 121.6 => 122

O valor G de saída será .1x192 + .54x64 + .3x128 + 0x200 = 92.16 => 92

O valor da saída B será 1x192 + .2x64 + .5x128 + 0x200 = 268.8 => 255

(como ba não está definido, o valor padrão 0 é usado. Como o resultado estende o valor máximo, ele é recortado para o valor máximo de 255 )

O valor da saída A será 0x192 + 0x64 + 0x128 + 1x200 = 200 => 200

(desde que nenhum de ar:ag:ab:aa esteja definido, o padrão de 0:0:0:1 é usado)

    
por 11.06.2018 / 11:54
0

Por favor, leia a documentação em detalhes. O filtro aceita 16 opções no total. Para cada canal de saída (R, G, B e alfa) você tem quatro canais de entrada (R, G, B e alfa). Cada parâmetro define a contribuição de cada canal de entrada para cada canal de saída.

Se você não especificar o parâmetro, seu valor será definido como padrão (1 para os canais de cores de entrada, 0 para os canais alfa de entrada). É por isso que só é necessário especificar 11 das 16 opções se você tiver vídeo RGB sem canais alfa.

Então, esses parâmetros:

.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131

pode ser lido como:

.393 → amount of input R in output R channel
.769 → amount of input G in output R channel
.189 → amount of input B in output R channel
0    → amount of input A in output R channel
--------------------------------------------
.349 → amount of input R in output G channel
.686 → amount of input G in output G channel
.168 → amount of input B in output G channel
0    → amount of input A in output G channel
--------------------------------------------
.272 → amount of input R in output B channel
.534 → amount of input G in output B channel
.131 → amount of input B in output B channel

Os valores restantes são definidos como padrão, o que significa que a quantidade de entrada alfa para o canal B de saída é zero. Os padrões para o canal alfa de saída também se aplicam.

    
por 11.06.2018 / 11:34

Tags