1. A method for segmenting content in a video stream, comprising: acquiring the video stream generated from a camera and storing the video stream in a memory, wherein the video stream includes a sequence of images acquired of a scene by the camera, wherein each image includes pixels; using a processor in communication with the memory, such that the processor is configured for: using a stored subspace matrix and an adaptive step-size parameter to determine low-dimensional subspace coefficients for an input image in the sequence of images; determining a background component by multiplying the stored subspace matrix with the low-dimensional subspace coefficients, such that the background component represents motion of the content in the video stream characterized by the stored subspace matrix; determining a foreground sparse component from a difference between the pixels in the input image and the background component, such that the foreground sparse component characterizes the motion of the content in the video stream that is different from the motion of the content in the video stream characterized by the stored subspace matrix; determining a foreground-free image by subtracting the pixels in the input image from the foreground sparse component; updating the stored subspace matrix according to the adaptive step-size parameter, such that when the updated stored subspace matrix is multiplied by the low-dimensional subspace coefficients, the updated stored subspace matrix produces an image that is similar to the foreground-free image; updating the adaptive step-size parameter according to an amount of change in the updating of the stored subspace matrix; and storing the updated adaptive step-size parameter in the memory.