Generally, the invention relates to methods for sharing video content on a distributed network. More particularly, the invention relates to a cost-effective method for collaborative video via distributed storage.
Two of the hottest trends in ad-hoc collaboration on the Internet—blogging and podcasting—tend to be limited to the textual and auditory world. A “blog,” (short for “weblog”) as that term is used herein, refers to a website that is set up for visitors to read, view, retrieve, and/or post information. “Podcasting,” as that term is used herein, refers to a peer-to-peer system whereby people can create their own audio files and share sound files (e.g., MP3, WMA, WAV), and other people can easily download and listen to audio on their PCs and other mobile listening devices. Thus, podcasting is a mechanism that may be used for delivering audio in a personalized fashion—that is, the content is posted and shared by individuals, and discovered and pulled across the internet by other individuals requesting the content via direct links or syndication and/or subscription services.
Though video is also a useful exchange medium, it suffers from the fact that video files are many times larger than audio (and orders of magnitudes larger than simple text), which means the storage of the video and the bandwidth to stream the video is and will continue to be prohibitively expensive for the foreseeable future. As a result, an advertiser-supported business around collaborative or non-Hollywood, internet-distributed video tends to be unprofitable because the capital expenditure costs for disks in a data center and the operational costs for bandwidth from a data center are far more expensive than revenue one could potentially generate via advertising revenue.
Typically, a blog host has to spend money for server space to keep their blog running. In an effort to capitalize on the blog host's desire to recoup money spent to provide the blog, ad providers began to exchange permission to put ads onto the blogs for a share of the ad revenue. Google, for example, has recently begun using its ad provision service, AdSense, in the blog context. In such an environment, the blog host can put up HTML text next to the blog so that when someone visits the site, the visitor gets context-specific advertising in the frame of the blog. Typically, the ad provider gets paid by the advertiser for providing this service. If a visitor clicks on a link provided in the advertising, then the ad provider “monetizes” the link (i.e., deposits a certain amount of money (or other currency, such as miles, etc.) into an account associated with the blog host). Thus, the blog host receives a share of the advertising revenue generated by the ad.
To build a business around collaborative video, however, one must either charge a lot of money to store and stream the video from a centralized data center, or find a different way to store and distribute video content to end users. Unfortunately, charging for video tends to severely impact grassroots growth because people are unlikely to pay a lot of money to see amateur or semi-professional video content, no matter how narrowly defined the subject matter may be. For such a model to succeed, it is desirable to provide free viewing of video content while providing a scalable, non-obtrusive ad model that is not perceived by users as so annoying or disruptive that they would seek other content via other means.
It would be desirable, therefore, if systems and methods were available that changed the economics around storage and distribution of video content in order to make such storage and distribution cost-effective and profitable for collaborative video.
The invention provides a cost-effective mechanism for sharing video content on the Internet that establishes a peer-to-peer edge-based storage and routing service for such video. End users may be induced through a variety of ways to allocate some amount of unused disk space or idle bandwidth for this service. Thus, the video may be stored over a distributed network of nodes, and the capital and operating expenditures for such a service may be borne entirely by a loose federation of client machines rather than by a centralized data center. Systems and methods for providing distributed, decentralized data storage and retrieval are disclosed and claimed in U.S. patent application Ser. No. 11/110,128.
An aspect of the invention may include blending or mixing and combining user-authored video content with blogs or other web-based publishing mechanisms. For example, a user can create, edit or host a piece of video content, create a blog, and link that video to the blog (in multiple formats). The video may be kept in a distributed store across a number of deputized peer machines. If someone visits the blog, the visitor may see contextual ads based upon the subject matter of the video itself, it's author, or the blog or site that hosts the content, and the blog owner, acting as a middleman in the distribution process, may therefore receive a share of that advertising revenue associated with the ads or associated with the actions taken based upon viewing those ads. The video may also include metadata that points back to the user as the owner, and to the user's blog.
Anyone can then freely download the video and edit or combine it with new content (e.g., “mash-ups,” collage-style videos made from an assortment of moving and still images that are combined to form a derivative work from a number of dis-separate elements). The newly created video may include one or more pointers to downstream owners, as well as useful metadata such as the relative length of the included sections, original author information, details about the images/content used, etc. The new video may then be added to a different blog. Anyone visiting the new blog may also see contextual ads, and a pro-rated portion of the ad money may flow to each owner in the stream. Thus, the invention builds on and extends the ideas within a classical multi-tiered marketing system where creators of works that are used widely in many downstream derivative works could see a healthy revenue stream based upon the percentage of content they provide and in proportion to the number of additional distributions they have enabled by hosting and distributing the new content. This same model could just as equally be applied to an “audio-only” content system, and in no way assumes that video content is the only kind of media to which this invention could be applied.
Example Computing Environment
Although not required, the invention can be implemented via an application programming interface (API), for use by a developer or tester, and/or included within the network browsing software which will be described in the general context of computer-executable instructions, such as program modules, being executed by one or more computers (e.g., client workstations, servers, or other devices). Generally, program modules include routines, programs, objects, components, data structures and the like that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations. Other well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers (PCs), automated teller machines, server computers, hand-held or laptop devices, multi-processor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. An embodiment of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network or other data transmission medium. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, random access memory (RAM), read-only memory (ROM), Electrically-Erasable Programmable Read-Only Memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CDROM), digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as ROM 131 and RAM 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
A monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190. In addition to monitor 191, computers may also include other peripheral output devices such as speakers 197 and printer 196, which may be connected through an output peripheral interface 195.
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
One of ordinary skill in the art can appreciate that a computer 110 or other client devices can be deployed as part of a computer network. In this regard, the present invention pertains to any computer system having any number of memory or storage units, and any number of applications and processes occurring across any number of storage units or volumes. An embodiment of the present invention may apply to an environment with server computers and client computers deployed in a network environment, having remote or local storage. The present invention may also apply to a standalone computing device, having programming language functionality, interpretation and execution capabilities.
Example Distributed Network
Each node 10A-H may be assigned a unique address. The length of the address may be chosen in order to ensure that each node has a unique address. In an example, Internet-based system, where the network is expected to include tens of millions of nodes, 160-bit addresses may be used. Such an addressing scheme may form a routing overlay on top of the transmission control protocol (“TCP”).
Processes distributed among the several nodes 10A-H may communicate with each other over the network via simple object access protocol (“SOAP”) messages. SOAP is a well-known, lightweight, XML-based distributed computing protocol. A SOAP message is an XML document that includes a SOAP envelope. The envelope includes an optional SOAP header and a mandatory SOAP body. The SOAP message header represents the metadata of the message and provides a way to extend SOAP. The SOAP message body is the actual message payload. The distributed processes may communicate with one another by putting SOAP packets onto the network.
A process may be a message originator (e.g., on node 10A as shown), an intended message receiver (e.g., on node 10G as shown), or an intermediary (e.g., on node 10C as shown). The message originator is the process that originally puts the SOAP message onto the network. The intended message receiver is the process to which the message is ultimately destined. Accordingly, a SOAP message originating from the message originator may include an address associated with the intended message receiver.
Collaborative Video Via Distributed Storage And Blogging
At step 302, a site host sets up a blog, wiki, or other web site (generically referred to herein as a “site”). At step 304, a first author who may or may not be the site host, creates and edits a video using a video editor—the video created may be comprised of pre-existing pieces or totally original ‘clips’ that the user has compiled, created, or acquired my any known means. A video editor is used to sequence the individual elements into a new derivative work based upon the pre-existing or captured ‘clips’ and the editor is to be designed in way that it embeds into the video file specific metadata tags that establish a hierarchy of authorship that defines the relative ‘ownership’ of each of the clips used in the final ‘bounced’ compilation. (Bouncing is defined as the ‘rendering’ step where the edits, cross-fades, and authors decisions are committed to one final hard-wired sequence and stored in an external file on some physical medium, ready for distribution. The author/editor of the final ‘bounced’ video content is also validated owner of the new ‘compilation’ video.
It should be understood that, although the author of the video is often, but not always, the owner the rights in the video—in many cases, the author is not actually the owner of all of the source content that is included in the video. Accordingly, the metadata could refer to either the author, the sub-clip owners, or both. The terms “author” and “owner” may be used interchangeably herein to signify the owner of the rights in the video authored by the author.
At step 306, the first author uploads their ‘bounced’ video to a distributed data store, with the embedded ‘ownership’ tree baked into the final video file itself. An example of such a distributed, decentralized data store is disclosed and claimed in U.S. patent application Ser. No. 11/110,128. Such a system may include an interconnected network of nodes. Each node may be a PC, for example, or other network-connected device that includes a memory for storing electronic data, such as a portion of the video file.
Incentives may be provided to encourage node owners to make such storage space available to the community. For example, owners who consent to provide such storage space may also receive a portion of any ad-generated revenue stream. Alternatively, the owner may merely receive a quid pro quo. For example, in exchange for permitting other people's family photos to be backed up onto his machine, the owner may be entitled to have his family photos backed up onto someone else's machine.
As shown in FIGS. 4A-B, and described in detail in U.S. patent application Ser. No. 11/110,128, each node may have running thereon a collection of one or more processes that form a “local cache and transport layer,” a “stream store layer,” a “chunk store layer,” and a “fragment store layer.” A collection of processes may also be provided for “block” storage.
The local cache and transport layer 20 may include a storage service 22 and a routing service 24. The storage service 22 may receive a storage request to store the video clip, which may be a bit stream of arbitrary length. The routing service 24 may communicate the video clip to any of the stream store services 32A-N. The stream store service may store a video clip in local persistent storage for later retrieval, and also divide the clip into one or more “chunks.” The stream store service (e.g., 32A) may then communicate the chunks to respective chunk store services 34A-N. The chunk store service may store the chunk in local persistent storage for later retrieval, and also divide the chunk into one or more “fragments.” The chunk store service (e.g., 34A) may then encode the fragments into check blocks and communicate them to respective fragment store services 35A-N. The fragment store service may store the fragment in local persistent storage for later retrieval. Thus, a video clip may be divided into a plurality of check blocks, and each check block stored, in general, on a different node distributed over a vast network of such nodes.
It should be understood that, to authenticate ownership of a specific video clip, a certificate that includes detailed hierarchy of ownership information could be placed alongside or within the clip itself. Accordingly, the system could prevent new video from being stored on the distributed network unless the video includes a proper certificate. The system could require a would-be author to provide a proper key in order to store/access/delete material on the distributed store. Thus, only authorized persons could tamper with material stored on the distributed store.
At step 308, the first author may make a reference to a video on a site. At step 310, a visitor visits the site where the first author's video is available, and selects to download the video. At step 312, the video is retrieved from the distributed data store and, preferably, streamed to the requesting node.
As described in detail in U.S. patent application Ser. No. 11/110,128, in order to retrieve the video, the routing service 24 in the local cache and transport layer 20 may put a message onto the network requesting that the video be retrieved from the node(s) on which it is stored. If the video is still stored in local cache associated with a stream store service, then the stream store service returns the video in one or more packets to the node that requested it. If the video is not still stored in the local cache associated with that stream store service, then the stream store service requests the associated chunks from the chunk store services to which those chunks were sent during the storage process. If a chunk remains in local cache associated with that chunk store service, then that chunk is returned to the node that requested it. If not, then the chunk store service requests the associated fragments from the nodes on which those fragments were stored. This process continues—retrieving check blocks to reconstitute fragments, retrieving fragments to reconstitute chunks, retrieving chunks to reconstitute the video clip, until the full video clip is reconstituted and returned to the node that requested it.
When the visitor selects to download or access the video, relevant ad-related interstitials may be embedded dynamically into the video stream in appropriate locations within the video content itself at step 314. Interstitials may be deemed “relevant” based on intelligent demographic information, personal information, associated metadata, for example, associated with the visitor, the hosting site, or other mechanisms that would potentially make the ad content more valuable and relevant to the viewer. One or more text, close-captioned, audio or visual interstitials could be interspersed throughout a video clip to provide an advertisement based value-add to the original content itself. The interstitials may also be advertisements that appear while the video is downloading. The advertisements may also include links to other web pages, for example, associated with the advertised good or service so the viewer could immediately gain access to mechanisms for follow-up, additional data, or additional online sales opportunities for those items that attract their attention in the content or in the ads themselves.
At step 316, a visitor may click on a link provided in the advertising or in the video content itself. According to an aspect of the invention, a percentage of ad revenue may go to one or more authors associated with the video stream according to the percentage of content by each author has been actually viewed by the user. For example, if the user only views ½ of a given video program, the authorship share could be calculated only based upon those clips and associated authors that exist in the first half of the video clip. If, at step 316, the visitor clicks on a link provided in advertising embedded in a video stream authored by a certain author, then, at step 318, the identities of the authors may be determined from the metadata tags embedded in the video stream.
At step 322, the link is “monetized.” That is, the ad provider may deposit a certain amount of currency into an account associated with the site owner or on behalf of any third party collection/distribution agency who may distribute ad royalties to content owners. The currency could be money, for example, or it may also be any other form of payment, such as frequent flyer miles, ad-free viewing time, or other value-based barter mechanisms, etc. Thus, the site owner may receive a share of the advertising revenue generated by the ad. In accordance with an aspect of the invention, a predefined amount of currency may also be deposited into an account associated with the owner of the video. The amount of currency to be deposited into the owner's account may be a percentage of the currency the site owner receives from the ad service provider and may be based on a pre-existing business arrangement between the video author/owner and the site owner.
According to an aspect of the invention, a ‘hierarchy’ of authors may receive a portion of the advertising revenue associated with a video clip. For example, a second author may download a first author's video, and use all or a portion of the first author's video to make a second video. Thus, the second video may be a composite video that includes a union of the second author's new material with some or all of the first author's material. In this case, the author of the ‘composite’ video is creating a derivative work and is the primary owner of that derivative work, however the collective ‘ownership’ of the final content is shared based upon an equitable pre-established equation between all owners of the pieces that were used to create the new composite. According to an aspect of the invention, such a hierarchy equation may be to establish ownership percentages for iteratively composited materials.
As described above in connection with the first video, the second video may be embedded with metadata containing an embodiment of the hierarchy of ownership and lineage of the second video. In this case, the video may be owned by the second author. The metadata may indicate that the video is composed of material from both the first author and the second author, and perhaps a long string of previous authors. If partial clip gets moved to another clip, owner's name, metadata, tracking information, and stable URI that points to location it came from gets moved into new clip. The metadata may also indicate how much of the video is material from the first author and how much is material from the second author. For example, the metadata may indicate that a first percentage of the video is material from the first author and a second percentage of the video is material from the second author. The second video may be uploaded to the distributed store, and referenced in a site that may be the same as or different from the first site.
The video editing software used by the second author may embed and pass on the combined video metadata associated with each of the first author and the second author in a manner that is transparent to the second author. Typically, a video editing software application may include a button or function that the author may select to “publish’ or ‘bounce’ or ‘render’ a final new piece of content, and indicate that the editing process is complete. The current version of Microsoft's MOVIE MAKER, for example, includes a “Make Final Video” button. In accordance with an aspect of the invention, such video editing software may be modified such that, when the final video button is selected, metadata associated with each author is embedded into the video.
The video editor may embed into the video clip metadata including one or more pointers to a site at which the video clip (created by the second author) was originally made available. Similarly, the video editor may embed into the video clip metadata including one or more pointers to sites at which the content created by the first author was originally made available.
For security purposes, the video editor may embed into the video clip a respective certificate associated with each of the first and second authors, thereby preserving the identity and security of ownership and metadata such that a hacker could not arbitrarily influence the content ownership ecosystem enabled by this embedded metadata. Embedding a certificate may include watermarking the video clip with respective technology-based, but user invisible, watermarks associated with each of the first and second or subsequent authors.
A visitor to the second site may be presented with contextual ads generated from the ad provider based on the content or themed interests associated with the second site. A share of the ad revenue may go to the second author, a share to the website service provider, and a share to the ad provider who manages and maintains the ad streams. Additionally, a pro-rated share of the ad revenue (which may be referred to as a “micropayment”) may also be sent to the first author. In an example embodiment, the more video or audio that the second author used from the first author's video, the greater the pro-rated share the first author may receive.
The process may similarly repeat for any number of authors. A third author may use a respective portion of each of the first and second author's videos, in addition to entirely new video. For each clip used to make the combined video, the video editor may embed respective metadata associated with the respective author of the clip. Thus, in a manner that is transparent to the author, the video editor may embed into the video metadata associated with each clip from which the combined video was made. In this case, the third author may give a respective portion of his share of the advertising revenue to each of the first and second authors.
Thus, there have been described systems and methods for sharing collaboratively-created video content on a distributed network. Though the invention has been described in connection with certain preferred embodiments depicted in the various figures, it should be understood that other similar embodiments may be used, and that modifications or additions may be made to the described embodiments for practicing the invention without deviating therefrom. The invention, therefore, should not be limited to any single embodiment, but rather should be construed in breadth and scope in accordance with the following claims.
The subject matter disclosed and claimed herein is related to the subject matter disclosed and claimed in U.S. patent application Ser. No. 11/110,128, filed on Apr. 20, 2005, entitled “Systems And Methods For Providing Distributed, Decentralized Data Storage And Retrieval,” the disclosure of which is hereby incorporated herein by reference.