1. A computer implemented method for discriminatively selecting keyframes representative of segments of a source digital media, comprising the steps of: obtaining said source digital media for which keyframes are to be selected, wherein said source digital media comprises a plurality of segments, wherein said plurality of segments comprises a plurality of frames, said plurality of frames comprising candidate keyframes; pre-processing said source digital media to obtain a plurality of feature vectors, said feature vectors being representative of the candidate keyframes; determining in-class similarity values for said candidate keyframes, wherein the in-class similarity values are determined by comparing the feature vectors for the candidate keyframes to other feature vectors found solely within the same segment the candidate keyframes come from; determining out-of-class similarity values for said candidate keyframes, wherein the out-of-class similarity values are determined by comparing the feature vectors for the candidate keyframes to other feature vectors found solely outside of the segment the candidate keyframes come from; discriminatively selecting a keyframe for each segment based on both the in-class similarity values and the out-of-class similarity values of the candidate keyframes, wherein each selected keyframe is both representative of the segment the selected keyframe originates from and distinguishable from other selected keyframes which are representative of the remaining plurality of segments; wherein the chronological order of the selected keyframes as they appear within the source digital media is maintained during the step of discriminatively selecting a keyframe for each segment; and wherein the method steps are done by at least one processor.