1. A method for global motion estimation for video stabilization, the method comprising: selecting a video frame from a video stream; downscaling the video frame; dividing the downscaled video frame into a plurality of macroblocks; performing motion estimation for the macroblocks to generate a set of local motion vectors; selecting macroblocks representing global motion vectors from the set of local motion vectors; computing a single global motion vector for the selected macroblocks, the single global motion vector being one of a most frequented local motion vector out of the motion vectors, a median of local motion vectors and a mean of an integer number of most frequented local motion vectors; determining occurrence of at least one of scene change, illumination change or crossing object; and modifying the single global vector to compensate for errors induced due to occurrence of at least one of scene change, illumination change or crossing object.