1. A computer-implemented method comprising: storing a source video file in a video database; storing annotations in an annotations database in association with the source video file; providing to a remote client device a user interface comprising a video area displaying one or more frames of the source video file; providing to the client device a first web-based user interface portion associated with the source video file and comprising visual representations of a plurality of different annotation types; responsive to receiving a user selection of one of the annotation types from the client device, providing to the client device a second web-based user interface portion comprising at least one text area for entering a start time, an end time, and a uniform resource locator (URL) for a new annotation; receiving a user designation of a spatial location in a frame of the source video file based on a user click within the displayed one or more frames of the source video file; receiving a user designation of the start time, the end time, and the URL from the client device via the second user interface portion, the URL separately encoding both an identifier of a target video file and a time location within the target video file, the target video file being different from the source video file; adding, to the annotations database in association with the source video file, a first annotation corresponding to the designated start time, end time, and URL, and further corresponding to the spatial location in the frame of the source video file; responsive to receiving a request from the client device for the source video file, transmitting the source video file and the associated first annotation to the client device; and responsive to receiving a user selection of the first annotation, causing playback of the target video file to begin at the time location within the target video file.
1. A computer-implemented method comprising: storing a source video file in a video database; storing annotations in an annotations database in association with the source video file; providing to a remote client device a user interface comprising a video area displaying one or more frames of the source video file; providing to the client device a first web-based user interface portion associated with the source video file and comprising visual representations of a plurality of different annotation types; responsive to receiving a user selection of one of the annotation types from the client device, providing to the client device a second web-based user interface portion comprising at least one text area for entering a start time, an end time, and a uniform resource locator (URL) for a new annotation; receiving a user designation of a spatial location in a frame of the source video file based on a user click within the displayed one or more frames of the source video file; receiving a user designation of the start time, the end time, and the URL from the client device via the second user interface portion, the URL separately encoding both an identifier of a target video file and a time location within the target video file, the target video file being different from the source video file; adding, to the annotations database in association with the source video file, a first annotation corresponding to the designated start time, end time, and URL, and further corresponding to the spatial location in the frame of the source video file; responsive to receiving a request from the client device for the source video file, transmitting the source video file and the associated first annotation to the client device; and responsive to receiving a user selection of the first annotation, causing playback of the target video file to begin at the time location within the target video file. 3. The method of claim 1 , wherein the first annotation is associated with a time range of the source video file during which the first annotation is displayed.