1. Technical Field
The present application relates to metadata embedded within media. More particularly, the present application provides a method, system, and computer program product for accessing media content using metadata embedded within the media.
2. Description of Related Art
Many media programs have a chronological order. That is, events within an airing of one media program may reference events that occur within other airings of the media program. Additionally, media programs may contain events that build off of other events and watching the media programs out of order may negatively impact the experience of watching the media program. Additionally, while viewing a media program, a user may question “Who's that?” or “How did that guy get that gun?” If the user does not know the correct order to watch the media programs or where certain events occurred, the user may lose some of the perceived value of the media program.
Currently, some users may record these media programs on digital video recorders (DVR) or personal video recorders (PVR), which are devices that record video and audio media without videotape to a hard drive-based digital storage medium. While these users may have access to the recorded airings of the media program, currently there is no easy way for the users to find the correct airing or find the particular segment within an airing that references the events.
As media broadcasters broadcast in digital format, the broadcasters have access to create increasing amounts of descriptive metadata information during the production process. Such metadata could be augmented with higher-order descriptors, e.g., details about actions, topics, or events. These descriptors could be produced automatically via ex-post-facto analysis of the aural and visual contents in the media. Likewise, media that was originally produced with little metadata beyond a title and producer could be automatically analyzed to fill out additional metadata fields to better support subsequent information retrieval from media archives.
Thus, there needs to be a way for users who have access to media programs to access important events in the media programs, from something as fleeting as a small scene which is important, all the way up to a series that the user should watch prior to watching the media content.
The illustrative embodiments provide a method, computer program product, and system for accessing media content. The illustrative embodiments output first content that includes an indicator to an output device, determine if related second content exists for the first content based on the indicator, prompt a user for a command to access the related second content in response to the existence of related second content, pause the output of the first content, and initiate the output of the related second content to the output device in response to receiving the first command from the user.
In pausing the output of the first content, other illustrative embodiments store the first content. Storing the first content allows for the first content to be resumed from the point of pause once output of the related second content ends. Yet another illustrative embodiment receives a second command from the user to stop output of the related second content and resuming output of the first content in response to receiving the second command from the user.
In determining if related second content exists for the first content, another illustrative embodiment analyzes metadata associated with the first content for a set of metadata tags, store the set of metadata tags in a storage, analyze the at least one indicator for a referencing metadata tag, and match the referencing metadata tag to at least one of the set of metadata tags. The set of metadata tags references at least one segment of the related second content.
In prompting the user for the command to access the related second content, the illustrative embodiments output to at least one of a pop-up, a banner, a picture-in-picture, a split screen, or an audio indication concurrently with the first content on the output device.
Other illustrative embodiments locate the related second content on at least one of a local storage or a remote server. In locating the related second content on the remote server, the illustrative embodiments determine if the related second content exists on the remote server, determine if the user has indicated a preference to access the related second content from the remote server in response to the existence of the related second content on the remote server, initiate output of the related second content from the remote server to the output device responsive to the existence of an indication from the user. Responsive to the absence of the indication from the user, the illustrative embodiments prompt the user for a second command to access the related second content from the remote server, and initiate output of the related second content from the remote server to the output device responsive to receiving the second command from the user.
In other illustrative embodiments, a computer program product comprising a computer useable medium having a computer readable program is provided. The computer readable program, when executed on a computing device, causes the computing device to perform various ones, and combinations of, the operations outlined above with regard to the method illustrative embodiment.
In yet another illustrative embodiment, a system is provided. The system may comprise a processor and a memory coupled to the processor. The memory may comprise instructions which, when executed by the processor, cause the processor to perform various ones, and combinations of, the operations outlined above with regard to the method illustrative embodiment.
These and other features and advantages of the present invention will be described in, or will become apparent to those of ordinary skill in the art in view of, the following detailed description of the exemplary embodiments of the present invention.
The invention, as well as a preferred mode of use and further objectives and advantages thereof, will best be understood by reference to the following detailed description of illustrative embodiments when read in conjunction with the accompanying drawings, wherein:
The illustrative embodiments provide mechanisms for accessing media content using metadata embedded within the media. The illustrative embodiments use the term media for content that is broadcast though the distribution of audio and/or video signals to a user. With the illustrative embodiments, a data processing device used to access media content may be a single-processor computing device, a multiprocessing data processing system, or a virtual processor environment in which multiple processors and multiple layers of software may be utilized to perform various aspects of the illustrative embodiments. Therefore,
With reference now to
Media tuner/receiver 106 is connected to processor 102 through bus 108. Media tuner/receiver 106 may be, for example, a National Television System Committee (NTSC), Advanced Television Systems Committee (ATSC) over the air (OTA) tuner. Alternatively, media tuner/receiver 106 may be a digital cable or digital satellite receiver. In yet another embodiment, media tuner/receiver 106 may be a media input port that receives an audio/video signal from an external tuner/receiver. Other receivers may also be used in place of media tuner/receiver 106, such as a satellite radio receiver, for example.
Bus 108 also connects audio processor 110, video processor 112, read-only memory (ROM) 114, disk 116, and input device adapter 118 to processor 102. Audio processor 110 may provide audio processing, such as Dolby® Pro Logic® II or Dolby Digital surround sound decoding. Video processor 112 may perform processing, such as MPEG2 or MPEG4 decoding. Disk 116 may be a hard disk drive (HDD) for storing media content streams. Input device adapter 118 may be, for example, an infrared (IR) remote control receiver, a keyboard/mouse adapter, or the like.
Media device 100 may also include optical disk reader 120, which may be, for example, a compact disk (CD) drive, digital video disk (DVD) drive, or the like. Modem 122 may be used to dial into a server to access the Internet, retrieve program guide information, or the like. Universal Serial Bus (USB) and other ports 124 may be connected to processor 102 through bus 108. These ports may allow peripheral devices, such as printers, network adapters, etc., to be connected to media device 100. Local area network adapter (LAN) 126 may allow media device 100 to connect to the Internet, share media content to other devices, or to acquire program guide data.
An operating system runs on processor 102 and is used to coordinate and provide control of various components within media device 100 in
Those of ordinary skill in the art will appreciate that the hardware in
Media device 100 may store media content on disk 116. In accordance with an illustrative embodiment, media device 100 provides a means to enable the user of media device 100 to be able to access media as current media content, identify related media content using metadata associated with the current media content, pause the current media content, access the related media content, and then resume access of the current media content.
In the depicted example, media device 204, such as media device 100 of
The media may include metadata that is digitally embedded in the media content. When media device 204 receives the media, related media content information may be presented to the user on an output device, for example, display 206, audio device 208, desktop computer 212, laptop computer 214, mobile device 216, or the like, based on the metadata in the media content information. When a user sees the related media content information, the user may choose to access the related media content that is stored on media device 204 through network 202.
Network data processing system 200 may include additional servers, clients, and other devices not shown. In the depicted example, network data processing system 200 is embodied within the Internet. Of course, network data processing system 200 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
Media device 300 may be set up to store incoming media 302 as stored content 304 in storage 306 or present incoming media 302 as real-time content. Both stored content 304 and real-time content are output to output device 308. Both stored and real-time content may be a program that is a segment of broadcast programming, for example, a television program or a radio program. A program may be a single broadcast or part of a periodically broadcast series. A broadcast series that is intended to air a finite number of smaller segments is usually called a miniseries or serial. A series that is intended over many years or seasons usually consists of 6-26 smaller installments. A single instance or installment of a program may be referred to as an episode, while a one-time program may be referred to as a special.
Whether incoming media 302 is stored or real-time, media device 300 includes metadata reader 310 that analyzes incoming media 302 to determine if incoming media 302 includes embedded metadata tags. If metadata reader 310 detects an embedded metadata tag, metadata reader 310 stores, for a factory defined amount of time or a user-specified amount of time, the metadata tag as content metadata 312 in storage 306. Content metadata 312 may be stored, for example, in a table format, linked list, etc. Additionally, metadata tags may be received after the initial broadcast of the media or existing metadata tags may be replaced during the reception of a subsequent reception of the media. That is, if a program replays or airs at a later time and the broadcaster has embedded new metadata tags or changes the previously stored metadata tags, then the updated or new metadata tags would be stored using the previously described process. Additionally, the metadata tags may refer to a future event, thus, in addition to the metadata tag being used for referencing related content, then the metadata tag may also be used to automatically program the recording of the future program.
User 314 may indicate stored or real-time content to be accessed using input device 316. Input device interface 318 receives the media selection from input device 316 and transmits the media selection to program selector 320. Program selector 320 uses the user's media selection to transmit the stored or real-time content through outgoing signal 322 to output device 308. During transmission of the content, jump-point detector 324 determines if embedded metadata within the content includes a jump-point indicator. A jump-point indicator indicates a point within the content that refers to other related content, for example, a current, past, or future installment, or segment within a current, past, or future installment. The jump-point indicator includes a metadata tag that includes a program identifier, an installment identifier, and metadata description. Related content may also be referred to as a related event, since the related content is stored or real-time content. If jump-point detector 324 encounters a jump-point indicator, jump-point detector 324 sends jump-point metadata to content locator 326. Content locator 326 uses the jump-point metadata to determine if the related content referred to in the jump-point indicator is available.
In order to determine if the related content is available, content locator 326 analyzes stored content 304 using the metadata from the jump-point indicator to see if the related content is stored locally. Also, since broadcasters are making media content available on the broadcasters' Websites, content locator 326 may use Internet interface 328 to determine if the related content is available from the broadcaster on broadcaster server 330 if the related content is not stored locally.
Prior to downloading the content from the broadcaster's Website, content locator 326 may identify if the user has indicated a preference to download all related content without prompting. However, if content locator 326 can not locate a user preference on downloading related content or in the event a charge exists for downloading the related content, then content locator 326 may prompt the user for the desire to download the requested content using event notifier 332.
If content locator 326 is able to locate the related content, then jump-point detector 324 may send a signal to event notifier 332, so that event notifier 332 notifies the user that the current content being output is related to other content. If content locator 326 does not locate the related content, then no notification is output to output device 308.
In order for the event notification and the current content to coincide properly on output device 308, the media producer may insert jump-point indicators earlier within the content, so that content locator 326 has the necessary time to determine if the related content may be located. Then, the producer may insert an event indicator at the time of the event so that the event notification and the current content coincide if the content locator 326 locates the related content.
Event notifier 332 may send a notification via outgoing signal 322 to output device 308, for example, as a pop-up that is concurrently output with the current content. Other examples of presenting the event notification may be to present the event notification as a banner, a picture-in-picture, a split screen, an audio signal, or the like. Event notifier 332 continues to output the notification concurrently with the current content until the segment associated with the event changes, which may be indicated through, for example, an end of a scene marker, another jump-point indicator, other metadata indicator, a black screen which may be use to show a break in programming, or the like. If the user indicates a desire to access the related content during the time period that the event notifier 332 is outputting the notification, then program selector 320 detects the indication via input device interface 318. Program selector 320 may then pause the current content to output the related content as a related content. In pausing the current content, program selector 320 may either immediately start long-term recording of the current content or use a short-term delay feature, as is commonly available in media devices.
Program selector 320 may then output the related content through outgoing signal 322 to output device 308. The output may be in the form of a full screen display, a split screen display, a pop-up display or the like. The output of the related content is controlled by the user, in that the user may fast forward, reverse, skip, stop, or the like. While outputting the related content, if program selector 320 receives a command from the user via input device 316, that the user desires to end access of the related content, then program selector 320 stops transmitting the related content and resumes transmitting the current content in a delayed format. If the user accesses the related content in its entirety, then program selector 320 resumes transmitting the current content in a delayed format. If the output of the related content is in the form of a split screen display or a pop-up display, then the window in which the related content was created automatically closes upon completion of the output of the related content. Additionally, as the related content is being output, the related content may also have embedded metadata tags, these related content metadata tags are handled in the same manner as described above.
Metadata description 406 may include a description associated with the metadata tag, such as “introduction of character 1”, “introduction of character 2”, “characters 1 and 2 first meet”, or the like. It should be appreciated that the content metadata are only exemplary and are not intended to assert or imply any limitation with regard to the content metadata the illustrative embodiments may use. Content metadata table 400 may be used by a content locator to determine if related content referred to in the jump-point indicator is available when a jump-point detector encounters the jump-point indicator.
During the output of the current content, a jump-point detector, such as jump-point detector 324 of
If at step 708, the event locator is unable to locate the related content, then the event locator attempts to locate the related content on a broadcaster's server (step 712). If at step 712, the event locator is able to locate the related content on the broadcaster's server, the event notifier outputs a notification to the output device that the segment being output was previously mentioned in related content (step 710). If at step 712, the event locator is unable to locate the related content, the operation returns to step 706 to wait for the next jump-point indicator. After the event notifier outputs a notification to the output device, the media device continues to output the notification concurrently with the current content until the segment associated with the event changes (step 714), with the operation returning to step 706 thereafter.
The program selector then initiates the output of the related content to the user's output device (step 808). While outputting the related content, the program selector monitors the input device interface to determine if the user desires to end output of the related content (step 810). If at step 810 the user indicates a desire to stop output of the related content, the program selector resumes output of the current content in a delayed format (step 812), with the operation returning to step 802. If at step 810 fails to indicate a desire to stop output of the related content, the program selector determines if the related content has been output in its entirety (step 814). If at step 814 the related content has not completed playing, then the operation returns to step 808. If at step 814 the related content is played in its entirety, then the program selector resumes output of the current content in a delayed format (step 812), with the operation returning to step 802.
Thus, the illustrative embodiments provide for accessing media content using metadata embedded within the media. The illustrative embodiments output first content that includes an indicator to an output device, determine if related second content exists for the first content based on the indicator, prompt a user for a command to access the related second content in response to the existence of related second content, and pause the output of the first content and initiate the output of the related second content to the output device in response to receiving the first command from the user.
It should be appreciated that the illustrative embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In one exemplary embodiment, the mechanisms of the illustrative embodiments are implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the illustrative embodiments may take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium may be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.