Why when I overlay a logo on top of the video, the white color part of the logo is transparent? I overlay using the following command:

ffmpeg -i video.mp4 -i logo.png -filter_complex "[1]geq=r='r(X,Y)':a=0.1[a];[0][a] overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0" out.mp4


I tried adjusting the opacity using 

fmpeg -i video.mp4 -i logo.png -filter_complex "[1]format=rgba,geq=r='r(X,Y)':a='1*alpha(X,Y)'[a];[0][a] overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0" out.mp4


but it is still transparent at the white color part.

It seems like the white color part has a transparency of 0, causing the second command to not work.

Is there any reason why this is happening? The logo I tried is 



How can I preserve the white color?
There is no white color. That's the background color of the page showing through. Your input PNG is palettized 8-bit image where black color indicates transparency.

Apply the following filter to the image to convert black pixels to white and set a uniform transparency.

geq=r='if(p(X,Y),p(X,Y),255)':g='if(p(X,Y),p(X,Y),255)':b='if(p(X,Y),p(X,Y),255)':a=0.1