1. A system, comprising: a network interface configured to enable a mobile device to capture a video file comprising a plurality of frames, and to send said video file through a mobile communication network to a server; a processor configured to execute computer-implemented programs; a storage device configured to store pre-indexed metadata of pre-indexed frames of pre-existing videos, wherein a plurality of pre-indexed metadata items are stored for each pre-indexed frame; and a program associated with the server, wherein execution of the program by the processor configures the system to perform functions, including functions to: separate the video file received from the mobile device into individual frames, convert the individual frames into metadata for the video file, wherein each individual frame is converted into a plurality of metadata items corresponding to the plurality of pre-indexed metadata items, and for each of a plurality of the pre-indexed frames of each of a plurality of the pre-existing videos, compare the plurality of metadata items for one individual frame of the video file to respective pre-indexed metadata items of the pre-indexed frame of the stored pre-existing video by: generating a plurality of numeric values each numeric value representing an amount by which each of the metadata items for the individual frame matches a respective pre-indexed metadata item for the pre-indexed frame, and combining the plurality of numeric values into a single value, identify one of the pre-existing videos that matches the video file based on the plurality of single values corresponding to the respective plurality of pre-indexed frames of the plurality of existing videos, selecting ones of the plurality of metadata items in the individual frame and the pre-indexed frame of the identified pre-existing video for which the numeric values exceed a predetermined value; comparing next video frame following the one individual frame of the video file to a next pre-indexed video frame following the pre-indexed video frame in the identified pre-indexed video by: generating a plurality of further numeric values, each further numeric value representing an amount by which each of the selected metadata items of the next video frame matches the respective metadata item in the next pre-indexed video frame; and combining the plurality of further numeric values into a further single value; and when a combination of the single value and the further single value is greater than a threshold send a message containing information about the identified pre-existing video based on the results of the comparison back to the mobile device.