1. A method for fingerprinting an input video having a sequence of video frames, the method performed by a computer system, the method comprising: identifying, by the computer system, a plurality of discontinuities in features of audio-visual content of the input video, wherein the sequence of video frames includes frames associated with one or more associated discontinuities and frames not associated with discontinuities; generating, by the computer system, an encoded data representation representing the sequence of video frames, wherein the frames associated with the one or more associated discontinuities are represented by first values in the encoded data representation, and wherein frames not associated with the discontinuities are represented by second values in the encoded data representation, the second values different than the first values, and wherein the first values and the second values are arranged in a sequence in the encoded data representation corresponding to the sequence of video frames; segmenting, by the computer system, the encoded data representation; generating, by the computer system, a plurality of fingerprints, each fingerprint comprising an encoded data segment corresponding to a segment of the input video; indexing the plurality of fingerprints by: generating a signature for a fingerprint of the plurality of fingerprints according to a first hash process; and dividing the signature into a plurality of signature blocks, each signature block stored in a hash table according to a second hash process, wherein the first hash process and the second hash process are different; and storing the hash table to a computer readable storage medium.