CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a divisional of U.S. patent application Ser. No. 11/868,522 filed on Oct. 7, 2007, entitled “DIGITAL NETWORK-BASED VIDEO TAGGING SYSTEM,” the entire disclosure of which is hereby incorporated by reference herein.
Playback of video on digital networks such as the Internet is becoming more prevalent. In addition to viewing digital video, some sites allow users to post comments about the video in a bulletin board, “blog,” chat, email or other web page-based format. For example, social networking sites typically allow viewers of a video to post their comments on a web page from which the video can also be viewed. The comments can be displayed in reverse chronological order (most recent first) in a list below the video. Once a viewer has watched the video the viewer can then read the comments and add a new comment, if desired.
Commercial sponsors or other third parties may have a desire to advertise or otherwise provide information in association with a video. Such ads typically include text or images placed near the video such as commercial text, banner ads, images, etc. In some cases, the advertisements may appear for a short time before the video is allowed to play. Or the advertisements may be placed in a small region along the bottom of the video or adjacent to the video while the video is playing. Typically, these advertisements are created by an ad agency and integrated with the video or with a web page that hosts playback of the video.
Although these approaches allow some user and third-party participation to communicate about, or in association with, video content, such communication is limited.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a first example video-tag-handling system based on a social networking site.
FIG. 2 illustrates a second example video-tag-handling system.
FIG. 3 illustrates a third example video-tag-handling system.
FIG. 4 illustrates a first example video-playback interface suitable for use with the video-tag-handling systems of FIGS. 1-3.
FIG. 5 illustrates a first example video-tag authoring interface that may be activated via the video-playback interface of FIG. 4.
FIG. 6 illustrates a first example video-tag animation interface that may be activated via the video-tag authoring interface of FIG. 5.
FIG. 7 illustrates a second video-tag authoring interface, which is suitable for use with the video-tag-handling systems of FIGS. 1-3, and enables users to author, edit, and animate video tags.
FIG. 8 illustrates a third video-tag authoring interface, interface, which is suitable for use with the video-tag-handling systems of FIGS. 1-3, and is adapted for use with blogging applications.
FIG. 9 is a flow diagram of a first method suitable for use with the video-tag-handling systems and interfaces of FIGS. 1-8.
FIG. 10 is a flow diagram of a second method suitable for use with the video-tag-handling systems and interfaces of FIGS. 1-8.
FIG. 11 is a flow diagram of a third method suitable for use with the video-tag-handling systems and interfaces of FIGS. 1-8.
FIG. 12 illustrates a system for associating a tag dataset to a video and for synchronizing additional content included in the tag dataset with playback of the video.
FIG. 13 illustrates an example tag dataset format.
DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
A preferred embodiment of the invention allows additional information to be presented in synchronization with playback of a video. Tag information includes visual information such as text, images, symbols, etc., and other types of information such as animation or behavior, audio, links to network locations or objects, etc., that is not included in an original video to which the tags are applied. The tag information can be synchronized to appear at specified times and places in the video and exhibit predetermined behavior when the video is presented to a user. For example, one type of tag can identify items in a video scene, as described in the related patent applications referenced above. Tag datasets are associated with a video by an identification process and can be created, edited and maintained separately from associated videos. A synchronization process maintains the desired tag presentation when playback of a video is modified with standard video transport controls.
In an example embodiment, a tag controller manages tag datasets that can be modified by one or more users. Users can create, delete or modify tags and specify how the tags are synchronized to a video. The tag controller's functions can include, for example, prohibiting or filtering information, replacing or adding information, or otherwise modifying the user-created information. The tag controller can perform such functions to ensure that undesirable user-generated content is not provided to other users. The tag controller can also allow third-party information to be included in addition to or in place of user content where it is determined appropriate, or merely desirable, to include such third-party information. In a particular embodiment, network linking to objects or locations (i.e., “hyper-linking”) passes through a central controller so that user behavior (e.g., clicking on a link, visiting a website, making a purchase etc.) can be monitored or controlled and used for further purposes.
Various embodiments are described including a web-based social network. The social network website embodiment allows a community of users to generate and modify tags on selected videos for purposes of providing user discussion; commercial or informational speech; educational or entertaining dialogue, etc.
Associating a Tag Dataset with a Video
FIG. 12 illustrates a system for associating a tag dataset to a video and for synchronizing additional content included in the tag dataset with playback of the video. A particular video source can be selected from a collection of multiple video sources 420. One or more tag datasets from tag dataset collection 430 is identified for association with the selected video. The tag dataset includes additional content for presentation in synchronization with the video playback to user 402 via playback engine 440, also referred to as processing system 440, or simply process 440.
FIG. 12 shows user 402 provided with output devices such as display 404 and speaker 406. Display 404 and speaker 406 are used to present image and audio information to the user 402 as, for example, during the presentation of digital video content. The digital video content may be any sequence of images displayed to a viewer to create movement or motion as is known in the art. Any video, movie or animation format (e.g., Motion Picture Experts Group (MPEG), Audio Video Interleave (AVI), Adobe video formats such as FLV, motion JPEG, etc.) can be employed. Any type of suitable delivery method may be used such as playing back from a local or remote file, file streaming, etc. Although embodiments of the invention are discussed primarily with respect to digital video formats and delivery, other formats or approaches for displaying information may also benefit from embodiments discussed and claimed herein such as analog transmissions, computer rendered (so-called “machinima”) content, animation formats such as Adobe Flash™ SWF file formats, Microsoft™ Sparkle and Silverlight formats, etc.
User 402 is also provided with one or more user input devices 414 such as keyboard 408, mouse 410, remote control 412, etc. In general, any suitable type of user input mechanism may be employed unless otherwise noted. User input signals and presentation output signals are controlled by control 442 within playback engine 440. Functions performed by playback engine 440 may be, for example, performed by processes within a device such as a personal computer, personal digital assistant (PDA), a cell phone, email device, music player, or other presently known or future-developed processing device with sufficient presentation (e.g., display, audio) and user input (if needed) capabilities. Playback engine functionality can also be provided in other ways such as within or in cooperation with a web page browser, provided by a remote device or process via a network, etc.
In some embodiments, presentation of audio information alone, without visual tag content, may benefit from features of the invention. In applications where visual display is used, any type of display mechanism may be used. For example, display goggles, projected images, multiple display screens, television screens, or other displays may be employed.
Processing system 440 can include typical processing components (not shown) such as a processor, memory, stored instructions, network interface, internal bus, etc. Processing system 440 includes synchronization function 444 which synchronizes tag data such as tag dataset 434 with a video source such as video source 422.
A video source such as video source 422 may be one of many video sources 420 such as a video file stored locally (e.g., on a user's device) or stored remotely, such as on a server or other computer system connected to process 440 via a digital network such as the Internet. The video source can be controlled by another entity such as an individual or corporate owner or other or managing entity. Intermediaries may be involved in providing the video content to process 440. For example, an Internet Service Provider (ISP), web hosting company, database manager, etc., may be included in the control or transfer of video information. Some example embodiments that discuss specific entities and transfers are described in more detail, below.
A video source can be selected by user 402 via a user input control or devices 414. Or the video source can be provided automatically. Once selected or provided, synchronize process 444 identifies the video source or content. Several methods of identification are possible and are discussed below.
A first identification method uses an identification (ID) value. A video source (e.g., video file, stream, channel, torrent, etc.) can include an ID value as part of its file contents. In FIG. 12, video source 422 is shown having ID value 424. The ID value 424 is then used by synchronize function 444 to generate request 446 to a system such as tag server 430. Tag identification function 432 within tag server 430 identifies tag dataset 434 as being associated with video source 422. This can be by using ID value matching via a table, index, pointer, another ID value in tag dataset 434, or by using any other suitable association mechanism to identify tag dataset 434 as being associated with ID 424 and, hence, video source 422.
The format and type of ID value 424 and manner of association with the video source 422 can vary in other embodiments. A simple numeric or alphanumeric value can be used or the value can include a symbol, uniform resource locator (URL) or other address value, index, variable, array, object, structure, etc. The ID can be attached to or embedded within a video file, stream, channel or other video source, such as by including it in a header, layer, metadata, etc. In other embodiments, an ID can be associated with a video source such as via an external table, database or other construct that associates an ID with a video source. Other approaches are possible.
A second identification does not require that a predetermined ID value be used but, instead of or in cooperation with an ID, if present, derives identification information from existing video source information. For example, a name for a video file or stream can be used as an identifier. The name can be a plain text name that is used as a listing in a directory structure used by humans or automated processes, or it can be an encoded or digital binary or other symbolic identifier such as an index or ID generated by other processes for other purposes such as where a web site hosts many different video clips and uses an identification scheme to track each hosted video clip.
Another way to derive identification information is to use file content or video content values as identifiers. In one embodiment, one or more values used by or associated with a video source for any other purpose such as a sequence number, author or originator information, checksum, video pixel values, etc. can be used to help identify the video. Two or more values can be combined to derive a hash or identification value. In a particular embodiment a size of a video file is used to determine multiple video content values to combine to derive an ID. A predetermined number of video content values are obtained starting from the start of the video source contents (i.e., beginning of compressed pixel value data). For example, the 0th, 1024th, 2048th, and so on up to a sample number of word values of video content are used where each sample value is separated by an adjacent sample value by a separation interval of 1024. Each sample value can be added to the running total to derive the hash value. Other ways to obtain a hash value using one or more sample values (e.g., hash table, hash function, etc.) are possible. Another embodiment uses a separation interval that is based on the total video file size, or total video content information size in order to generate a hash that traverses essentially all of the video file or content.
Depending upon the embodiment it may be useful to generate an ID based on less than all of the video file or content as, for example, where a tag dataset may be desired to be used for a video that varies slightly from an original video to which the tag dataset belongs. Different manual or automated processing may change a video's content information or file information slightly. For example, header information may be changed by processes when the video is stored at a specific location, transferred in a peer-to-peer network, etc. A human may make edits to a video such as to remove frames from the video, add an effect or credit, change the audio, etc. The edited video may still be suitable for use with the original tag dataset depending upon the degree of change. In order to accommodate slight variances, a video source identification can be statistical rather than determinative. For example, by requiring that only a threshold number (e.g., 80%) of the sample values match with expected values in order to make the video file association a tag dataset that might not otherwise match could still provide suitable useful in a presentation.
A third identification method allows a user or process to select a tag dataset to be used with a particular video source. For example, a user can be asked to enter a name of a tag dataset to use, or to select a tag dataset from a list. In this manner a user can force use of a particular tag dataset in connection with playback of an arbitrary video. This may be useful where a video is similar to another video but different enough that an automated correlation is difficult. Or it may be useful to have a tag dataset's information displayed without requiring a specific correlation between the tag dataset and the video. For example, a process may use a default tag dataset, or a user may wish to view an arbitrary tag dataset with a specific video. A default tag dataset can inform the viewer that a correlating tag dataset was not discovered for the video. Additional information such as how to locate a corresponding dataset, or how to locate a better version of the video, can be provided, along with ads, user instructions or other information.
Once a tag dataset has been provided to synchronize function 444 the tags defined by the dataset are displayed in synchronism with video playback. Control function 442 can include standard video transport functions such as Play, Pause, Stop, Rewind, Move to Frame, etc., as desired. Synchronize function 444 acts to maintain predetermined tag display, animation and behavior with video playback.
Although specific devices and architectures for performing functions according to embodiments of the invention are described, in general, the functions may be performed by any device or process at any location or time, as desired, unless otherwise noted. For example, the functions of playback engine 440 may be performed by an end-user device such as a computer or cell phone. However, in other embodiments, either or both of the synchronize and/or control functions can be performed by a remote device (e.g., a server, peer or host computer) over a network. Tag identification can be performed in whole or in part on a user's device or on a different local or remote device. Unless otherwise stated, any suitable hardware and/or software can be used to implement the functions described herein. Functions can be performed in parallel or serial, processed in real time or non-real time by hardware, software or a combination of both, as desired.
Multi-User Networked Embodiment with Centralized Control
Multiple users can make modifications to a tag dataset that is associated with a particular video. The modified tag dataset can then remain associated with the particular video so that when the particular video is selected the modified tag dataset is used to provide tag information for synchronized display. For example, a first user can view a particular video that is associated with an original tag dataset that includes tags that are displayed during playback of the particular video. A tag authoring system can be used so that the first user can add, delete or otherwise modify tag information in the original tag dataset. The original tag dataset is then modified accordingly to include the first user's modifications to produce a modified tag dataset.
A second user can then choose to view the particular video. The second user is provided (via a system as described, e.g., in FIG. 12) with the modified tag dataset. The second user can perform additional tag modifications to the modified tag dataset to produce an additionally modified tag dataset that can be stored and provided to subsequent viewers of the particular video.
Modifications to the tag dataset can be performed in real time so that shortly after a user posts a new tag onto a video that new tag appears when another user views the video at about the same time in the video where the tag was posted. Alternatively, updates to a tag dataset can be performed at a scheduled time, or after the tag modifications have undergone review or approval by a controlling entity such as an entity managing tag dataset collection 430. In a preferred embodiment, a user who is authoring changes to a tag dataset can view the changes and then decide to publish the changes so that the changes become available to other users. A tag dataset controlling entity or system (i.e., “tag controller”) can determine whether to allow one or more of the changes or to perform substitutions or additional modifications, filtering, adjustment, tracking or other manipulations in response to the user's changes. For example, a tag controller can provide sponsored ads or other third party information based on knowledge obtained from user-generated tag information. Details of controller actions are described below.
FIG. 1 illustrates an example video-tag-handling system 10 in a specific application that uses a social networking site and a controlling entity for authoring, animating, playing, publishing, and tracking video tags 12. The video tag design and behavior are defined by one or more tag datasets that are used in the playback of an associated video. The video-tag-handling system 10 includes a tag-authoring computer 14 in communication with a first server 16, a second server 22, and a social-networking website 18. The social-networking website 18 further communicates with various Web-user systems 20 and the first server 16. The first server 16 performs the functions of the tag controller. The first server 16 may be employed by a controlling entity to implement one or more controller methods to control or track tag information for commercial, educational, entertainment or other purposes.
For clarity, various well-known components, such as power supplies, computer networking cards, Internet Service Providers (ISPs), firewalls, anti-hacking tools, and so on, have been omitted from the figures. In addition, various conventional controls, such as controls for closing interface screens, minimizing windows, and so on, are omitted. However, those skilled in the art with access to the present teachings will know which components and features to implement and how to implement them to meet the needs of a given application. Furthermore, the figures are not necessarily drawn to scale.
The tag-authoring computer 14 includes an authoring controller 24 in communication with a user interface 26, an authoring module 28, an animation module 30, a playback module 32, a publishing module 34, and a local memory 36.
The authoring controller 24 communicates with a tag controller 38 running on the tag server 16, i.e., the second server 16. The tag server 16 further includes an administrator interface 40, a URL routing module 42, a video-tag filtering module 44, a video-tag re-editing module 46, an additional-video-tag generating module 48, a video-tag usage database 50, and an e-commerce engine 52, which all communicate with the tag controller 38. Search engine 54 is shown communicating with the video-tag usage database 50 and can be used to quickly obtain usage data according to criteria such as conditions specified by a relational search query.
In the present specific embodiment, the tag controller 38 further communicates with a video-tag module 56 running on the social-networking site 18. The social-networking website 18 can be a site where videos are accessed by multiple users, such as Myspace.com, YouTube.com, or Facebook.com. For the purposes of the present discussion, a social-networking site or website may be any website adapted to enable users to interact or communicate with each other. It should be apparent that other types of websites, applications or other hosts can be provided with video tagging functionality described herein.
For illustrative purposes, the social-networking website 18 is shown maintaining video information 58, including video content 60 to be published. Publishing of the video content 60 by the social-networking website 18 enables access to the video content 60 by the Web-user systems 20. The video information 58 further includes video identification information (video ID) 62 and the video-tag module 56. The video-tag module 56 may include computer code for selectively retrieving video-tag information from the tag server 16, as discussed more fully below. An additional Web-video playback module 64 facilitates user access to the video-content 60 by the Web-user systems 20.
The Web-user systems 20 may include various computers owned by various users or viewers. The Web-user systems 20 act as clients to one or more servers hosting the social-networking website 18. For illustrative purposes, the Web-user systems 20 are shown including a user display 66 that is adapted to play a video 68 with video tags 12, where the video content may be downloaded, streamed, or otherwise obtained from the social-networking website 18.
The second server 22, which may be implemented via one or more computers or servers, includes a video-tag database 72. The video-tag database 72 is accessible to the authoring module 28 via the controller 24 of the tag-authoring computer 14. In the present embodiment, the tag-authoring computer 14 employs an Internet connection to communicate with the social-networking website 18, first server 16, and second server 22, which are included in or connected to the Internet 70. Similarly, the Web-user systems 20 communicate with the social-networking website 18 via the Internet 70.
Although the example architecture is described with respect to server-client transactions, such terminology is generally adopted for ease of discussion and not to limit the types of transactions that can be performed. Other suitable architectures may be employed, as desired. For example, a less centralized (i.e., more distributed) system can use multiple processing devices or sites to perform the functions included within server one of FIG. 1.
In an example operative scenario, a user employs the user interface 26 to employ video-tag authoring functionality provided by the authoring module 28. The functionality includes authoring controls for enabling the user to edit text, links, color, transparency, shape, and other properties associated with a video tag. For the purposes of the present discussion, authoring controls may be any user-interface features and/or instructions associated therewith for enabling a user to trigger, activate, or otherwise use predetermined instructions.
Tag Authoring User Interfaces
The user may import various default video tags from the video-tag database 72 via the authoring controller 24 in response to predetermined user input, such as activation of an import control such as a drop-down menu that allows selection of a tag design or style. An imported tag may be edited via functionality provided by the authoring module 28 and made accessible to the user via the user interface 26 and controller 24.
Alternatively, the user may employ the user interface 26 and routines running on the authoring module 28 and/or authoring controller 24 to create an entirely new video tag. The new video tag may then be saved to the publicly accessible video-tag database 72 running on the second server 22. Alternatively, the user may store the newly generated tag or a modified default tag in the local memory 36.
The user may optionally control animation behavior of the video tag by invoking functionality provided by the animation module 30 via the user interface 26 and authoring controller 24. Controlling video-tag animation behavior includes, but is not limited to controlling the translational movement of a video tag with respect to the associated video being played back. For the purposes of the present discussion, the term “animation behavior” may be any characteristic associated with movement of a video tag. For example, the time interval(s) in which the video tag appears in a video and coordinates indicating different video-tag positions in the video at different times represent characteristics describing animation behavior.
The user may employ the user interface 26 to invoke playback functionality provided by the playback module 32 to see how an authored tag moves relative to a displayed video. The playback module 32 may also include one or more routines for enabling a user to view other videos that have accompanying video tags therein.
The user may employ the user interface 26 to invoke functionality implemented via the publishing module 34. In the present specific embodiment, the publishing module 34 includes one or more routines enabling the user to publish a video with video-tags associated therewith, or alternatively, to publish video-tags in, on, or associated with a pre-existing video that may have been created or stored by the tag author or by another person or process. For example, a tag author may create tag information for a video that exists on a remote site, such as the social-networking website 18.
In the present illustrative operative scenario, a user employs the user interface 26 to author and animate one or more video tags to be published with a video that is associated with the video content 60 on the social-networking website 18. When the user decides to publish the video tags, the user employs the user interface 26 to activate functionality provided by the publishing module 34. When the user selects a publishing option, a publish request, along with proposed video-tag data to be published is automatically forwarded to the tag server 16. The video-tag data includes video-identification information (video ID), which identifies the video to be published. The video-tag data also includes other video-tag information associated with the one or more video tags to be published. The other video-tag information may include author information, video-tag content, such as text to be included in the video tag, one or more hyperlinks, video-tag display properties, temporal and spatial locations of video tags relative to displayed video content 60, and so on.
For the purposes of the present discussion, video tag content may include any properties and/or characteristics associated with a video tag, including text content, hyperlinks, shape, color, positioning, animation characteristics, and so on.
A temporal location of a video tag may be any point in time relative to a video playback at which an instance of the video tag occurs. An example point in time may be identified by a video frame number or other temporal parameter. A spatial location of a video tag may be identified in terms of pixel coordinates associated with a display, such as a video display. A preferred embodiment of the invention uses a reference location either in the video playback area, or in a web page or display area that hosts the video playback area. In other embodiments, any suitable reference location can be used. Tags can be allowed to move outside of the video display area in order to provide information and selections in an independent area so that tags can be manipulated apart from the video content, if desired. Such an approach is described in the co-pending applications referenced, above.
In addition, a publishing URL is also forwarded to the tag server 16. For the purposes of the present discussion, a publishing URL may be any information, such as address information, indicating where a video tag and accompanying video is to be published. In the present operative scenario, the publishing URL corresponds to the location of the video to be tagged with video tags on the social networking website 18.
The tag controller 38 can invoke functions such as those represented by video-tag filtering module 44, video-tag re-editing module 46, and additional-video-tag generating module 48, to make adjustments to video-tag information to be published based on one or more predetermined criteria. An administrator of the tag server 16 may specify the one or more predetermined criteria via the admin interface 40. Example criteria include the existence of swear words in video tag information to be published to certain websites. For example, the video-tag re-editing module 46 may activate one or more routines for deleting swear words from video tag text to be published to a website that does not allow swear words in commentary.
As another example, the video-tag filtering module 46 may delete certain types or categories of video tags that are not authorized by a video copyright holder to appear in a particular video.
The additional-video-tag generating module 48 may implement one or more routines for adding additional video tags to the video associated with the video ID. For example, text in the video-tag information provided by the tag-authoring computer 14 may reference a particular item, such as a car, appearing in the identified video at a particular temporal location in the video. The additional-video-tag generating module 48 may then automatically insert a video tag advertising a car near the temporal location at which the original video tag occurs in the identified video. Criteria for implementing such advertisement placement may be incorporated in the tag controller 38 or other module, and may be edited by a user of the tag server 16 via the administrator interface 40.
In the present specific embodiment, after the video-tag information provided by the tag-authoring computer 14 is selectively filtered, adjusted, and/or augmented via the tag server 16, the tag server 16 sends an enable signal to the tag-authoring computer 14, along with filtered, adjusted, and/or augmented video-tag data. The authoring controller 24, in communication with the publishing module 34, then publishes the resulting adjusted video-tag data to the social networking website 18. This enables display of video tags associated with the adjusted video-tag data along with the identified video. The authoring computer 14 may transfer the adjusted video-tag data along with the video ID 62 to the social networking website 18 to facilitate publishing after publishing is enabled by an enable signal from the tag server 16.
In the present specific embodiment, the tag-authoring computer 14 also transfers video-tag data comprising the video-tag module 56. The video-tag module 56 includes one or more routines that instruct the social-networking website 18 as to how to render the video-tags in, on, or adjacent to the video content 60. The video-tag module 56 further includes instructions for redirecting links occurring in video tags to the tag server 16. The tag controller 38 may employ the URL routing module 42 to then cause the site identified by the URL occurring in a particular video tag to be displayed by the user display 66. This enables the tag server 16 to track user selected video-tag links and to compile additional usage statistics, which are stored in the video-tag usage database 50. In addition, the video-tag module 56 may forward a signal to the tag controller 38 each time the video content 60 and accompanying tags provided via the video-tag module 56 are played. This enables the tag server 16 to count numbers of video-tag plays, which may be stored in the video-tag usage database 50 for future use.
In addition, the video-tag module 56 includes one or more instructions for directing user requests to purchase (“buy”) items occurring in a video, as identified by one or more video tags, to the e-commerce engine 52 running on the tag server 16. The e-commerce engine 52 may run one or more routines for enabling viewers of the social-networking website 18, such as users of the Web-user systems 20, to purchase products via the tag server 16.
Users of the Web-user systems 20 may activate the Web-video playback module 64 running on the social-networking website 18 to display the video content 60. The Web-video playback module 64 may communicate with the video-tag module 56 to facilitate redirecting user purchase requests and user-selected hyperlinks to the tag server 16. For illustrative purposes, the video-tag content 60 appears as the video 68 with video tags 12. The video-tag content 60 is displayed on the user display 66 of the Web-user systems 20.
In addition, certain video-tag information, such as text and URLs, is stored in the video-tag usage database 50 for statistics computations and for use by the search engine 54. The video-tag usage database 50 may also be employed by the tag controller 38 and one or more of the accompanying tag modules 42-48, 52 to facilitate implementing one or more routines. For example, the tag controller 38 may reference the video-tag usage database 50 to determine whether a particular item appears in a particular video and whether a particular advertisement is suitable for the particular video at a certain location in the video. If a particular type of advertisement is deemed appropriate according to predetermined criteria, the tag controller 38 may activate the additional-video-tag-generating module 48 to create a video-tag advertisement for insertion in to the video.
Hence, the video-tag-handling system 10 represents a feature-rich system that may enable various potentially novel activities, including, but not limited to: 1. Routing tag (video-tag) links back to the remote tag server 16; 2. Filtering tag contents according to publishing location, such as YouTube.com; 3. Adjusting video-tag display priority according to an advertisement fee paid by a user or advertiser; 4. Adjusting tag contents or characteristics according to position in video, according to advertisement payment, or according to other content occurring in video with tag; 5. Placing advertisements, such as video-tag advertisements or other types of advertisements, based on data compiled from one or more user video tags; and 6. Enabling purchases of products or services via a video-tag advertisement or link associated therewith, wherein the purchase can be routed through the remote tag server 16.
Note that various modules 28-34 of the tag-authoring computer 14 and various modules 42-52 of the tag server 16 may activate or be associated with corresponding user interface screens and/or interface controls, which are displayed to users via the user interfaces 26, 40, respectively.
FIG. 2 illustrates a second example video-tag-handling system 10′. The construction and operation of the second example video-tag-handling system 10′ is similar to the construction and operation of the first example video-tag-handling system 10 of FIG. 1 with the exception that publishing of video tags is handled differently. The authoring controller 24 of FIG. 1 is replaced with an updated authoring controller 24′ in FIG. 2. The tag controller 38 is replaced with an updated tag controller 38′ in FIG. 2 to handle an updated publishing scheme.
In particular, when the user of the tag-authoring computer 14′ chooses to publish a video tag, the corresponding video-tag data is forwarded to the tag server 16′ and the social-networking website 18′. However, unlike the system 10 of FIG. 1, the tag server 16′ does not return a publishing-authorization signal directly back to the tag-authoring computer 14′ to authorize publishing of video tags on the social-networking website 18′. Instead, video-tag information that is forwarded from the tag-authoring computer 14′ to the social-networking website 18′ includes additional routines comprising the video-tag module 56′ on the social-networking website 18′.
The additional routines 56′ are activated via the Web-video playback module 64 when a user of the Web-user systems 20 attempts to play a video that has been tagged via the tag-authoring computer 14′. The additional routines 56′ send an enable query to the updated tag controller 38′, which identifies video-tag data that was previously sent to the tag server 16′ via the tag-authoring computer 14′. The tag controller 38′ then automatically invokes functionality provided by the various modules 42-52 of the tag server 16′ based on predetermined rules or criteria, to adjust the video-tag data if not already initially adjusted upon receipt by the tag server 16′. Adjusted video-tag data is then forwarded back to the social-networking website 18′ along with an enable signal enabling the Web-video playback module 64 to play back video content 60 with the adjusted video-tag data in response to activation by one or more of the Web-user systems 20.
The video-tag-handling system 10′ may facilitate tracking additional usage information statistics, such as the number of times a particular video tag is played. Furthermore, note that the tag server 16′ may implement one or more routines for limiting the number of plays of a particular video-tag. For example, the tag controller 38′ may be employed to limit an advertiser\'s video-tag to a predetermined number of plays. Such playback limitations may also be implemented via the video-tag-handling system 10 of FIG. 1. However, in the embodiment 10 of FIG. 1, such playback limitations may be encoded in the video-tag data itself. The embodiment 10′ of FIG. 2 does not necessarily use playback limitations encoded in video-tag data, but instead, may retain such limitations at the tag server 16′, which may disable publishing of a video tag when a predetermined number of playbacks of the video tag is counted.
FIG. 3 illustrates a third example video-tag-handling system 10″. The construction and operation of the third video-tag-handling system 10″ is similar to the construction and operation of the first example video-tag-handling system 10 of FIG. 1 with the exception that publishing of video tags is handled differently. The authoring controller 24 of FIG. 1 is replaced with an alternative authoring controller 24″ in FIG. 3, and the tag controller 38 is replaced with an alternative tag controller 38″ in FIG. 3 to handle an alternative publishing scheme.
In particular, when a user of the tag-authoring computer 14″ chooses to publish a video tag, the corresponding video-tag data, publishing URL, and any video to be published and/or a location thereof (such as a link or other address) is provided to the alternative tag controller 38″. The alternative tag controller 38″ then selectively adjusts or modifies the video-data as needed and publishes the associated video tags to the website indicated via the publishing URL, which is the social-networking website 18″ in the present operative scenario. The tag server 16″ may also publish video accompanying the video tags if the video content 60 is not already present on the social-networking website 18″. If the video content 60 is already present on the social-networking website 18″, the video identification information 62, which may be provided to the social-networking website 18″, is used by the tag server 16″ and/or social-networking website 18″ to associate video-tag data from the tag server 16″ with the appropriate video content 60.
FIG. 4 illustrates a first example video-playback interface 80 suitable for use with the video-tag-handling systems 10, 10′, 10″ of FIGS. 1-3. With reference to FIGS. 1 and 4, the video-playback interface 80 may be accessible to a user of the tag-authoring computer 14 via the user interface 26. The video-playback interface 80 may be implemented via instructions, such as computer code, included in the playback module 32 of the tag-authoring computer 14. A similar video-playback interface may be displayed on the user display 66 of the user systems and may be implemented via the Web-video playback module 64 running on the social-networking website 18 or running on the Web-user systems 20, such as via a plug-in module.
The present illustrative playback interface 80 includes a video-display area 82 for displaying a scene 84, which may include a video tag 86, also called a tag. The scene 84 may represent a video playing back in real time, a paused video frame, or other image data.
Playback behavior of the video scene 84 is controlled via user controls 87, which may include standard play, stop, pause, fast forward, rewind, and volume controls. In the present illustrative embodiment, the video-display area 82 includes additional space 88 below the scene 84, where tags, such as a previous tag 90, may move after being displayed in the video-display area 82. The playback interface 80 further includes various user controls 92, including a tag on/off control 94, a snapshot control 96, an edit-video-tag control 98, and a publish control 100.
A tag-category control 114 may enable a user to select different tag categories for display. For example, a user may click the tag-category control 114, such as via a computer mouse, which may then cause only tags of a certain category to be displayed. Tag categories can include any desired grouping of tags. For example, tags referring to advertisements might be categorized as advertisement tags. The tag-category control 114 might indicate the tag category currently being displayed. Multiple clicks on the tag-category control 114 may enable a user to page through multiple categories of tags to be displayed. Various controls, such as the tag-category control 114 may be omitted without departing from the scope of the present invention. Furthermore, the tag-category control 114 may operate differently than described. For example, the tag-category control 114 may activate a separate menu for selecting tag display categories or even categorizing or re-categorizing existing tags according to user preference.
In an example operative scenario, the video-display area 82 is shown displaying an example tag 86, which includes a tag header field 102, a tag text field 104, and a tag link field 106. The header field 102 may include the name of the tag\'s author, category of the tag, and/or other information. The text filed 104 may include tag text, which may be supplied by the user of the playback interface 80 or via another user. Similarly, the link field 106 may include one or more hyperlinks associated with the tag 86. For example, a hyperlink to a website that enables the viewer to purchase an item 108 may be included in the tag-link field 106. The tag 86 further includes a pointer 110, which may be used to point to a particular item or location, such as the item 108, occurring in the video scene 84.
The tag 86 and accompanying fields 102-106, size, pointer 110, spatial location, and so on are merely illustrative. Different sizes, fields, content, and so on may be employed without departing from the scope of the present teachings. For example, the pointer 110 may be omitted.
In one operative scenario, a user is playing a video scene 84 and decides to take a snapshot of the scene 84 by selecting the snapshot control 96. The resulting snapshot includes the tag 86 and scene 84 in a still-frame or in a predetermined number of frames. The snapshot may be stored locally, such as in the local memory 36 of the tag-authoring computer 14. Alternatively, the snapshot may be emailed or may be handled otherwise. A user may then access the snapshot as needed to read the text field 104, select the link 106, and so on.
In another operative scenario, the user is playing back the video scene 84 and then pauses the video at the scene 84. The user then selects the tag 86, such as via a computer mouse or hot-key, and then clicks the edit-video-tag control 98. The playback interface 80 then changes to a tag-authoring interface, as discussed more fully below, enabling the user to edit the tag 86.
Whether or not the tag 86 is editable by the user may depend on predetermined tag settings. For example, the tag 86 may be configured so that only the author of the tag 86 can edit it. Alternatively, the tag 86 may be configured so that any viewer can edit or add comments to the tag 86. The tag on/off control 94 acts as a toggle button to enable a user to turn the display of tags, such as the tag 86, on or off.
In another operative scenario, the user is playing back the video scene 84 and decides to publish the associated video to a website. The user then selects the publish control 100, which may cause the playback interface to change to a publishing interface that provides controls enabling a user to export the video to a website or other media and/or to publish the tag 86 to a website already hosting the video.