1. A method for generating a composite output video from an input video having a sequence of frames, the method comprising: receiving a current video frame for processing from the sequence of frames; determining, by a processing device, whether the current video frame meets first criteria; responsive to the current video frame meeting the first criteria, performing, by the processing device, a foreground/background segmentation based on a predictive model to extract a foreground object image from the current video frame, the foreground object image comprising a representation of a foreground object depicted in the current video frame with background pixels subtracted, and storing the foreground object image to a foreground object list that stores a plurality of previously extracted foreground object images; overlaying each of the foreground object images in the foreground object list onto the current video frame to generate a composite video frame; determining whether the current video frame meets second criteria; and responsive to the current video frame meeting the second criteria, updating the predictive model.