What is the best settings in handbrake for 640x480? I tried the default setting of the handbrake but generated video's size get greater than the original video itself. My video files are generally in between 100mb and 1.5Gb
I was wondering is it possible to detect the size before starting comprassion in handbrake and what is the best settings in handbrake for 640x480?

My current setup is as follows:
One thing you can certainly do is lower the bitrate. 23 is quite a high bitrate, even more so for a h.264 .mp4. You should get away with a bitrate of 5-7. Also, you're encoding using the preset of 720p, which would be 1280×720 pixels. However, you stated that your resolution is only 640x480, so matching those settings will do a great deal in filesize aswell.