1. A method for automatically enhancing a video having video frames and captured by a camera, comprising: performing global motion computation to determine the motion of the camera and generate global alignment transforms; performing local motion computation using the global alignment transforms to determine motion of each pixel in each of the video frames and generate optic flow vectors; and performing denoising of the video using the optic flow vectors and a temporal median filter having flow outlier rejection.