WO1999010822A1 - Streaming hypervideo and dynamic hypervideo - Google Patents
Streaming hypervideo and dynamic hypervideo Download PDFInfo
- Publication number
- WO1999010822A1 WO1999010822A1 PCT/US1998/017444 US9817444W WO9910822A1 WO 1999010822 A1 WO1999010822 A1 WO 1999010822A1 US 9817444 W US9817444 W US 9817444W WO 9910822 A1 WO9910822 A1 WO 9910822A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- hypervideo
- media
- data
- hotspot
- video
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/74—Browsing; Visualisation therefor
- G06F16/748—Hypervideo
Definitions
- the present invention relates generally to electronic technology, and more specifically to interactive multimedia technology.
- Computers are capable of communicating information to humans in many formats, including text, graphics, sound and video.
- a multimedia presentation on a computer combines such formats to present information more coherently so that it is better perceived by humans.
- Information on computers can be linked. For example, using "hypertext,” the existence of additional and related information that is associated with a selected portion of text may be indicated by highlighting or underlining the selected text.
- the information associated with such selected text may be accessed, for example, utilizing a pointer device, such as a mouse.
- a mouse button may be actuated when a pointer is positioned on the highlighted text.
- the present invention solves the above-mentioned problems in the art and other problems which will be understood by those skilled in the art upon reading and understanding the present specification.
- the present invention is a system and method for streaming hypervideo data and for implementing dynamic hypervideos.
- a data stream comprises a hypervideo data stream including hypervideo data associated with an instance in time in a video.
- the hypervideo data stream further comprises target data associated with the instance in time.
- the hypervideo data stream further comprises geometry data of a hotspot associated with the instance in time.
- the hypervideo data stream further comprises shape data of a hotspot associated with the instance of time.
- the instance in time corresponds to a frame of the video.
- a multimedia stream comprises a hypervideo data stream that includes a header, including static hypervideo data. A body, coupled to the header, includes dynamic hypervideo data.
- the dynamic hypervideo data includes time data that is associated with an instance of time in a video with which the dynamic hypervideo data and the static hypervideo data are associated.
- the static hypervideo data comprises target data.
- the dynamic hypervideo data further comprises geometry data of a hotspot.
- the dynamic hypervideo data further comprises shape data of a hotspot.
- a video stream includes a video frame, wherein the instance in time corresponds to the video frame.
- the multimedia stream further comprises an audio stream.
- a method of creating a multimedia stream comprises authoring a hypervideo, including a video.
- Hypervideo parameters are exported into a hypervideo data stream of a media file.
- a data stream of the video is exported into the media file.
- a method for authoring a hypervideo that is dynamic comprises authoring a hypervideo, and defining a hypervideo parameter that may vary during the hypervideo performance.
- an event handler is defined that issues a command to vary the parameter upon receiving an event message from the hypervideo.
- an event handler is defined by a logical condition including a variable defined by a query to a database.
- the hypervideo is authored by defining a hotspot and linking the hotspot to a target.
- a method of performing a hypervideo that is dynamic, comprises performing a hypervideo, and varying a parameter of the hypervideo during the performance of the hypervideo.
- the parameter is varied upon the occurrence of an event in the hypervideo.
- the parameter is varied upon an event handler receiving a message associated with the event, and issuing a command to vary the parameter.
- the parameter is varied upon the event handler evaluating a logical condition including a variable defined by a query to a database.
- the parameter identifies a target.
- a hypervideo system comprises a dynamic hypervideo server.
- a player is coupled to the dynamic hypervideo server.
- a media server is coupled to the player.
- the hypervideo system further comprises a database.
- the hypervideo system further comprises an application program.
- the application program is an electronic commerce server.
- the application program is an advertising server.
- the application program is a training server.
- the media server is a video server.
- the hypervideo system further comprises a network coupling the player to the dynamic hypervideo server and the media server. It is a benefit of the present invention that it facilitates streaming hypervideo data over networks.
- Figure 1 A illustrates an exemplary hypervideo environment, including a hypervideo authoring tool
- Figure IB illustrates an exemplary hypervideo run-time module
- Figure IC illustrates an exemplary block diagram of one embodiment of a computer system
- Figure ID exemplifies a computer implemented as an integrated circuit
- Figure IE illustrates an exemplary television
- Figure 2 illustrates an exemplary Import Media File Dialog
- Figure 3 illustrates an exemplary Import From Project Dialog
- Figure 4 illustrates an exemplary Media Warehouse Window Icon
- Figure 5 illustrates an exemplary Details Page
- Figure 6 illustrates an exemplary Preview Page
- Figure 7A illustrates an exemplary Targets Page
- Figure 7B illustrates an exemplary Hotspot Page
- Figure 7C illustrates an exemplary General Properties Page
- Figure 7D illustrates an exemplary Time Line
- Figure 7E illustrates another exemplary Details Page
- Figure 7F illustrates an exemplary Frame Window
- Figure 7G illustrates an exemplary Place Properties Page
- Figure 8 A illustrates an exemplary Workshop Window
- Figure 8B illustrates an exemplary Preview Window
- Figure 9A illustrates an exemplary Tools Window
- Figure 9B illustrates an exemplary Tracking Property Sheet
- FIG. 10 illustrates an exemplary graphical user interface (GUI) for a hypervideo authoring tool
- Figure 11 illustrates an exemplary hypervideo story board
- Figure 12 illustrates an exemplary call-back object
- Figure 13 illustrates an exemplary object tree
- Figure 14 illustrates an exemplary hypervideo data stream
- Figure 15 illustrates an exemplary GUI of a modified version of an authoring tool for Netshow (TM);
- Figure 16 illustrates an exemplary Hotspot Properties Sheet;
- Figure 17 illustrates an exemplary Media Properties Sheet
- Figure 18 illustrates an exemplary Properties Page
- FIG 19 illustrates an exemplary Active X (TM) control
- Figure 20 illustrates an exemplary GUI of a modified version of an authoring tool for RealVideo (TM);
- Figure 21 illustrates an exemplary Hotspot Properties Sheet
- Figure 22 illustrates an exemplary Export Dialog
- Figure 23 illustrates an exemplary Export Dialog for automatic translation
- Figure 24A illustrates an exemplary Encoding Properties Sheet
- Figure 24B illustrates an exemplary Encoding Properties Page
- Figure 25 illustrates an exemplary hypervideo system
- Figure 26 illustrates an exemplary authoring tool GUI
- Figure 27 illustrates an exemplary Data Source page of Query dialog
- Figure 28 illustrates an exemplary Choose Columns Page
- Figure 29 illustrates an exemplary Filter Data Page
- Figure 30 illustrates an exemplary SQL Page
- Figure 31 illustrates an exemplary Targets Page
- Figure 32 illustrates an exemplary Hotframes toolbar
- Figure 33 illustrates an exemplary Hotframes Property Sheet
- Figure 34 illustrates an exemplary Properties Sheet
- Figure 35 illustrates an exemplary Handlers Notebook Window
- Figure 36 illustrates an exemplary Script Wizard
- Figure 37 illustrates an exemplary Menu
- Figure 38 illustrates an exemplary Default Settings Sheet
- Figure 39 illustrates an exemplary Logging Page
- Figure 40 illustrates an exemplary flow diagram illustrating the procedure for creating a hypervideo
- Figure 41 illustrates exemplary logical class relationships associated with the Media Warehouse Window
- Figure 42 illustrates exemplary classes associated with class EClipDoc
- Figure 43 illustrates exemplary classes associated with class EClipView
- Figure 44 illustrates exemplary classes associated with EClipFrameWnd.
- Figure 45 illustrates an exemplary run-time tree class diagram
- Figure 46 illustrates an exemplary video object class diagram
- Figure 47 illustrates an exemplary sound object class diagram
- Figure 48 illustrates exemplary classes associated with a hypervideo.
- the present invention is a method and apparatus for linking information to and accessing information from a video.
- the video may be hypervideo.
- Hypervideo is video with one or more regions of interest, where each region of interest may be linked to one or more targets.
- Hypervideo permits a user to interact with video.
- a user can create hypervideo which is non-linear.
- the user can navigate the hypervideo from a base target, such as, but not limited to, a video, to other target(s), such as, but not limited to, HTML files or other videos.
- the other targets may be executed, or activated, simultaneously, sequentially, or a combination thereof.
- the parent target can be halted, for example when paused or closed, or keep playing.
- the present invention comprises a method and apparatus for creating and playing hypervideo.
- the present invention may be implemented with computer programs.
- the program that creates hypervideo is known as an authoring tool, or an editor.
- the program that enables a computer to display hypervideo is known as the run-time module.
- the authoring tool may be used to define a hotspot, or an object, in a region of interest in one or more frames of a video, and then track the hotspot in later frames, for example.
- the hotspot may also be defined in a picture, including a bitmap. Any subsequent discussion of bitmaps may also be applicable to other picture formats, which are subsequently described. Hotspots can be alternatively tracked manually and automatically.
- the hotspot may be linked to a target, for example, but not limited to, text, audio, or a second video. Targets are further described and exemplified below.
- a user can place a pointer over the hotspot in the video with a mouse.
- the cursor When the pointer is placed over the hotspot, the cursor may change. Then, by actuating a mouse button, the user may launch, or execute, the target. When the mouse button is actuated when the pointer is over the hotspot, the cursor may change again. Multiple targets can be linked to a hotspot. Because of its ease of use, hypervideo can be used for a wide variety of applications, including, but not limited to, interactive television, games, tourism and home shopping. 2.0 Software Implementation
- the computer programs comprise a hypervideo environment 1000 including an authoring tool 1001 and a run-time module 1101.
- the computer programs may be implemented with object-oriented software, as exemplified below.
- the computer programs can be executed on a computer, for example, using the Windows 95 operating system by Microsoft Corporation (Redmond, Washington).
- the programs, specifically the authoring tool 1001 may have the look and feel of Windows 95.
- the present invention may be implemented, for example, in other systems, such as, but not limited to, televisions, described below.
- the present invention may also be implemented with other operating systems.
- Figure IC illustrates an exemplary computer system 1605 in which one or more programs or sub-programs of the hypervideo environment 1000 may reside and be executed.
- the computer system 1605 may be any processing system for executing one or more programs or sub-programs of the hypervideo environment 1000, including, but not limited to, personal computers and interactive televisions.
- the computer 1605 may include a central processing unit 1610 and memory 1620.
- the processing unit 1610 may be, but is not limited to, a Pentium microprocessor by Intel Corporation (Santa Clara, California).
- the memory 1620 can be random access memory, disk storage, CD-ROM storage, digital video, or versatile, disk (DVD) 1159, another type of memory or combinations thereof.
- the memory may be a video source.
- the computer system 1605 has access to its operating system 1630 and user software 1640.
- the user software 1640 can include the authoring tool 1001, the run-time module 1101, stand-alone modules 1107, multimedia control interface (MCI) driver 1109, software development kit (SDK) 1111, plug-ins 1103, and the hypervideo project file 1670.
- MCI multimedia control interface
- SDK software development kit
- the computer 1605 may be implemented in an integrated circuit.
- the integrated circuit 1695 can be implemented in a DVD apparatus 1625 including a reader 1627 for reading information from a DVD, operatively coupled to the integrated circuit 1695.
- the computer 1605, or portions thereof may be implemented in a television 1685, as illustrated in Figure IE, for receiving hypervideo television signals.
- the television 1685 also includes a receiver 1687 which may be coupled to the computer 1605 or portions thereof.
- the computer may permit displaying a hypervideo, for example, on the television.
- the hypervideo project file 1670 is a database used by both the authoring tool 1001 and the run-time module 1101.
- the extension of hypervideo database files may be *.OBV.
- the project file 1670 may be encrypted creating encryption keys using functions, such as srand and rand.
- the authoring tool 1001 and runtime module 1101 may include components that detect the authoring tool 1001 version used to create a project file 1670 and thus can read the project file 1670.
- the authoring tool 1001 and run-time module 1101 may be upgraded without project files created by older versions of the authoring tool becoming obsolete or unusable.
- the authoring tool 1001 and the run-time module 1101 will now be successively described.
- the authoring tool 1001 may be used to define hotspots in media, such as video, and link 1010 the hotspots to targets. Hotspot definition, for example, may be performed substantially in real time.
- the authoring tool 1001 comprises three interconnected sub-programs, the media warehouse 1003, the workshop 1005, and the project view 1007. Each sub-program may be represented by a window on the display of a computer. Furthermore, apparatuses and methods described below for the authoring tool 1001 may also be used in the run-time module 1101, or vice versa.
- the authoring tool 1001 may plug into other editing tools, such as Adobe Premier by Adobe Systems Incorporated (San Jose, California).
- the authoring tool 1001 may include a registry 1006.
- the registry 1006 permits each user to save their own authoring tool settings, including the placement of windows.
- the registry 1006, for example, may be implemented with the registry system of Windows 95 or Windows NT by Microsoft.
- a user may utilize the authoring tool 1001 to perform the following tasks.
- the user may import media files 1680 into the media warehouse 1003.
- Each imported media file 1680 may result in a new media element 1690 being created in the media warehouse 1003.
- Each media element 1690 may include a reference, which may be a pointer, to media files 1680 which could be video, bitmap, sound, or text.
- the pointer may also be directed to non-media, such as a uniform resource locator (URL) or an executable file, which are considered to be media with respect to media files 1680 and media elements 1690 in this document.
- non-media such as a uniform resource locator (URL) or an executable file
- URL uniform resource locator
- One or more media files 1680 generally video and bitmap files, may be selected to form a base target. Then, these video and bitmap files may be placed in the workshop 1005 so that hotspots may be defined within them. After the hotspots are defined, each hotspot may be linked 1010 to one or more other targets, which are media elements 1690.
- the base target and other targets form a hypervideo story board 1116.
- the aforementioned techniques may be described as nonlinear authoring 1009.
- the hypervideo data created by manipulating the different sub-programs of the authoring tool is stored in a project file 1670.
- the hypervideo data may include, for example, but is not limited to, data pertaining to media elements 1690, hotspots, targets, and cursors.
- the project file 1670 can be exported to video servers, for example, that provide video on a network 1650, such as the Internet or an Intranet.
- hypervideo data may be exported by the authoring tool 1001, for example, into a media file 1680 or into a data stream 1660 that is parallel with streams of video and audio information.
- the data may be stored in enhanced video files.
- Enhanced video files include hypervideo information in the video file.
- One form of an enhanced video file, such as an AVI file may only include hotspot information.
- Enhanced video files may also be recognized in the hypervideo environment 1000.
- the authoring tool 1005 includes a graphical user interface (GUI) to facilitate authoring hypervideos.
- GUI graphical user interface
- a scripting language 1004 can also be used to author hypervideos.
- the GUI includes the following components: A Menu bar; A Media Warehouse window - which contains the media elements 1690 including the references to the media files 1680 in a hypervideo project;
- a Workshop window in which the user defines the hotspots, and links the hotspots to targets. From the Workshop window the user can also open the Preview, or Cinema, window to review the hypervideo project at any time.
- a Tools window which holds tools with which the user may define the hotspots and link 1010 the hotspots to targets;
- the authoring tool may include a menu bar to manipulate the Media
- the menu bar may include the following commands:
- File Handles file commands The file entity is either a hypervideo project file 1670 or a media file 1680.
- This operation closes the current file and opens its previously saved version.
- Import Media File Imports a media file 1680 or folder. This option lets the user select a directory and display all media files 1680 in that directory. The user can select one, several or all media files 1680 in the specified directory. See Figure 2. The user may drag and drop files or folders from an open import media file dialog into the Media Warehouse window.
- Import From Project Imports one or several media elements 1690 from a selected, existing project file 1670. This option lets the user utilize previously defined hotspots in the media elements 1690.
- the media elements 1690 are associated with the selected project.
- An imported media element 1690 includes all defined hotspots within the media element 1690. This command saves the user time when defining hotspots. See Figure 2.
- Import Cursor Imports cursors to a hypervideo project May be alternatively accessed by the browse command, described later. All cursors that are imported to the hypervideo project can be displayed in a cursor window.
- the cursor window can be a simple list view which enables the user to import new cursors into the project.
- the user can drag a cursor from the cursor window to the Hotspot Properties Sheet.
- Animated cursors may be shown in their animated form in the cursor window.
- the cursor data need not be stored in the project file 1670.
- Project Scheme Illustrates the story board 1116 created in the authoring tool 1001.
- Project Probabilities 1096 - Calculates and prints a report of the probability of reaching each branch in the hypervideo.
- Print Setup Sets up a printer. Standard dialog for setting up the print environment.
- the Cut command may be a multiple selection command, as described below.
- This action is context related. This means that when this command is used, the action performed by the authoring tool 1001 is related to the item that is selected (i.e., hotspot or media element 1690).
- the Copy command is a multiple selection command.
- Paste Paste Pastes the clipboard contents into the specified location. See the Cut command about context relation. Delete Del Deletes the selected item whether from the Media Warehouse window or the Workshop window. Select All Select all items. Applicable both to the Workshop and the Media Warehouse windows.
- Validate Validates a hypervideo project by searching for dead locks, errors, and minor authoring mistakes. This operation may generate a report that can be printed and reviewed by the user. Different levels of warnings are permitted.
- Partial View View of the media elements 1690 without their details Just the name of the file and a thumbnail are displayed.
- a certain type of media file 1680 e.g., video, sound, bitmap, etc.
- Preview Mode Enters preview mode in which the hypervideo project plays and permits navigation through the hypervideo with hotspots.
- Play / Pause Plays and Pauses the video displayed in the Workshop window. These commands appear depending on the state of the Workshop window. If Workshop window is playing a video, the command shows a Pause button.
- the Workshop window shows a Play button.
- Out Marks the currently displayed frame as default OUT for the media, such as video.
- New Hotspot Defines a hotspot of the selected shape (e.g., Elliptic,
- Settings May pop up a properties sheet with settings for all windows and the hypervideo project.
- the properties sheet may be used to define run-time details, including the size and position of the Preview window, as well as assign the base targets of the project.
- the base targets may play when the project is started.
- the user may drag video media elements, for example, from the Media Warehouse 1003 to the
- Targets, or Links page of the properties sheet.
- the properties sheet may permit controlling automatic tracking, hotspot colors and patterns (typically crosshatched), maximum number of polygon vertices and other workshop parameters.
- a hotspot may have three states: Selected, Deselected and Interpolated.
- the user can choose colors and patterns for each state.
- the maximum number of polygon vertices limits the number of vertices that may be used to define a hotspot in a freehand mode.
- dialogs for importing media files. Specifically, dialogs are launched when placing media elements 1690 into the media warehouse 1003 with the import media file and import from project commands. These dialogs are described below.
- FIG. 2 is an illustration of an exemplary Import Media File dialog 2001.
- the Import Media File dialog 2001 is launched upon the selection of the import media file command.
- the Import Media File dialog 2001 permits the user to view media files 1680 and import corresponding media elements 1690 into the media warehouse 1003.
- the user can import media elements 1690 in the following ways: 1. Import a media element 1690 corresponding to a media file into the media warehouse 1003. 2. Import media elements 1690 corresponding to media files 1680 in a directory or file folder into the media warehouse 1003.
- This dialog 2001 may use a multiple selection list.
- the Import Media File dialog 2001 may permit several files or an entire directory to be selected.
- the dialog may show a preview of the selected file, with the ability to execute, for example, a video, audio or bitmap media.
- Media files 1680 and folders may also be dragged and dropped, for example, from Explorer by Microsoft and other file managers.
- FIG 3 is an illustration of an exemplary Import From Project dialog 3001.
- the Import From Project dialog 3001 permits the user to view and import media elements 1690 from a hypervideo project file 1670 into the media warehouse 1003.
- a preview window may be opened to display both the hypervideo project and corresponding media files 1680 by actuating the Preview button. In the preview window, hotspots may be shown.
- the Import From Project dialog 3001 includes features of the Import Media File dialog 2001 described above.
- the hypervideo authoring tool 1001 may have a main tool bar.
- the main tool bar may float and can be closed.
- the main tool bar functions may include: New, Open, Save, Import Media File, Print, Preview, Copy, Cut, Paste, Media view formats, Options
- the Media Warehouse 1003 may contain media elements 1690 that are used to form a hypervideo project.
- Each media element 1690 may include a reference to a media file 1680 which could be video, bitmap, sound, or text.
- the pointer may also be directed to non-media, such as a uniform resource locator (URL), a hypertext markup language (HTML) file, or an executable file, as described above.
- URL may point to HTML file.
- the video and bitmap media elements may include hotspots that are linked 1010 to targets, such as other media files 1680.
- the Media Warehouse 1003 may be represented by a window on a display on a computer or television, for example.
- the Media Warehouse window displays a thumbnail of the contents of a media file 1680 pointed to by a media element 1690.
- the Media Warehouse window may permit the user to view the media elements 1690 in one of several views, including:
- Each media element 1690 has its own identification (ID) section in the Media Warehouse window.
- ID identification
- the media element's ID section, or icon, 4001 may consist of:
- the thumbnail illustration 4007 is a picture in the case of bitmap or video media files, and a waveform in the case of sound media files.
- the picture may show one frame, presumably the first frame, of the video media file.
- a media element 1690 includes at least one target
- the right side of the media element icon 4001 may be decorated by a token 4003, or link button.
- This token 4003 indicates that the media element 1690 is linked 1010 to a target, such as a media file 1680.
- the token 4003 may also be a button.
- the user may be presented with a pop-up window that shows all targets that are linked 1010 to the selected media element 1690. The user may drag the pointer over a target and actuate the mouse button. Then, the selected target may scroll up or down to the top left position in the Media Warehouse window.
- the pop-up window may then show any targets linked 1010 to the selected target.
- This method provides an easy and intuitive method to navigate through the files in the Media Warehouse window.
- the linked target pop-up window may be closed by actuating the mouse button when the pointer is over the token 4003 of the selected media element.
- Figure 4 shows an exemplary media element icon 4001 for a video in the Media Warehouse window.
- the token 4003 may be implemented as an icon, and not a button.
- the Media Warehouse window can be implemented as a common list view control.
- the authoring tool 1001 can show targets linked 1010 to hotspots in a manner that is more easily understood by a user.
- Hotspots rather than links 1010, can be viewed by manipulating the media element icon 4001. For example, when the pointer is positioned over a media element icon 4001 and the right mouse button is actuated, a menu of hotspots, rather than linked targets in the selected media element, is displayed. Then, the linked targets of each hotspot may be displayed.
- the authoring tool 1001 supports the 8, 16, 24, and 32 bit color modes. Thus, thumbnails and previews may be displayed in the color mode of the corresponding media file 1680, or alternatively, in the 24 bit color mode.
- the authoring tool 1001 may create a project file 1670 that defines the paths of media files 1680, corresponding to media elements 1690 in a hypervideo, relative to the path of the project file 1670.
- the common portion of the paths of the project file 1670 and media file 1680 is referred to as the static path 1163.
- the unique portion of the media file 1680 path is referred to as the relative path 1161.
- the project file 1670 and media files 1680 may be stored locally or remotely 1139. For example, the project file 1670 and media files 1680 may be moved to a different memory unit, such as disk drive, computer, or computer network, while keeping the relative path 1163 the same, then the project file 1670 does not require editing for the hypervideo to be performed. This will enable altering the drive letter or even the base path from which the hypervideo project is executed.
- Tool Tips A tool tip can be activated and display information about a media element
- the tool tip may show the full or relative path 1161 of the corresponding media file 1680.
- the tool tip may include other information, such as the type, and logical and physical size of the corresponding media file 1680.
- the Media Warehouse window may be implemented using a custom list view control from the Microsoft Windows 95 common controls.
- the list view may show the media elements 1690 in different views (i.e., with details or icons), and permits user manipulations of the lists, such as sorting and reordering.
- Each media element 1690 of the Media Warehouse window list corresponds to a media file 1680, such as a bitmap.
- the Media Warehouse window list is associated with an image list control that includes a thumbnail illustration 4007 and a description of the type of the media file 1680.
- the text of the Media Warehouse window list describes file parameters and are displayed to the user in a detailed view.
- the Media Warehouse window can be manipulated in the following ways.
- the user can, for example:
- sort media elements 1690 by category including media file 1680 type and size. Sorting may be performed by actuating the mouse button when the pointer is over the desired list view header. • Actuate the alternate mouse button to obtain a list of all targets linked
- a specific media file 1680 By selecting a specific target, for example, the user can access the corresponding media element 1690 in the list.
- the alternate mouse button can be actuated to perform the following functions, depending on the media file 1680 type of the media element 1690 that is selected.
- Links * ⁇ - May open a list of targets (e.g., media elements 1690) that are linked 1010 to the selected media element 1690. Choosing one of the linked targets will move the list to the selected target. Alternatively, a list of hotspots, not necessarily linked 1010 to targets, in the selected media element 1690 is displayed. Selecting one hotspot will display a list of the targets linked 1010 to the hotspot. The latter option enables fast and intuitive navigation through component media elements 1690 of a hypervideo project.
- targets e.g., media elements 1690
- the corresponding media element 1690 is placed before the selected media element 1690 in the list view window.
- the new media file 1680 can be previewed when performing the Insert function.
- the media list of the Media Warehouse window may support the following editing commands:
- the user can enable the Media Warehouse window to display only media elements 1690 corresponding to certain types of media files 1680, such as only video or sound files. Furthermore, the media elements 1690 in the Media Warehouse window can be manually arranged by the user. Typically, though, the media elements 1690 are automatically arranged.
- the Media Properties Sheet may be a Win32 properties sheet with tabs that represent each page in the properties sheet.
- the Media Properties Sheet may include a Details, or General, page.
- the Details page includes general file information relevant to the specified media type.
- Figure 5 illustrates an exemplary Details page 5001 of the Media Properties Sheet 5003.
- the Details page 5001 may include the file name and path of the media file 1680.
- the media file 1680 name and path may be too long to be viewed on the Details page 5001. Therefore, only the media file 1680 name may be displayed in the Details page 5001.
- the path may be displayed in a tool tip when the user moves a pointer over the file name.
- the Details page 5001 also may include default cursors of the media element 1690.
- the Details page 5001 may also inco ⁇ orate general file data such as size
- One section of the Details page 5001 may include data pertaining to the type 5019 of media file 1680 to which the corresponding media element 1690 and Media Properties Sheet 5003 are associated. Relevant data for different media file types 5019 is described below:
- Video - the pertinent data may include the length in seconds 5013, and the audio and video formats 5015, 5017. Another parameter is the manual tracking speed for the video. Each video may have an optimal manual tracking speed. The user may control the manual tracking speed with a slider.
- Bitmap - the pertinent data may include the pixel size of the bitmap, number of colors, and compression type if applicable.
- the second page of the Media Properties Sheet 5003 may be a Preview page.
- Figure 6 illustrates an exemplary Preview page 6001 for a video. Videos may, for example, be displayed in either 320 by 240 or 160 by 120 pixel areas. Bitmaps may be viewed in a fixed pixel area of 160 by 120. Audio emissions and video frame display may be controlled with a slider 6007 to manipulate the audio and video file advances, and also possibly to display a corresponding waveform of the audio file. Text may be shown in a scrolled window.
- the third page of the Media Properties Sheet 5003 may be the Targets, or
- Links, page. Figure 7 A illustrates an exemplary Targets, or Links, page 7001.
- the user can view a list of targets 7003 that are linked 1010 to hotspots in the selected media element 1690.
- the Targets page 7001 also includes an Add Target button 7005.
- the user actuates the Add Target button 7005 and holds the mouse button down just as if the user were clicking the video hotspot in the Set Target mode.
- the cursor changes to the Set Target cursor, and the process of setting a target begins as will be subsequently described.
- Other methods for linking 1010 targets to hotspots may be used.
- the Media Properties Sheet 5003 may also have a Hotspot page 7011, exemplified in Figure 7B, that illustrates the hotspots in a selected media element 1690.
- the Hotspot page 7011 may display a list of hotspot locations in thumbnail illustrations 4007.
- the thumbnail illustration 4007 may be the first frame in which the hotspot appears. Placing the pointer on a thumbnail illustration 4007 of a selected hotspot in the list and actuating, for example, by double clicking, the mouse button may cause a corresponding Hotspot Properties Sheet to be opened.
- the Hotspot Properties Sheet 7101 may include the Targets page 7001, which, in this case, may only display a list of targets 7003 linked 1010 to the selected hotspot.
- the Hotspot Properties Sheet 7101 may also include a General Properties page 7103 exemplified in Figure 7C.
- the General Properties page may include the hotspot name 7103, type of shape 7105 defining the hotspot, media file name in which the hotspot is located 7107, the range of frames in a video media file in which the hotspot 8003 is located 7109, and cursor types.
- the cursor types include the cursor displayed when the pointer is over the hotspot 7111, and the cursor displayed when the mouse button is actuated when the pointer is over the hotspot 7113.
- the Workshop 1005 may be used to define hotspots 1023 and create links 1010 between hotspots and targets. Hotspots, for example, may be created in videos and bitmaps. The project may be viewed in the Preview, or Cinema, window. The Workshop 1005 is displayed in a Workshop window that may have a toolbar window attached to it. The Workshop window changes in accordance with the tool selected from the Tools window. The Workshop window has an interface that permits selecting a specific frame in a video, and forwarding or reversing the displayed video frame. When displaying bitmaps, video frame position controls are disabled.
- Figure 8A illustrates an exemplary Workshop window 8001 displaying a frame 8013 of a hypervideo.
- the user may define and edit hotspots 8003 in video, for example, and link 1010 the hotspots 8003 to targets 7003.
- the user can preview the hypervideo project by toggling the Preview, or Cinema, switch 8005 to the ON position to pop up the Preview window.
- the Preview switch 8005 may, however, be a button.
- the Workshop window 8001 may include the following features items: Play button 8007 - plays and pauses a video.
- the play button as for many player interfaces, turns into a Pause button while the video plays.
- Home (or In) button - displays the IN frame (default is the first video frame).
- End (or Out) button - displays the OUT frame (default is the last video frame).
- Slider 6007 - permits the user to select a desired frame of a video. The frames of the video are displayed as the slider is moved.
- Frame 8011 +/- buttons - respectively moves one frame 8013 forward (+) and backward (-), and is useful for pinpointing a particular frame.
- Scale Information - gives the user frames/time information.
- Preview switch 8005 - opens the Preview window.
- the Workshop window 8001 may serve as a video viewer. With the Tools window, a user can also use the Workshop window 8001 to define hotspots 8003 and links 1010 to targets 7003. The Preview and Tools windows will now be described.
- the Preview window is a hypervideo player in the authoring tool 1001.
- the user can execute targets by activating, or actuating, hotspots in the hypervideo, for example.
- the Preview window 8101, illustrated in Figure 8B, may be similar to the Workshop window 8001 except for the fact that it is a video viewer that may not permit editing. In this case, the IN/OUT and Preview 8005 switches are absent.
- Hotspots 8003 are defined in media, such as video or bitmaps, in the Workshop window 8001 with the methods described below.
- the Tools Window is defined in media, such as video or bitmaps, in the Workshop window 8001 with the methods described below.
- the Tools window 9001 includes one or more dockable toolbars that are used to define hotspots 8003 and link 1010 hotspots 8003 to targets 7003.
- Figure 9 A illustrates an exemplary Tools window 9001.
- the Tools window 9001 may be attached to the Workshop window 8001.
- the Tools window 9001 can dock on any side of the Workshop window 8001.
- the Tools window 9001 is a toggle toolbar. Thus, only one button (i.e., mode) can be used at any instance of time.
- the Pick Hotspot button 9003 may be the default selection mode of the Tools window 9001. Each selected mode changes the behavior of the Workshop window 8001.
- the Tools window 9001 modes will now be described:
- the Pick Hotspot mode 9003 permits the user to select and manipulate a defined hotspot 8003. In this mode, the user can:
- the Define Hotspot mode 1025 permits definition, or segmentation, of new hotspots 8003.
- the hotspot is then defined by drawing the desired shape 91037.
- the user may select a primitive shape 1039 from the Tools window 9001 shown in Figure 9A.
- the primitive shape 1039 may be, but is not limited to, an ellipse 9009, a triangle 9007, or a rectangle 9005.
- the primitive shape 1039 may be default-sized. However, a polygon 1041 may also be selected.
- the user may then place the selected shape in the media in the Workshop window 8001.
- the Tools window 9001 may automatically switch to the Pick Hotspot mode 9003. Then, the user can manipulate the size and position of the selected shape to define the hotspot 8003.
- the hotspot' s geometric form may be defined.
- Hotspots 8003 having the shape of a polygon 1041 can be defined, for example, in one of three ways:
- Hotspots 8003 having the shape of a polygon can be re-sized using a bounding rectangle or by moving each vertex of the polygon. The user can select either mode in the Workshop window 8001.
- a new hotspot 8003 may be given a default name, which may be changed later.
- the hotspot name may be added to a list of defined hotspots 8003 in the Workshop's Tools window 9001, which may also include a Hotspot toolbar. If the user double-clicks the mouse button when the pointer is over the hotspot 8003, the Hotspot Property Sheet 7101 may be displayed. In the Hotspot Property Page, the user can assign a different name to the hotspot 8003, and the cursors that are to be used when the pointer is positioned over the hotspot 8003 or when the hotspot 8003 is activated.
- the Hotspot toolbar allows the user to select a hotspot 8003 and display the first frame in which that hotspot 8003 appears in a video.
- the user can also open the Hotspot Property Sheet 7101 from the Hotspot toolbar as well as delete the currently selected hotspot 8003 and all of its occurrences.
- the Magic Wand 9011 is used to define a hotspot 8003 automatically 1033, rather than with shape drawing 1037.
- the Magic Wand 9011 searches for edges around the pixel 1049 that define a new hotspot 8003 or modify a pre-existing hotspot 8003.
- the Magic Wand 9011 may use either the rays or flood-fill algorithms 1051, 1053. With the flood-fill algorithm 1053, flooding can be performed based upon either the Red-Green-Blue (RGB) or luminance values of pixels.
- the flooding may be performed within a tolerance range of RGB color or luminance values around respectively an initial RGB color or luminance value of the pixel. As a result, all pixels surrounding the initial pixel with a RGB or luminance value within the tolerance range will be flooded.
- the tolerance range can be modified by the user.
- Flooding may require a line-table hotspot type. Hotspots 8003 may be added or subtracted from one another to create hotspots 8003 of complex shapes. New hotspots may be created by uniting, or adding, multiple hotspots with one another, subtracting one hotspot 8003 from another, or by intersecting multiple hotspots.
- the flood-fill algorithm 1053 may also permit incremental hotspot definition by adding newly flooded areas to areas that are already flooded.
- the flood-fill algorithm 1053 may also permit flooding out areas that are already flooded.
- the user can interact with the flood-fill algorithm 1053 with a floating menu or the alternate mouse button.
- the rays algorithm 1051 With the rays algorithm 1051, imaginary rays in different directions are launched either outwards from an initial point, or from the hotspot 8003 borders inwards towards the initial point.
- the rays algorithm 1051 searches along the rays for intersections with the region of interest borders, or edges, that will define the hotspot 8003.
- the edge points along the rays will be scored using different edge scoring algorithms. Upon completing score, a point on the ray may be selected that either has the best score or is the first point to have score that exceeds a threshold value. When intersection point is found, the intersection point is selected as a new polygon vertex.
- the number of rays used to define the hotspot 8003 can be modified by the user.
- the Magic Wand 9011 can also use edge-enhancing filters 1043 using threshold 1045 and spatial derivative 1047 techniques, prior to using the edge detection algorithms.
- the Workshop window 8001 may permit zooming within a frame to define hotspots 8003 more accurately. This feature may be particularly useful for creating a hotspot 8003 in the shape of a polygon 1041 with, for example, the magic wand 9011 or freehand drawing.
- Hotspots 8003 can be merged over a selected range of one or more frames in a video. Additionally, the user can remove a hotspot 8003 from a group of merged hotspots.
- the user interface for merging hotspots 8003 can be inco ⁇ orated into either the Workshop window 8001 or the menu bar. A dialog may be used to enter data pertaining to merged hotspots.
- Inte ⁇ olation 1027 permits a user to quickly create hotspots 8003, for example, in a range of video frames.
- One embodiment of creating a hotspot 8003 with inte ⁇ olation 1027 will now be described.
- the user defines the hotspot 8003 in a selected initial, or first, video frame, and presses the Inte ⁇ olate From button 9002. As a result, the hotspot' s color changes.
- the user defines the hotspot 8003 in a selected last, or second, video frame, after the initial video frame, of the desired range, and presses the Inte ⁇ olate End button 9004.
- the hotspot 8003 is defined by inte ⁇ olation of size and position in the desired range of video frames.
- inte ⁇ olation 1027 is performed with linear inte ⁇ olation.
- the Inte ⁇ olate From and End button 9002, 9004 may, for example, be part of the Tools window 9001.
- the user can also define the hotspot 8003 in one or more selected intermediate frames between the initial and last video frames.
- the hotspot is defined by inte ⁇ olation, such as linear inte ⁇ olation, between each successive selected video frame.
- a hotspot 8003 may be defined by inte ⁇ olating between two different shapes, for example, in two different frames of a video.
- the hotspot can be tracked 1029 through successive frames. Tracking may be performed manually 1035 or automatically 1061. Hotspots can be tracked while the video is playing in reverse.
- Manual tracking 1035 permits the user to control the placement and size of the hotspot 8003 in each frame of the video.
- An exemplary method for manual tracking 1035 will now be described.
- the user selects a hotspot 8003 by depressing a (e.g., left) mouse button.
- the user actuates, such as by clicking, the (e.g., right) alternate mouse button.
- the video will then start playing frame by frame at the specified tracking speed set in the video's Media Properties Sheet.
- Manual tracking 1035 is performed as long as the user keeps the mouse button depressed.
- the user toggles 1057 between executing and pausing manual tracking 1035 by respectively depressing and releasing the alternate mouse button.
- the user can manually move, or slide, 1055 the hotspot 8003 position 1059 about the Workshop window 8001 by moving a mouse, for example, while the video is playing.
- the user can resize 1059 the hotspot 8003 with the arrow keys while manual tracking 1035 is being performed.
- the hotspot 8003 Upon releasing the mouse button, the hotspot 8003 will remain selected. However, the Workshop window mode changes automatically to Pick Hotspot mode 9003. In this mode, the user can resize and move the hotspot 8003. Also, the user can then continue to track the hotspot 8003 either manually 1035 (described above) or automatically 1061. The user can freely switch between manual and automatic tracking. If the user wants to redefine an existing hotspot, the user can select the Pick Hotspot mode 9003 and again track, manually and/or automatically, the selected hotspot.
- Automatic tracking 1061 is activated from the Tools window 9001.
- a hotspot 8003 in an initial frame must be selected to be tracked.
- a new view window is opened and the tracking results are displayed there.
- multiple hotspots 8003 can be simultaneously tracked in separate tracking windows.
- the hotspot 8003 may then be defined in succeeding frames until the automatic tracking 1061 is halted.
- the view window may close and the Workshop window 8001 is updated with the frame at which the automatic tracking 1061 halted.
- Automatic tracking 1061 of a hotspot 8003 is accomplished with image- processing algorithms.
- Both the location, or position, and size of a hotspot 8003 may be automatically tracked 1061 over a range of frames in a video.
- Location tracking 1073 identifies and follows any changes in the location of the tracked hotspot.
- Size tracking 1069 identifies and follows any change in the size of the region of interest corresponding to the hotspot 8003.
- Size tracking 1069 may include a resizing algorithm 1071 to efficiently create resized copies of the frame or the region of interest, which may be defined by a bounding rectangle. Size changes are usually due to a change in perspective like zooming. Size tracking 1069 can be disabled in a Tracking Property Sheet 9101, exemplified in Figure 9B, for example, with a flag 9103.
- Automatic tracking 1061 is performed with tracking algorithms 1063, which may include methods of selective enumeration 1065 and scoring 1077.
- Selective enumeration 1065 may be performed for each frame to determine the new position and size of the hotspot 8003, described above.
- Selective enumeration 1065 may be performed for each frame with a steepest, or gradient, descent algorithm 1067 to postulate hotspot 8003 size and position.
- Selective enumeration 1065 usually avoids enumerating all possible locations and sizes, thus increasing the speed of the automatic tracking 1065 process.
- Using the steepest descent algorithm 1067 a path will be found to the hotspot position and size having the best score usually without having to enumerate all possible hotspot 8003 positions and sizes. This technique is efficient for determining hotspot 8003 size and position that greatly differ from the hotspot 8003 size and position in a previous frame.
- Automatic tracking 1061 may be stopped and tracking failure may be declared if the selective enumeration 1065 reaches a maximum offset without a minima being found by the gradient algorithm 1067, or if the best score found does not exceed a threshold beyond the average score of all enumerations.
- the part of the shape still in the frame may be enumerated with a boundary compensation algorithm 1075.
- Hotspot matching 1079 may measure the correlation, or similarity, of two hotspots in the following way.
- Shape iteration 1085 may be used to enumerate efficiently the respective pixels in the postulated hotspot and the hotspot in the previous frame, and to calculate the sum of the differences between each set of two corresponding pixels in the postulated hotspot and the hotspot 8003 defined in the previous frame. A smaller sum indicates a high similarity between the postulated hotspot and the hotspot 8003 in the previous frame.
- the difference can be measured either by calculating the luminance delta 1083 of the corresponding pixels, or by calculating the RGB maximum delta 1081, otherwise known as the maximum norm of the RGB delta values, of the corresponding pixels.
- a simple scoring average may be calculated and compared against a best score. If the best score does not differ dramatically from the average score, the automatic tracking 1061 process will declare a failure.
- normalized scoring using variance and weighted score averaging can also be used.
- the tracking process can be improved by filtering each frame. For example, smoothing or four pixel filters can be used. Special filters can be assigned to specific tracking algorithms 1063 and scoring 1077 methods.
- Scoring efficiency can be enhanced by using the signature 1087 of the tracked hotspot.
- the hotspot signature 1087 may be a characteristic of the hotspot 8003 in the first frame the hotspot 8003 was defined.
- the signature 1087 can be the offset between the center of mass 1089 and the geometric center of the hotspot 8003.
- the RGB or luminance content of each pixel is used to determine the mass of each pixel.
- the hotspot's pixels may be enumerated using shape iteration 1085.
- the benefit of using a signature 1087 is that the score may be calculated by comparing data from the current frame with the signature of any previous frame. Hence, the pixel data of the entire previous frame need not be stored.
- Smart scoring can also be used. With smart scoring, the scoring system learns from each tracking step. For example, relying upon temporal coherence 1086 of a moving hotspot, the hotspot motion can be evaluated and new suggested positions and sizes for the hotspot 8003 may be estimated in accordance with the motion trend of the hotspot trends.
- Polygons can be automatically tracked 1061 using different techniques, including those described below. First, the bounded rectangle around a polygon can be tracked, and the polygon moved, as is, to the new tracked location.
- the magic wand 9011 algorithms can be used to adjust the polygon shape after tracking, as described above in the first technique.
- a third alternative is to use a shape iterator 1085, discussed above, for a polygon, and an inflating or resizing algorithm 1071 to track and directly score the size and position of the polygon.
- the user can create a hypervideo that is nonlinear 1009 by linking 1010 a hotspot in a source media to one or more targets 7003.
- a target 7003 may be a playing instance of a media element 1690 including certain parameters exemplified below.
- Nonlinear authoring 1009 may permit source media and targets to be executed and terminated in a variety of ways, as will subsequently be described.
- the hypervideo includes one or more base targets, such as a video target, that are executed when the hypervideo commences.
- Targets 7003 may, for example, be media elements 1690 or static targets 1022.
- Media element 1690 targets may include, but are not limited to: 1.
- Video 1011 - may be used as hotspot containers from which the user can hyperlink to media.
- Video targets 1011 i.e., video media files
- the hypervideo environment 1000 supports video formats including, but not limited to, Video for Windows (AVI), QuickTime (MOV), motion JPEG and MPEG I and
- Video targets 1011 may, for example, be in any format for which an MCI driver is available.
- Sound 1015 - may be used, for example, as a connecting segment between two videos.
- a sound target 1015 can be a vocal announcement when the user actuates a mouse button when the pointer is over an image, for example, of a person.
- Supported sound target 1011 i.e., sound media file
- Picture 1013 - may be used as hotspot containers from which the user can hyperlink to media.
- Supported picture target 1013 i.e., bitmap media file
- Supported picture target 1013 i.e., bitmap media file
- Text 1017 - may be used, for example, as a connecting segment between two videos. Text targets 1017 may appear in boxes, such as message boxes. Text targets 1017 can be in, but are not limited to, a TXT or RTF file format, or stored directly in the project file 1670. Text targets 1017 may be displayed with bitmaps also.
- Executable 1021 - may be used to launch an executable program (e.g.,
- HTML File 1021 - may be opened with a browser (e.g., Internet browser for the World Wide Web) or an OLE control for viewing an HTML file.
- a browser e.g., Internet browser for the World Wide Web
- OLE control for viewing an HTML file.
- URL Addresses 1021 - may be targets created with the authoring tool 1001 and stored as text. Upon activation of this target
- a browser such as an Internet browser, may be launched to access the URL.
- Targets may also include, but are not limited to other applications and processes, communications links to other computers, function menus, high definition television signals, and virtual reality environments.
- a static target 1022 is not a media element 1690, but controls a media element 1690 in a hypervideo project.
- Static targets 1022 include:
- Exit Target - Exits the hypervideo, closes the video window, and returns control to the system or application that started the hypervideo player.
- Pause Target - Pauses the hypervideo and causes a play button to pop up that enables the user to continue playing the hypervideo by actuating the button.
- Other targets 7003, external to the hypervideo authoring software, may also be accessed.
- External targets may be accessed through a DLL file complying with API requirements to permit an open architecture for the hypervideo environment 1000.
- Targets 7003, such as media can be stored on servers 1655 on local or wide area networks 1650, 1115.
- media such as video
- high capacity storage devices such as, but not limited to, digital video, or versatile, disks (DVDs) 1159.
- a user may link 1010 a target 7003 to a hotspot 8003 by the following method:
- the Set Target movement is a drag-and-drop action. 3. While continuing to hold down the mouse button, drag the new cursor onto the Media Warehouse window and the selected media element 1690 that is to be the target 7003. When the user moves the pointer to a border of the Media Warehouse window, the contents of the Media Warehouse window scroll without releasing the mouse button. The cursor may be changed when a media element 1690 is selected as a target 7003.
- a Target Properties Sheet 7703 may pop up when the mouse button is released. The user may then enter the properties of the target 7003 into the Target Properties Sheet 7703. Other techniques to link 1010 a hotspot 8003 to a target 7003 may be used.
- Each hotspot 8003 can have multiple targets 7003.
- one or more targets 7003 can be executed or activated. Multiple targets 7003 can be executed sequentially, in parallel or a combination thereof.
- multiple targets 7003 can be executed in different levels 7601 (e.g., 1, 2, 3, etc.). Levels permit the multiple targets 7003 to be played simultaneously (same level) and sequentially (ascending levels). Each level has a Leader target 7602 which upon ending terminates all other targets 7003 in its level.
- the targets 7003 can be positioned and displayed on a time line 7701, exemplified in Figure 7D. As a result, one target 7003 can be initiated during the performance of another target 7003.
- the time line 7701 can be illustrated on a story board page 7705 of the Target Properties Sheet 7703.
- the Target Properties Sheet 7703 which may include a target dialog for the selected media element 1690, may be opened and a new target 7003 is created.
- the Target Properties Sheet 7703 may include a details page that lets the user enter target parameters.
- the Details page 7801 exemplified in Figure 7E, may include target 7003 parameters that are unique to the selected media type and permit nonlinear authoring 1009.
- the user may choose whether the source media, such as video or bitmap, from which the target 7003 was launched, should Pause, Close or Keep Playing 7807 when the target 7003 is executed.
- the user may also specify how a target 7003 is terminated 7805. Options include:
- a second, optional page in the Target Properties Sheet 7703 is a frame window 7901, exemplified in Figure 7F, much similar to the preview page 6001 in the Media Properties Sheet 5003.
- the Target Properties Sheet 7703 includes, for some of the media types, a Range, or Frame, window that lets the user specify a segment of the target media that will be played. This option may be applicable to video and audio targets 1011, 1015.
- the frame window 7703 unlike the preview page 6001, lets the user define the IN and OUT frames and times 7903, 7905 for video and audio media files, respectively, to determine starting and stopping frames and times for playing those media files.
- the Target Properties Sheet 7703 may also include a Display properties page 7950, for example, for visual media types, including, but not limited to, video and bitmaps.
- Display properties page 7950 the user may choose how the target 7003 will be projected to the user, as described in the following tables.
- Bitmap targets 1013 may have a Place Properties page in their Target Properties Sheet 7703, exemplified in Figure 7G, that permits the user to position a Bitmap over a source element, such as a video.
- Target Properties Sheet 7703 Upon entering target parameters into the Target Properties Sheet 7703, the user may press one of the following buttons:
- Pop Window Check Box Specifies whether the video target 1011 is executed, or played, in the main video window of the hypervideo project or pops up in a new window. TRUE means the target pops up in a new window. Default setting is FALSE.
- Move Check Box In case a pop-up window is selected, indicates whether the pop-up window should be moved when the user resizes the main video window.
- Resize Check Box In case a pop-up window is selected, indicates whether the pop-up window should be resized when the user resizes the main video window.
- the RECT contains the format: left top width height. In case the width and height are absent, the default is the original size of the video.
- Ending Combo Box Indicates what action to take when the video target 1011 ends playing. The options are:
- the default option is Continue.
- the In and Out options are supported by a slider 11 ,004 that controls the display of the video. The user moves the video to the desired frame and clicks the appropriate button. In case the In marker is placed after the Out marker, the authoring tool 1001 may ask the user whether the markers should be swapped or deleted. Spatial-Temporal Relative Links
- Nonlinear authoring 1009 may also permit targets 7003, such as video targets 1011, to be linked 1010 to temporal 1014, in addition to or in alternative to spatial 1012, coordinates of a hotspot 8003 in a source media.
- targets 7003 such as video targets 1011
- temporal relative link 1014 a base frame in a video target 1011, for example, is defined for the first frame in which the hotspot 8003 appears in the source media element. In later frames of the source media element, the hotspot 8003 is linked 1010 to successive frames in the video target 1011 that are temporally related to the base frame.
- the position, and possibly the size, of the executed, or displayed, video target 1011 is relative to the hotspot' s position or to the pointer's position when the hotspot 8003 is activated.
- the run-time module 1101 needs the top left coordinates and the width and height of the bitmap window.
- the RECT contains the format: left top width height. In case width and height are absent, the default is the original size of the bitmap.
- Ending Combo Box Indicates what to do when the bitmap target 1013 is no longer displayed. The options are:
- transition effects including, but not limited to, the following, can be selected.
- the bitmap may grow from the middle or side of the display window.
- the bitmap may slide from the side of the display window.
- the bitmap may evolve from the hotspot.
- the bitmap may spirally grow on the display window.
- Sync Check Box Specifies whether the hypervideo plays or pauses while the audio target 1015 plays.
- Mix Check Box Indicates whether to mix the audio data with other data that is presently playing, or play the audio data "on top" of other data.
- Ending Combo Box Indicates what to do when the audio target
- Audio targets 1015 can include the transition effects of fading in and out.
- Audio tracks of several different media playing simultaneously may be mixed together.
- the run-time module 1101 needs the top left coordinates and the width and height of the bitmap window.
- the RECT contains the format: left top width height. In case width and height are absent, the default is the original size of the bitmap.
- Font Combo Box The name of the font. Default may be Arial.
- Size Combo Box The size of the text.
- Duration Milliseconds The duration in milliseconds that the text target 1017 is displayed.
- Infinite Check Box Toggle between this parameter and the Duration parameter.
- the message pops up as a message box and the user may actuate an OK button in order to exit this message box.
- Sync Check Box Specifies whether the hypervideo should stop and wait for the duration of displaying the text to pass. The default is TRUE. In case the Infinite flag is ON, the Sync flag turns ON too.
- Ending Combo Box Indicates how to terminate the display of a text target 1017.
- the options are:
- the default option is Continue.
- Text targets 1017 can include the transition effect of evolving letter by letter. Executable Targets Name Type Description
- Command Line Edit Box Text describing the command line for the executable target 1021.
- the run-time module 1101 needs the top left coordinates and the width and height of the executable window.
- the RECT contains the format : left top width height.
- Sync Check Box Specifies whether the hypervideo should stop and wait for the duration of opening the executable target 1021 to pass. The default is TRUE.
- Ending Combo Box Indicates what to do when the executable target 1021 ends execution. The options are:
- One hotspot 8003 in one frame Multiple hotspots 8003 in one frame;
- One hotspot 8003 over multiple frames (using the shift key, and the slider or arrow keys);
- Deleting a hotspot 8003 Editing, such as cutting, copying and pasting; Defining a hotspot 8003 in more frames;
- Hotspot 8003 Defining a new hotspot 8003; and Moving a hotspot 8003. • Cut, Copy, Paste and Paste New - implemented to work for one or more selected hotspots for one or more frames. A user can cut and copy a selected hotspot and paste it on a different frame. Hotspots 8003 created with the paste command retain their original identity. However, hotspots 8003 created with the Paste New command have new identities.
- Hotspot - will delete selected or entire instances of a hotspot 8003 in a media element 1690. Deletion can be performed on selected hotspots. When deleting all instances of a hotspot 8003, the hotspot will automatically be deleted throughout the media element 1690. When deleting selected instances of a hotspot 8003 in the authoring tool
- the hotspot must remain selected.
- the alternate mouse button By actuating the alternate mouse button, different sets of commands can be accessed.
- the type of command set accessed depends upon whether or not the pointer is over a hotspot 8003.
- the alternate mouse button may access the following commands: Hotspot Properties Go To First Frame • Cut
- actuating the alternate mouse button may access the following commands:
- Hotspots 8003 should maintain a z-order among themselves when one hotspot 8003 overlaps another hotspot 8003. The user may place one hotspot 8003 in back or in front of another hotspot 8003. Selecting a hotspot 8003 will not automatically bring it to the top of the z-order. This option may be supported by one or more of the following portions of the hypervideo environment 1000: the project file 1670, the authoring tool 1001, or the run-time module 1101.
- the Workshop window may provide the option to preview a hypervideo being edited in that window.
- the slider 6007 in the Workshop window permits the user to select and display one frame of a video.
- the Workshop Toolbar and Hotspot Toolbar may be floating.
- the toolbars can hook to the sides of the Workshop window.
- the orientation of the toolbars may be changed from horizontal to vertical.
- the toolbars may be displayed in a double vertical format.
- the inte ⁇ olation buttons may be placed in the Workshop Toolbar.
- GUI Figure 10 illustrates an exemplary graphical user interface (GUI) 10,001 of the authoring tool 1001.
- the authoring tool's GUI 10,001 includes the menu bar 10,005, the main tool bar 10,009, the Media Warehouse window 10,003, the Workshop window 8001, and the Tools window 9001.
- a hypervideo 10,007 is shown in the Workshop window 8001.
- the project view 1007 illustrates the hypervideo story board 1116, shown in Figure 11, which illustrates the base target 11,001 and targets 7003 linked 1010 to hotspots 8003.
- Icons 11,003 illustrating a thumbnail illustration 4007 of hotspots 8003 in the targets 7003, 11,001 are appended to the corresponding base target 11,001 and other targets 7003.
- Targets 7003 corresponding to the hotspots 8003 illustrated by the icons 11,003 may then be appended to the icons 11 ,003.
- the branch 11 ,005 of an icon 11 ,003 that has already been displayed in the story board 1116 may terminate. Branches 11,005 to targets 7003 of newly displayed icons are shown. In this way, the user can view the hotspots 8003 and targets 7003 of all media elements 1690 in the hypervideo project.
- the run-time module 1101, illustrated in Figure IB, is used to play one or more hypervideos simultaneously.
- the run-time module 1101 utilizes the data in the project file 1670.
- the run-time module 1101 can be used to play hypervideos 10,007 with different applications, including, but not limited to, Director5 by Macromedia Inco ⁇ orated (San Francisco California), Shockwave by Macromedia Inco ⁇ orated, VDOLive by VDOnet Co ⁇ oration (Palo Alto, California), Netscape Navigator by Netscape Communications Co ⁇ oration (Mountain View, California), and Internet Explorer by Microsoft.
- the player interfaces 1102 include, for example:
- plug-ins 1103 for applications such as those described above e.g., Director5 and Netscape
- OLE control such as ActiveX (OCX)
- 1105 for example, to integrate with Visual Basic environments by Microsoft Co ⁇ oration
- stand-alone modules 1107 such as a stand-alone player inco ⁇ orating the player interface 1102;
- the run-time library 1113 permits the hypervideos 10,007 to be played.
- the run-time library 1113 may include four elements, exemplified below:
- the project inte ⁇ reter 1117 manipulates an object database 1127.
- the object database 1127 may include an object tree which will be subsequently described. Logging information and preparing statistics 1147 pertaining to the hypervideo project execution can be recorded.
- (2) Administration including manipulation, for example, of media necessary for the execution of a hypervideo project is provided by a media manager 1125, including an active media stack 1141, a cache 1143 of media that have been previously activated, and a look ahead system 1145 containing media that are expected to be activated.
- the media manager 1125 is used to manipulate media files, e.g., opening, playing and closing media files 1680.
- the media manager 1125 reduces the time to open a file, by keeping track of the opened files and using the look-ahead system 1145 to load new media files 1680 that may potentially be requested by the user.
- the newly loaded files are added to the object tree, subsequently described.
- Manipulation of the hypervideo project can be achieved through an interface 1119 by activation feedback 1129, and display and sound mechanisms 1131 Activation feedback 1129 permits control of the hypervideo project by user or programmatic actions 1149, 1151.
- Programmatic actions 1151 may be implemented in software, such as by the use of scripting languages 1004.
- a programmatic action 1151 may include the use of notification frames 1157, subsequently described.
- a user action 1149 may include actuating a hotspot 8003, while a hypervideo project is being displayed, by, for example, actuating a mouse button, when the pointer is over the hotspot.
- a target 7003, such as a media element 1690 may be executed.
- Network communications capability 1115 for example on the Internet or an Intranet, that permits implementing the run-time module 1101 in a client-server architecture 1121.
- the client-server architecture 1121 may permit the run-time module 1101 to support multiple users 1133.
- the client-server architecture 1121 may also permit the run-time module 1101 to support streaming of video and other meta-information.
- a queue manager 1137 manages a stream of information, including hypervideo information, being transmitted between the client and the server 1121.
- the run-time module 1101 may support the following commands:
- This operation may also modify the display window of the hypervideo project according to submitted window parameters.
- the window parameters include window size, position, z-order and hierarchical status.
- a callback object 12,001 may be supplied when using this command.
- Stop project Stops a playing hypervideo project.
- An application may include a call-back object 12,001, exemplified in Figure 12.
- Call-back objects are otherwise known as call-back windows or callback functions.
- the call-back objects 12,001 couple the run-time library 1113 to an application 12,003, which may include the stand-alone module 1107 or other applications described above.
- the call-back objects 12,001 facilitate communications between the run-time library 1113, and the application 12,003.
- a call-back object 12,001 receives information, in the form of messages or function calls, upon the occurrence of certain events when a hypervideo 10,007 is performed.
- the call-back object 12,001 communicates the information to the application 12,003.
- the events are listed in the following section describing Event Notification 1114.
- the application 12,003 can initiate actions in a hypervideo 10,007 through a call-back object 12,001.
- object in this paragraph and subsequently in section 2.2 refers, not to hotspots 8003, but to objects in object oriented programs.
- the run-time library 1113 supports notification of call-back objects 12,001 upon the occurrence of certain events (1114). Upon such event notification 1114, call-back objects may present certain return values to the runtime library 1113, or initiating actions of the type listed below. Events include:
- Hotspot related events - these events include:
- Hotspots may respond to this notification, for example, by specifying a cursor to be displayed.
- Call-back objects 12,001 may respond to any one of these hotspot-related events.
- Media Related Events These events include:
- Start or end of a media when a media is activated or deactivated.
- the start and end of the media may not be the first and last frames of the media, but rather the first and last frames of the media that are displayed.
- Certain frames of a media may be marked during hypervideo project authoring, or during run-time, as notification frames 1157.
- the run-time library 1113 notifies the call-back objects 12,001.
- Target Related Events - Specific targets may be marked for notification. Before activating, or executing, such targets 7003, call-back objects 12,001 are notified. This notification allows the hypervideo 10,007 to abort the target 7003 execution or commence different related actions.
- applications 12,003 which reference the hypervideo project may initiate two kinds of actions:
- Target 7003 Activation - whereby an application 12,003 can force the playing hypervideo 10,007 to launch, or execute, a certain target by creating a new target 7003 or by activating, or actuating, a hotspot 8003 linked 1010 to a previously defined target 7003.
- Changing cursors - an application 12,003 may change the cursors associated with a particular hotspot. These cursors include cursors that are used when a pointer is passed over the hotspot 8003 or when a mouse button is actuated when the pointer is over the hotspot 8003. • Enabling or disabling hotspots 8003 - an application 12,003 can disable or enable a hotspot 8003. A hotspot 8003 can be fully or partially disabled. With full disabling, a defined hotspot 8003 is completely ignored. With partial disabling, specific hotspot 8003 functions are disabled, such as predefined targets 7003, notification, and hotspot visualization 1155, for example. • Replacing the base targets 11 ,001 - whereby an application
- 12,003 can redefine the hypervideo base targets 11,001 which are played when the hypervideo 10,007 begins. This function may be invalid once hypervideo 10,007 has commenced playing. Marking notification frames 1157 - whereby at run time, the application 12,003 marks frames for which notification is requested.
- an application 12,003 can retrieve at any given time the currently playing media(s) and its/their current position(s) (e.g., frame or time).
- the run-time module 1101 may include an MCI Driver 1109 as one of the player interfaces 1102 to permit the playing of hypervideos 10,007.
- the MCI driver 1109 may allow Window applications to play hypervideos 10,007, using the Multimedia Control Interface (MCI) by Microsoft.
- MCI Multimedia Control Interface
- An application 12,003, requesting to play a hypervideo 10,007, may send the appropriate MCI commands.
- the MCI may translate these commands into messages and send them to the MCI driver 1109 corresponding to the file type that is being acted upon.
- the corresponding MCI driver 1109 may recognize these messages and direct the run-time library 1113 appropriately.
- the MCI driver 1109 may also process user input, for example, from a mouse or a keyboard. In order to respond correctly to both sources of input, the MCI driver 1109 includes the following two components:
- the objects 13,002 and object tree 13,004 may also be used with player interfaces 1102, including the MCI driver 1109, described above.
- the MCI driver and window procedures will now be described in more detail to exemplify the use of objects 13,002 and the object tree 13,004.
- the MCI driver 1109 may be designed to respond to the messages sent to it by the system. These messages may include general driver messages, and MCI- specific messages.
- the MCI messages are inte ⁇ retations of the messages sent by an application.
- the messages handled by the driver include: MCI OPEN, MCI_PLAY, MCI_STOP, MCI_PAUSE, MCI_RESUME, MCI_WINDOW, MCI_CLOSE, MCI_PUT, and MCIJJPDATE.
- Custom messages may be developed to enable seeking specific clips in given frames or targets 7003. An exemplary description of some of the messages follows:
- MCI OPEN (relevant parameters: Open-Flags, Open-Parms): This message initiates the hypervideo 10,007 according to the file name found in the Open-Parms.
- the base target 11,001 to be played becomes the root object 13,006 of the object tree 13,004.
- a window is created. The window's procedure is set to be the driver's WndProc.
- This message starts playing the hypervideo 10,007.
- the message can be received, for example, upon one of the following situations arising: (1) The project is stopped - In this case the object tree 13,004 is initiated from the root object 13,006. The base target 11,001, corresponding to the root target 13,006 is thus played. (2) The project is paused - In this case all the objects 13,002, or corresponding targets 7003, which have the status flag Playing (e.g., were previously playing, see MCI PAUSE) are played.
- the hypervideo 10,007 and all of its playing targets 7003 are stopped, and the object tree 13,004 is collapsed.
- the hypervideo 10,007 and all of its playing targets are paused. Pausing does not affect the status flag of the objects 13,002. Thus, when resuming the playing of the hypervideo 10,007, the run-time module 1101 knows which objects 13,002 to resume playing. There is no effect on the object tree 13,004.
- This message replaces the window relating to the 'full-screen' of the MCI driver 1109. It can be sent only when the MCI driver 1109 is not playing.
- the window is attached to the root object 13,006, and is subclassed to WndProc.
- Each driver session is associated with a window.
- the association is made by means of the MCI OPEN and MCI WINDOW commands.
- the association must be done before playing starts.
- the driver uses the window procedure to obtain mouse and MCI events.
- the driver is assigned a new window using the MCI_WINDOW command, it will subclass its window procedure. Any other child windows which are created during the playing of the hypervideo 10,007 are also subclassed to this same procedure, and the interaction with them is done through it.
- the main messages handled by the window procedure are:
- This message is used to identify user action of actuating a mouse button.
- the object 13,002 can be retrieved via the management manager 1125.
- the object database 1127 is queried for a target 7003, or object 13,002, to be executed. According to the data received from the object database 1127, the current object 13,002 may be stopped.
- WM_SETCURSOR (relevant parameters: window): This message is used to set the cursor according to the pointer coordinates, whether the pointer is over a hotspot 8003, whether a mouse button has been actuated, and depending upon the media element 1690 being executed. From the window handle, the object 13,002 can be retrieved via the management system.
- MM MCINOTIFY (relevant parameters: device ID): This message is used to signal that an object 13,002 has terminated. From the device ID, the object 13,002 is retrieved via the media management system 1125. Notification of medias that terminated unsuccessfully may be ignored at this stage. The object 13,002 that ended is updated to show that the corresponding media file 1680 is no longer playing. For compound objects, this may not necessarily mean that the object 13 ,002 has terminated. If the object 13,002 is terminated, then a check is performed on the object's termination flag, or ending parameter, previously described. The following actions are taken according to the following flag settings: if EXIT stop all playing target(s) 7003. if LOOP play target(s) 7003 again.
- CONTINUE stop target(s) 7003 and take it/them off the active media stack 1141 Get the next object 13,002 and play it.
- BACK stop target(s) 7003 and take it/them off the active media stack 1141 Continue the parent obj ect or target, if FREEZE pause target 7003.
- MM MCISIGNAL relevant parameters: device ID, video position
- This message is used to track a playing object 13,002. Again, the object 13,002 may be retrieved from the device ID. Tracking a playing object
- the object database 1127 is queried to determine if the frame is a notification frame 1157. If the frame is a notification frame 1157, the corresponding target(s) are executed. 3. Logging, for example in a database, the entrance, or appearance, and exit, or disappearance, of hotspots 8003. An object 13,002 always keeps its position, for example frame number, of its last signal message. When such a signal message is received, the object 13,002 is queried by itself for changes that occurred between the last kept and current position.
- This message is used to signal that a timed object has terminated.
- the action is similar to the notify message.
- the object 13 ,002 includes a description of a corresponding target 7003.
- the object also may include status information, such as playing status, the MCI device ID and relevant window.
- the objects 13,002, or corresponding targets 7003, that are being executed, or that were executed and still may at anytime in the future be executed may be kept in an object tree 13,004
- the objects 13,002 of the object tree 13,004 may be of two general types: visible 13,008 or invisible 13,010.
- the visible objects 13,008, unlike invisible objects 13,010, can serve as parents of other objects 13,002.
- Invisible objects 13,010 are always leaves.
- An object 13,002 may be added to the object tree 13,004 once the object 13,002 starts playing.
- the object 13,002 is removed from the object tree 13,004 once the object 13,002 is no longer scheduled to be played.
- An object 13,002 may be added to the object tree 13,004 in the following situations:
- a root object 13 ,006, representing the base target(s) 11,001, is created and is placed at the top of the object tree 13,004.
- an object 13,002 is spawned from the object 13,002 that contains, for example, the hotspot 8003 over which the pointer was placed when the switch was actuated, or clicked. 3. If an object 13,002 ends or is closed, and its termination flag is set to continue, the closed object 13,012 is destroyed and a new object 13,014 is placed as a son of the closed object's parent object.
- An object 13,002 may be removed from the object tree 13,004 in the following situations: a. When the hypervideo 10,007 reaches its end or the close command is received, the object tree 13,004 is terminated. b. If an object 13 ,002 terminates and the termination flag is set to continue (used to activate new object 13,014) or to back (used for asynchronous objects to continue playing their parent object ). Objects 13,002 removed from object tree 13,004 may be marked in one of two ways: (1) stop all the playing descendant object(s) or (2) do not stop all playing descendant object(s). If an object 13,002 of the first type (1) is removed from the object tree 13,004, then descendent object(s) that branch from the removed object are also removed from the object tree 13,004.
- the media manager 1125 includes a list of media file 1680 names.
- the media manager 1125 also includes an MCI device ID for each media file 1680 in the list.
- the media manager 1125 further includes a list of objects 13,002 that use those device IDs. As a result, the objects 13,002 can interact with the MCI.
- the media manager 1125 supports the following commands: Open (media file, object reference, window) - this command opens a media file 1680 in a specified window and returns the MCI device ID of the opened media file 1680. If a copy of the specified media file 1680 has previously been opened and is available, the same media file 1680 copy and MCI device ID will be used. Stop (object reference) - stops the playing of the media file 1680 relating to the object reference.
- Resolution of a hypervideo project may be 1000 by 1000. To optimize the speed of database calculations, the resolution may be 1024 by 1024. Also, the user can change the resolution of the hypervideo project coordinates.
- the Microsoft Foundation Class (MFC) CRgn objects may be used to determine whether the pointer is positioned over a polygon-shaped hotspot.
- Two or more media files 1680 may be displayed overlapping each other.
- a z-order relationship is maintained between the media files 1680 so that they are displayed over one another in a consistent fashion.
- Special overlay techniques such as key color, blue screen and alpha channel may be used to achieve sprite animation and non-rectangular overlaps of windows.
- a marker 1155 can be attached to a hotspot 8003 (i.e., the hotspot 8003 can be marked).
- the marker 1155 can serve two purposes: First, the marker
- the 1155 signals the user that a hotspot 8003 exists. Second, the marker 1155 can signify that the user has already actuated the hotspot 8003.
- the marker 1155 can be attached to the hotspot 8003 in one of the following ways:
- the marker 1155 can be turned on or off by an application 12,003, such as a monitoring application; or Dynamically when, for example, the hotspot 8003 is actuated by an application 12,003, such as a monitoring application, or when a pointer is over the hotspot 8003.
- the marker 1155 may be implemented using one of the following techniques:
- a tool tip may pop up to specify, for example, the hotspot's name.
- Run-time Statistics Statistics 1147 are gathered for hotspots and media files 1680.
- the statistics 1147 for example, include the number of times a hotspot 8003 has been activated or the number of times a particular media file 1680 was played.
- the statistics 1147 can be accessed used by applications 12,003, such as monitoring applications, to initiate conditioned actions.
- the statistics mechanism can be replaced, at least partially, by a counting mechanism in the application 12,003 that is triggered by event notification 1114. Additionally, statistics 1147 can be displayed.
- Project Status The current status of a project, including currently playing media, for example, defined by the object tree 13,004 and those waiting in the active media stack 1141, can be saved by the run-time library 1113. The saved status can later be recalled to continue playing a project from a specific point.
- Hypervideo data can be streamed, as described above, for example across a network 1650 from a server to a client, as described above. Because the hypervideo data is streamed, instantaneous network bandwidth consumption is diminished. Also, latency, associated with hypervideo performance, may be reduced. Techniques for streaming hypervideo data will now be further described.
- media objects may be hotspots 8003 in visual media, such as a videos and bitmaps, that may or may not be associated with interactive features, such as links to targets 7002.
- media objects may be associated with other hypervideo features such as targets 7003 (or links), cursors (e.g. click and over cursors), and markers 1155.
- Media objects may be referenced in an object oriented manner, in addition to a traditional image oriented fashion, such as by reference to a frame or time base. Because media objects may be referenced in an object oriented manner, media objects may be referenced in a relatively natural manner. Not only is interactivity permitted with media objects, but so also is storage and retrieval of media objects (or object based indexing of media), and media object statistics.
- media object data may be included in streaming multimedia. In another embodiment, media object data may be included in the hypervideo data stream 1660.
- the multimedia stream may include a video and audio stream.
- the video stream may include a variety of visual information including an image, a slide show, and/or an animation.
- the hypervideo data stream 1660 may permit a user to interact with a video stream in a manner similar to that described above.
- the hypervideo data stream 1660 may include information, such as geometry and shape, about a media object in a frame of a video.
- Hypervideo data may be extracted from the hypervideo data stream 1660, and may be provided to a hypervideo application, with an application program interface (API), as will be further described below.
- Streaming hypervideo may be displayed and accessed by a user by modifying the run-time module 1001 to include a hypervideo data stream 1660 Tenderer.
- the hypervideo data stream 1660 renderer may include an API that provides access to media object information in the hypervideo data stream 1660, and may permit complex interaction with media obj ects.
- the hypervideo data may be streamed with the streaming multimedia.
- the hypervideo data may, however, be downloaded prior to the streaming of the multimedia.
- this downloading approach may undesirably increase latency and instantaneous network bandwidth consumption which may scale, for example linearly, with the length of the streaming media.
- Streaming hypervideo data may also be desirable to accommodate the dynamic nature of a video.
- Video may be dynamic in nature.
- the geometry of the media object may change from frame to frame, for example, due to variations in perspective. If, however, the geometry of the media object in the hypervideo data stream 1660 is fixed over a range of frames, the media object geometry may not be accurately defined in the range of frames. As a result, user interactivity with the hypervideo 10,007 may be undesirably diminished. Therefore, in order to enhance user interactivity, media object data in the hypervideo stream may be dynamically provided, for example for each frame in a corresponding video.
- One technique for streaming hypervideo data for each frame of a corresponding video will now be described.
- the following technique may implement streaming hypervideo by providing hypervideo data for each frame of a corresponding video.
- This technique has the advantage that the hypervideo data stream may be randomly accessed at any time in the stream. Further, this technique may used with no, or a relatively small, hypervideo data stream header so that less memory is required of a recipient client to store such a header.
- this technique may permit manipulation of hypervideo data streams 1660, and exportation of hypervideo data into a hypervideo data stream 1660 of a streaming multimedia file.
- the streaming multimedia file may be an audio video interlace (AVI) file.
- a hypervideo data stream 1660 may be stored in a private track of an AVI file.
- This embodiment may be implemented with computer software, such as file Hvstrvw.cpp, illustrated below. The operation of the computer software will now be described.
- a class ChvstreamView may include a method OnStreamAddstream.
- method OnStreamAddstream may export hypervideo data from a project file 1670 through an authoring tool 1001 to a private track of a designated AVI file. This exportation process may be repeated for each AVI file in a hypervideo 10,007.
- a designated AVI file may be opened for reading and writing. Then, the streaming video track in the AVI file may be accessed. Information from the streaming video track may be read. This information may be used, in part, to create the hypervideo data stream 1660 stored in the private track of the AVI file. In one embodiment, the information from the streaming video track may be used to create the header 1402 and body 1404, illustrated in Figure 14, of the hypervideo data stream 1660. The body 1404 may be adjacent, or otherwise coupled, to the header 1402. The body 1404 of the hypervideo data stream, which may be stored in the private track, may be created in the following manner.
- the hypervideo data e.g.
- hotspot data for each frame in the AVI file may be extracted and stored in the private track. For example, every hotspot 8003 associated with, or in, each frame of the AVI file may be identified, and corresponding hotspot 8003 data may be extracted. The hotspot 8003 data corresponding to each frame may be stored, in the body 1404 of the private track, on a frame by frame basis. The hotspot data may be stored in an order corresponding with the order of the video frames. Then, the AVI file may be closed. All AVI files in the hypervideo 10,007 may be so modified. In one embodiment, this and other techniques for creating files with streaming hypervideo data may be implemented with modified authoring tools, further described below.
- hypervideo data is provided for each frame of a corresponding video
- this technique may consume a relatively large amount of network capacity.
- this technique may be relatively costly. Therefore, it may be preferable to use a more efficient technique for streaming hypervideo data.
- Network channel capacity may be reduced by placing static hypervideo data in the header 1402 of the hypervideo data stream 1606.
- static hotspot data may be placed in the header 1402 because the static hotspot data does not vary throughout the hypervideo 10,007. Because it is placed in the header 1402, static hypervideo data may be transmitted once, unlike in the technique described above, reducing transmission bandwidth consumption.
- Static hotspot data may include data about the click and over cursors, a marker 1155 and target(s) 7003 defined for a hotspot 8003 because such data may remain constant throughout the life-time of the hotspot 8003. Specifying such attributes more than once for each hotspot 8003 (e.g. for each frame in which the hotspot 8003 occurs) may be undesirably redundant as described above.
- This streaming technique facilitates the exportation of hypervideo data into a hypervideo data stream 1660 of a streaming multimedia file.
- the streaming multimedia file is an audio video interlace (AVI) file.
- the hypervideo data stream 1660 may be stored in a private track of the AVI file.
- this embodiment may be implemented with computer software, e.g. file ExportAvi.cpp illustrated below. The operation of the computer software will now be described.
- file ExportAvi.cpp includes the following arguments: a_sProjectFile which is the name of the hypervideo project file 1670 which includes media file(s); a_sMediaName which is the name of the AVI file that includes the audio and video streams to be inco ⁇ orated into a new AVI file; and a sTargetAVI which is the name of the new AVI file in which the streaming hypervideo data 1660 will be written on a private track.
- a project file 1670 may be opened.
- the data in the project file 1670 may be encrypted.
- Hypervideo data may be extracted from the project file 1670 identified by the a_sProjectFile argument.
- the extracted hypervideo data may be stored in an EProject object.
- An EProject object may be an object oriented representation of the database in which hypervideo data is stored, for example in the authoring tool 1001. The EProject object is further described below.
- the hypervideo data may be extracted from the project file 1670 in the following manner.
- the amount, or length, of data in the project file 1670 may be determined.
- a buffer, having such length, may be allocated.
- Encrypted data is read from the project file 1670, and may be stored in the buffer.
- the encrypted data stored in the buffer may be decrypted.
- a memory file may be created, and attached to the buffer. Memory files and buffers are well known to persons skilled in the art.
- An archive may be attached to the memory file.
- the data in the buffer may be transferred to the EProject object.
- the archive and project file 1670 may be closed.
- hypervideo data associated with the selected AVI file, in the hypervideo and identified by the a sMediaName argument may be transferred to a new, corresponding AVI file, identified by the a_sTargetAVI argument.
- the hypervideo data may be written in the private track of the new AVI file.
- the hypervideo data may be written in the private track of the new AVI file.
- the hypervideo data transfer may be performed in the following manner.
- Streamed hypervideo data may be extracted from the EMedia object that corresponds to the selected AVI file.
- An EMedia object may represent, in an object oriented manner, the AVI file and its associated hypervideo data.
- the EMedia object corresponding to the selected AVI file may be selected in the following manner.
- EMedia objects may be iteratively analyzed to uncover the EMedia object that is associated with the selected AVI file.
- the new AVI file may be prepared. If the new AVI file does not exist, then the new AVI file may be created, including by copying the streaming audio and video data from, the selected AVI file to the new AVI file. If the new AVI file already exists, but does not include the same video stream as the selected AVI file, then the selected AVI file's audio and video streams may be copied to the new AVI file.
- the file ExportAvi.cpp includes method AddObjectlnformation which creates a hypervideo data stream 1660 in the private track of the new AVI file.
- This function includes the arguments from the EProject object (corresponding to the selected project file 1670) and the EMedia object (corresponding to the uncovered EMedia object, and including hypervideo data and pointer to the selected AVI file), and the name of the new AVI file.
- the method may operate in the following manner.
- Video For Windows (TM) software library may be initialized.
- a pointer, in the uncovered EMedia object, to an EClip object may be acquired.
- the class EClip, derived from the class EMedia may include parameters for storing corresponding hypervideo data.
- the classes EClipObject and EClipFrame, derived from class EClip may include parameters for respectively storing static hotspot data (e.g. target, cursor, marking, and frame range data) and dynamic hotspot data (e.g. geometry and shape data).
- the static hotspot data may be acquired in the following manner. The number of frames in the video stream of the selected AVI file may be determined.
- Static hotspot data may be extracted for each hotspot by indexing the EClipObject objects associated with the EClip object corresponding to the selected AVI file.
- the static and dynamic hotspot data may include parameter data different than described in this section.
- the static hotspot data may be stored in the allocated memory to form the header 1402 of the hypervideo data stream 1660 in the private track of the AVI file.
- each set of static hotspot data in the header 1402 may correspond to a unique instance of a hotspot object.
- Other data obtained from the video stream of the selected AVI file may also be used to form the header 1402.
- the dynamic hotspot data (e.g. hotspot geometry, shape) may be similarly acquired by indexing the EClipFrame objects in the EClip object corresponding to the AVI file.
- the dynamic hotspot data may be reorganized by frame, rather than by hotspot, and copied to the allocated memory to form the body 1404 of the hypervideo stream data in the private track of the AVI file.
- dynamic hotspot data may be provided for each video frame.
- the dynamic hotspot data may be stored in the allocated memory to form the body 1404 of the hypervideo data stream in the private track of the AVI file.
- the corresponding hotspot data associated with the key frame is identified as key hotspot data in the hypervideo data stream 1660.
- the AVI file is closed.
- This technique permits the hypervideo data rate to be reduced below the corresponding video frame rate. Unlike the previously described techniques, which required one set of streamed hypervideo data to be uniquely associated for each video frame, this technique permits one set of streamed hypervideo data to be associated with one or more video frames.
- the geometry data, in the streamed hypervideo data may be associated with each frame of the one or more video frames.
- the geometry data associated with each frame of a set of more than one video frames may be determined by inte ⁇ olating the geometry data of two consecutive sets of streamed hypervideo data sent respectively before and after the corresponding set of more than one video frames.
- Hypervideo data may be exported to a private (proprietary) stream in media file formats, including an ASF version 1 file, using hypervideo data buffers.
- Hypervideo data buffer streaming will be first discussed. Then, a technique for implementing hypervideo data in streamed hypervideo data buffers will be exemplified for a Netshow (TM) client-server system.
- TM Netshow
- hypervideo data buffers may contain dynamic media object data about hotspots, including data about hotspot geometry, target(s) 7003, and cursors 7003.
- Hypervideo data buffers may also include media object data for notification frames 1157, or hotframes, including target 7003 data.
- a hypervideo data buffer may include data about media objects associated with one or more video frames.
- hypervideo data buffers may be created at user defined rates.
- the maximum hypervideo data buffer creation rate may be limited to a corresponding video's frame rate so that the maximum number of hypervideo data buffers equals the number of frames in the video.
- hypervideo data buffers may be implemented with computer software, e.g. file NSCommands.cpp, illustrated below.
- File NSCommands.cpp may facilitate the creation of, and the extraction of hypervideo data from, hypervideo data buffers.
- Object oriented programming classes defined and implemented in file NSCommands.cpp may be used in an authoring tool 1001 to create hypervideo data buffers. These and other classes may be defined in file NSCommands.cpp, for use in the run-time module 1001, to extract hypervideo data from hypervideo data buffers.
- File NSCommands.cpp includes the following three classes: ENSBuffer: Objects instantiated from this class read data from and write data to hypervideo data buffers.
- this class's method Tnt' writes an integer to or reads an integer from a hypervideo data buffer depending upon the setting of 'storing' flag (e.g. if a hypervideo data buffer's 'storing' flag equals true the integer is written in the hypervideo data buffer when this method is performed).
- ENSFramelnfo Objects instantiated from this class handle the creation of a hypervideo data buffer.
- ENSFramelnfoManager Objects instantiated from this class manage the process of hypervideo data buffer creation. Upon exporting a hypervideo 10,007 to a streaming media file, an object instantiated from the ENSFramelnfoManager class is called repeatedly according to the hypervideo data buffer creation rate every time a hypervideo data buffer is created. Each time an object instantiated from the ENSFramelnfoManager class is called, it receives an ENSFramelnfo object and an ENSBuffer object, and serializes the ENSFramelnfo object to the ENSBuffer object.
- Objects instantiated from the ENSFramelnfo class may include information about media object geometry and target(s) 7003 for a frame in the video.
- Objects instantiated from the ENSFramelnfo class may include an array of ENSHotspot objects, which includes location and target data for each hotspot in a frame, and an ENSEvent object which includes target data for the frame if the frame is a notification frame 1157.
- Both ENSHotspot and ENSEvent classes inherit properties from a ENSFrameLinkData class which also includes parameters that describe target(s) 7003. A set of these parameters may be used to store Boolean variables for selecting target type.
- Hotspot 8003 and notification frame 1157 target 7003 types may include: play another video, seek to a different location in the same video, seek to an ASF Marker defined in the current video, display text on top of the video, or navigate to a location at a URL whose corresponding data is displayed in selected HTML frame.
- the ENSFrameLinkData class includes a further set of parameters, or descriptors, used to further identify the target 7003. For example, if a target 7003 type navigate to a location at a URL is selected, then the URL Boolean variable is set to true and the relevant descriptors, including the URL name, location and selected frame, are provided.
- the ENSHotspot class includes parameters to define hotspot 8003 geometry and cursors, in addition to the target 7003 parameters inherited from ENSFrameLinkData.
- Hypervideo data buffers will now be further illustrated by exemplifying their use.
- a hypervideo data buffer may be created for a frame for which an elliptically shaped hotspot is defined.
- the elliptically shaped hotspot may be linked to a target 7003 which is of the type that displays text on top of the video.
- the frame may also be a notification frame 1157 whose target 7003 is the type that navigates to a location at a URL (e.g. for a web site) whose corresponding data is displayed in a selected HTML frame.
- the hotspot 8003 center is located at coordinates (100,100) and the hotspot' s horizontal and vertical radiuses are respectively (20,60).
- an ENSFramelnfo object is instantiated.
- An ENSHotspot object is also instantiated.
- the ENSHotspot object may include an ENSEllipse object having a text type target.
- An ENSEvent object is created having a target 7003 type that navigates to a location at a URL whose corresponding data is displayed in a selected HTML frame. Both ENSHotspot and ENSEvent objects are added to the ENSFramelnfo object.
- An ENSBuffer object is then instantiated.
- the ENSFramelnfo object is serialized into the ENSBuffer object.
- the resulting hypervideo data buffer has the following structure:
- Byte 1 t (true, this notification frame has a URL type target)
- Byte 2: 22 the length of the URL's name
- Bytes 2-20 http://www.website.com (the URL's name)
- Byte 21 f (false, this is not a seek to time target)
- Byte 22 f (false, this is not a seek to marker target)
- Byte 23 f (false, this is not a text target)
- Byte 24 f (false, this is not a URL target)
- Byte 25 f (false, this is not a seek to time target)
- Byte 51 100 (the ellipse center x-axis coordinate)
- Byte 52 100 (the ellipse center y-axis coordinate)
- hypervideo data buffers may be placed in a streaming media file, such as an ASF version 1 file, which may include audio and video streams.
- the hypervideo data buffers may be inserted into any media file that maintains a private data stream.
- the hypervideo data buffers may be inserted into the script command stream in an ASF version 1 file.
- Script commands, used in the script command stream have a type field, an argument field and an execution time field.
- each hypervideo data buffer may be associated with a script command of type 'VANS'.
- the hypervideo data buffers may be streamed across a network 1650 from a server to a client including a Netshow (TM) player.
- the Netshow (TM) player may fire a script command, and hence the corresponding feature defined in the argument field, at the corresponding execution time.
- TM Netshow
- Additional Techniques to Reduce Network Capacity Consumption by a Hypervideo Data Stream may be used to implement yet another technique for streaming hypervideo data in a manner that consumes less network capacity.
- certain interactive hotspot 8003 attributes such as click and over cursors, marker 1155 and target(s) 7003. may be more likely to remain constant throughout the life-time of the hotspot 8003.
- Specifying such attributes more than once for each hotspot 8003 e.g. for each frame in which the hotspot 8003 occurs
- providing such hotspot attributes for example, for each video frame may be desirable because it may more readily permit streaming hypervideo to be randomly accessed, in mid-stream.
- the content of successive video frames may be relatively time invariant (e.g. change little from frame to frame).
- encoder- decoders CODECs
- media object geometry may also be compressed, for example with CODECs, to reduce the bandwidth of the hypervideo data stream 1660.
- the CODECs may compress the hypervideo data stream 1660 because the hypervideo data may be relatively time invariant also.
- a CODEC may define a key frame in which media object information, including geometry, is encoded. Subsequent frames may be encoded based upon their differences, for example in hotspot 8003 geometry, with respect to the key frame.
- media object geometry in subsequent frames may be defined by a vector, such as a motion vector.
- redundant hypervideo data may be stored in a header 1402 of the hypervideo data stream 1660 that may be streamed to a run time module 1101 in a client.
- the redundant hypervideo data may be referenced by unique identifiers, or pointers, 1406 in the body 1404 of the hypervideo data stream 1660.
- the header 1402 may be stored in a buffer memory of sufficient size, for example in a client of a client-server network, during the display of the corresponding hypervideo 10,007. Further, because they may be loaded into the buffer memory, relatively large headers 1402 may increase latency, or download time, of the hypervideo data stream 1660. Latency may be more problematic for multimedia files that are randomly accessed after their beginning. In one embodiment, regardless of access location, a complete header 1402 may have to be loaded into the buffer memory before multimedia performance may begin.
- the common data pointers method typically no redundant, or common, media object data may be encoded in the hypervideo data stream 1660.
- the encoded stream may include only time-dependent data, such as media object geometry and shape.
- the common media object attributes which are typically time invariant, and thus typically need only to be encoded once in the hypervideo data stream 1660, may be stored in the header 1402 of the hypervideo data stream 1660.
- the common media object attributes are coupled to the media objects by pointers 1406.
- the pointers 1406 are media object identifiers (IDs).
- IDs media object identifiers
- the header 1402 of the hypervideo data stream 1660 may include common attribute data associated with media objects encoded in the hypervideo data stream 1660.
- the header 1402 may include the following common attribute parameters (primarily related to interactive features of hotspots 8003):
- Media Object ID A unique identifier of a media object 8003.
- Cursors User-defined cursors, including both the over and click cursors. Marking: Marker 1155 definition. Targets: Target 7003, or link, definition. Horizontal and Vertical Resolution, and Time Units, as described below. Dimensions of the Media Window in which the Media was Authored.
- the field for the Hotspot ID may be 32 bits in length.
- the cursor fields will now be described.
- the field for the over cursor may be 2*8 bits. If the first byte is:
- the next byte holds a pointer to a location in a cursor table associated with a cursor shape to be displayed.
- the field for the click cursor is 2*8 bits.
- the click cursor is defined in a manner similar to the definition of the over cursor.
- the field for the marker 1155 is 4*8 bits. The type of marker 1155 is described in 8 bits. If bit 1 is set to one, then a flag is set to indicate a blinking marker. If bit 2 is set to one, then the marker 1155 is pointer sensitive, appearing when the pointer is positioned over the region corresponding to the media object.
- the body 1404 may include the following parameters for each media object:
- Media Object ID Uniquely associated with a media object.
- Media Object Shape Including Rectangle, Ellipse, Triangle. Polygon, Circle, etc.
- Media Object Geometry Includes the size and position of the media object.
- the media object geometry may be encoded using relative coordinates with respect to the origin of the playback window to facilitate image map resizing to permit media object dimensions to be resized proportionally with the playback window.
- bounding rectangle coordinates may be provided, and include sufficient information to determine the geometry of the media object.
- Bounding rectangles which are known to persons skilled in the art, are rectangles whose sides contact the periphery of a primitive shape, but do not intersect with the interior of the primitive shape. Bounding rectangles may be used to describe a triangle that is an isosceles triangle, for example, with a horizontal base. Other types of triangles, however, may be defined with a polygon shape.
- the field for the media object shape has 8 bits.
- the data in this field identifies the shape of the media object (e.g. rectangle, triangle, ellipse, circle, polygon, etc.).
- the media object dimensions are defined by a bounding rectangle.
- the bounding rectangle coordinates, used to define a primitive shape media object may be stored in a field of 4* 16 bits.
- only the top-left and bottom-right coordinates of the bounding rectangle need be stored in this field.
- the number of vertices are defined in a 16 bit field.
- the vertices' coordinates are defined in a field whose size equals the number of vertices 2 * 16 bits.
- a common data parameter in the header 1402 may be associated with a media object parameter in the body 1404 by using an identifier.
- the common data parameter for a media object may be used in the body 1404 by inserting the identifier (e.g. media object ID) corresponding to the common data parameter in a field, in the body 1404, associated with the media object parameter.
- latency and bandwidth of a hypervideo data stream 1660 can be diminished by streaming the hypervideo data in a scalable manner.
- the bandwidth of the hypervideo data stream 1660 may be varied to accommodate the bandwidth available in the system over which the hypervideo data stream 1660 is transmitted.
- substantial amounts of media object data may be encoded to form a relatively wide bandwidth hypervideo data stream.
- solely basic hypervideo data may be encoded to provide a relatively narrow bandwidth hypervideo data stream.
- a scalable hypervideo data stream includes three layers of hypervideo data.
- different layers of hypervideo data stream 1660 describing one or more media objects are coordinated, utilizing object ID and time (or frame) parameters, in a manner understood by one skilled in the art.
- the first layer of the hypervideo data stream 1660 includes only basic hypervideo data, such as media object geometry, and no interactive data.
- the basic hypervideo data is intended to be utilized by any hypervideo application, such as one that utilizes indexing of media based upon media objects.
- a hypervideo data stream 1660 including only the basic hypervideo data (e.g. the first layer) consumes relatively little network capacity.
- a second layer includes basic interactive features for the media object, including marker 1155, cursor and target 7003 data.
- the basic interactive features may be selected from predefined sets of markers 1 155 (e.g. NoMarking, Highlight, Dark, Negative, Gray, RGB, etc.), cursors (e.g. NoCursor, HandCursor, etc.) and targets 7003 (e.g. URL flip [which changes the URL in a frame of browser], Seek - a time code or frame, Switch stream, Pause, Exit, etc.).
- the second layer may also provide other interactive features, such as markers 1155 that alternate, including a blinking marker.
- the blinking marker is a marker that is turned on and off repetitively.
- the second layer may also enable the marker 1155, cursors, and target(s) 7003 of a media object to change at different times or frames, for example, of a video in the multimedia stream.
- a first instance of a media object may have a first marker, a first set of cursors, and a first target, and may be associated with a first time period, or set of frames, in a video.
- a second instance of the same media object may have a second marker, a second set of cursors, and a second target, and may be associated with a second time period, or set of frames, in the video.
- hypervideo data for a media object may be relatively time invariant, diminishing the number of instances of a media object, thus providing relatively high data compression rates and relatively low network capacity consumption.
- the third layer may include enhanced hypervideo properties, enabling user-defined markers, cursors and targets for hotspots 8003 to be defined in a hypervideo data stream 1660.
- enhanced hypervideo properties may be used, without requiring customized software for implementing the enhancements, with the authoring tool 1001 and run-time module 1001. As a result, a user does not need to provide external code to utilize the enhanced hypervideo properties.
- Each of the three layers may provide a different scope of media object definition, including for geometry and interactivity.
- the layers may be reorganized, for example, by merging or sub- dividing the layers.
- the first and second layers may be combined into a single layer to provide a non-scalable stream, for example, for a hypervideo system that does not support scalable streams.
- the single layer may include media object geometry, and cursor, marker 1155, and target 7003 definition from the predefined sets discussed herein.
- Media Object Geometry Indicates the size and position of the media object. For primitive shapes, two sets of coordinates of bounding rectangle may only be provided. The media object geometry may be encoded using relative coordinates to facilitate image map re-sizing, as further described herein.
- Cursors Permits each media object to be assigned at least two cursors, the over and click cursors.
- the over cursor may be displayed, instead of the pointer, when the pointer is positioned over the region corresponding to the media object.
- the click cursor may be displayed instead of either the pointer or over cursor, when the media object has been actuated, for example by a mouse "click" when the pointer is over the region corresponding to the media object.
- only cursors such as NoCursor or the HandCursor, from a pre-defined set may be assigned to a media object.
- Marker Permits each media object to be visually marked by a marker 1155. In one embodiment, in the second layer, only markers 1155, such as NoMarking, Highlight, Dark, Negative, Gray and RGB, from a pre-defined set may be assigned to a media object.
- Target (Commands) Permits each media object to be coupled to target(s) 7003. In one embodiment, in the second layer, only target(s), such as URL Flip, Seek, New Media, Pause, Resume and Exit, from a pre-defined set may be assigned to a media object.
- Cursors Permits user-defined cursors to be assigned to a media object by encoding the cursor's path in the hypervideo data stream 1660.
- Marking Permits a user-defined marker, such as an overlay image, or any low-bandwidth media, to be assigned to a media object by encoding the marker's 1155 path and its display parameters (key color, relative position, etc.) in the hypervideo data stream 1660.
- a media object parameters such as cursor, marker 1155 or target(s) 7003
- the parameter definitions in the higher layer e.g. third layer
- the parameters defined in the lower layer e.g. second layer
- a hypervideo data stream 1660 Tenderer may provide an extensive API to facilitate retrieval of streamed hypervideo data, such as media object information.
- media object geometry may be extracted with the API, for example when only the first layer is streamed.
- hypervideo data stream 1660 Another embodiment of the hypervideo data stream 1660 will now be described in further detail.
- the header 1402 includes, in addition to other media parameters, global parameters required in the hypervideo data stream 1660.
- Time Units OBTimeUn 8 The time resolution, or units, of the visual media. This parameter defines the units used for time stamps.
- the Horizontal and Vertical Resolution parameters determine the resolution, or units, of media objects's geometry parameters.
- the Horizontal and Vertical Resolution parameters may be used to scale media objects's geometry parameters.
- the Horizontal and Vertical Resolution parameters recite a number of 'logical units' for frame width and height. This relative representation readily facilitates re-sizing media objects and media scaling, or in other words allows media object size to be varied with the size of window in which the media object appears.
- the Time Units parameter determines the time units with which the media object's time parameters, including start time, are defined. In one embodiment, the time units are defined in milliseconds (MS). In another embodiment, the time units are defined by frame numbers.
- MS milliseconds
- the time units are defined by frame numbers.
- the encoded media object data may include media object geometry and interactive features, as illustrated above.
- a media object may be defined for a finite period, or duration, of frames or time.
- the finite period is valid from the Start Time of first data defining a first instance of the media object through the Start Time of second data defining a second instance of the media object.
- the media object is terminated by issuing dummy data for the media object, including the media object's unique ID and End Time, which respectively specify the media object to be terminated, and the time to terminate the media object.
- Time Stamps are provided, and can be used to define the beginning of a one set of media objects, and the end of another set of media objects. All media objects instantiated following the issuance of a time stamp are valid until the issuance of another Time Stamp. In this embodiment, all media objects share a common, and typically relatively fine, time resolution defined by the Time Unit parameter.
- this technique may use relatively finer time resolution than other techniques, this technique may be relatively inefficient for encoding media objects having relatively constant geometry for relatively long time periods.
- Media objects having relatively constant geometry for relatively long time periods must be repeatedly encoded with this technique.
- the hypervideo data stream 1660 bandwidth may be relatively large compared to other techniques.
- media objects can be encoded with a relatively wide time resolution.
- First Layer One embodiment of the data structures of the first, second and third layers is described below.
- Media Object ID UINT 16 A unique identifier of the media object.
- Start Time UINT 32 The starting time of the instance of the media object.
- Media Object Shape OBShape 4 The shape of the instance of the media object.
- primitive shape media objects such as a Rectangle, Triangle, Ellipse, Circle, etc.
- the Media Object ID is a unique identifier of a media object throughout the life span of the media object.
- the media object ID is also used to reference, or associate, the media object extended parameters in higher (e.g. second and third) layers, with the geometrical parameters in the first layer.
- the Start Time parameter uses the units defined in the Time Units parameter in the header 1402.
- the Media Object Shape parameter is used to select one of a group of pre-defined shapes, including Rectangle, Triangle,
- the Media Object Geometry parameters are used to define the dimensions and position of the media object using the Horizontal/Vertical Resolution units defined in the header 1402. Primitive shapes, such as a Rectangle, Ellipse, Circle, Triangle, etc., are defined by a bounding rectangle.
- Media Object ID UINT 16 A unique identifier of the media object.
- Start time UINT 32 The starting time of the instance of the media object.
- Over Cursor OBCursor The shape of the cursor when moving over the media object.
- Marking Type OBMark The predefined marking to use.
- Mouse Sensitive Boolean Determines whether marker is mouse sensitive.
- Link type OBLinkType 8 The command type which will be activated when actuating the object.
- URL string N The full URL address.
- Location string N The location in the URL page to flip to.
- Frame string N The frame within the browser frame-set to flip the URL in.
- the media object ID is a unique identifier of the media object, throughout its life span.
- the media object ID is also used as a reference to the media object parameters in the higher (e.g. third) layers, and to the geometrical media object parameters in the first layer.
- the Start Time parameter is inte ⁇ reted according to the Time Units parameter in the hypervideo data stream 1660 header.
- OBCursor defines one of a set of pre-defined cursors (e.g. NoCursor, Arrow, Cross, Hand, Back, etc.).
- OBMark defines one of a set of pre-defined markers 1155 (e.g. NoMarking, Highlight, Negative, Dark, Gray, RGB Meshes, RGB Filters, some pre-defined images marking such as an arrow or a flag pointing to the hotspot, etc.).
- the selected marker will blink at a constant rate. If the Mouse Sensitive flag is on, or set to one, the selected marker will be displayed, for example in lieu of a pointer, only when the pointer is positioned over the media object.
- the Link Type defines the target 7003 linked to the media object.
- OBLinkType defines one of a set of pre-defined command (e.g. URL (flip a URL page), NewMedia (start playing a new media instead of the present media), SeekToFrame, SeekToTime, SeekToMarker, Pause, Resume and Exit).
- Media Object ID UINT 16 A unique identifier of a media object.
- Start Time UINT 32 The starting time of the media object.
- Over Cursor string N The full path of a cursor file.
- the over cursor will define the shape of the cursor displayed when the pointer is moved over the media object.
- Click Cursor string N The full path of the cursor file. This cursor will define the shape of the cursor when actuating, such as by clicking, the media object.
- Marking Media string N The full path of the media used to mark the media object.
- Horizontal Anchor OBMrHAnc 2 Horizontal axis position of media object anchor.
- Transparency Boolean Use an opaque or transparent overlay.
- Blink Boolean Determines whether marker 1 155 blinks.
- Mouse sensitive Boolean Determines whether marker 1155 is be mouse sensitive.
- Transparency RGB marking media Color (only if the transparency flag is set or for text media).
- Marking Media Blink UINT 16 The rate at which the marking Rate (only if the blinks (in Time Units as Blink Flag is set) defined in the stream header).
- Target Media string N The full path of the media which is linked as target 7003 to the media object.
- Link Media Level UINT Level in which media object is located. The level may establish the order in which multiple targets are executed, as previously described above.
- any of the string parameters may contain a NULL if the parameters are not applicable, or if parameters in a lower layer parameters are to be used instead. If the Marker Media or the Target Media path string is set to NULL, all other corresponding parameters will not be encoded when authored or recognized when played.
- the Marker Media file may be any of the following types: Image file, Animation file, Low Bandwidth Video file or Text file. These media types can all be used to mark a media object by overlaying the media relative to corresponding media object position. Note, the transparency attributes are defined by the transparency flag.
- an anchor is defined.
- the anchor is a position in the hotspot, such as left, center, right or cursor position for the horizontal dimension, and the top, center, bottom or cursor position for the vertical dimension.
- the exact position of the overlaying marker can be described by defining the hotspot anchor and the media offset from this hotspot anchor. If the marker media is text media, and the transparency flag is set to off, the transparency color will be used as a background color for the text media.
- the Target path can point to any file type, such as a media file, that is supported by a recipient client.
- a relatively unlimited number of targets 7003 may be associated with each instance of a media object.
- the target(s) 7003 defined in the third layer supplement the target(s) 7003 defined in the second layer..
- the Target Media Sequence attributes define the sequence in which multiple targets 7003 are executed. Each target 7003 is assigned to a level 7601. Targets on the same level, play simultaneously. Targets, on a layer such as the second and successive levels 7601, begin playing when the preceding level 7601 is terminated, and the target(s) 7003 on the predecessor level 7601 have stopped playing, a level 7601 terminates when the target 7003 defined as the leader target 7602 ends playing, as described above.
- the Target Media Sequence attributes also determine how base target(s) 1 1,001 are manipulated when the media object is actuated, and when each target 7003 ceases playing.
- the Target Media Display attributes define the position and size of the window in which a target 7003 is displayed upon its execution.
- Streaming hypervideo can be authored and displayed by modified versions of the authoring tool 1001 and run-time module 1101.
- This section describes modified versions of authoring tools 1001 and run-time module 1101 for two streaming formats, Netshow (TM), by Microsoft (Redmond, WA), and RealVideo (TM), by Real Networks (Seattle. WA).
- the modified versions of the authoring tools 1001 and run-time module 1101 are respectively derived from the authoring tool and run-time module 1101 described above.
- a modified run-time modules 1101 plays streaming media from Netshow (TM).
- TM Real Networks
- TM RealVideo
- Netshow (TM) uses ASF.
- RealVideo (TM) uses a different video streaming format, the RM format.
- the modified version of the run-time module 1101 for Netshow (TM) can display the Netshow (TM) compatible hypervideos created by the modified version of the authoring tool 1001 for Netshow (TM).
- the modified version of the run-time module 1101 for Netshow (TM) includes an ActiveX control, which facilitates embedding hypervideo in HTML pages and other applications supporting OLE/ActiveX controls.
- the ActiveX control in the modified version of the run-time module 1101 for Netshow (TM) may make use of the Netshow (TM) ActiveX control to stream video.
- the modified version of the authoring tool for Netshow may include the following functions.
- One or more .AVI and .MOV files may be imported into the modified version of the authoring tool for Netshow (TM) which may be used to create a hypervideo 10,007.
- other types of media files such as motion picture experts group (MPEG) files, may be used to create a hypervideo 10,007.
- Media objects can be defined and tracked, automatically or manually, in the visual media (e.g. the AVI and .MOV files).
- Media object properties such as name, media object description, click and over cursors, and linked targets 7003 (e.g. URL, seek to frame, play another ASF file), may be defined for each media object.
- ASF markers (not to be confused with media object, or hotspot, markers) may be used to identify specified times or frames.
- Time-based events including ASF script commands, (e.g. description, URL flip, play another ASF file) may be defined.
- Properties for an ASF file e.g. author, copyright, description, rating, title, bit rate, and window size
- Hypervideo data may be saved in a project file 1670.
- Video, and other multimedia data may be exported into an ASF file.
- the modified version of authoring tool for Netshow (TM) 15,000 has a GUI 15,001 , illustrated in Figure 15, that is similar to the GUI 10,001 for the authoring tool 1001 described above.
- the GUI 15,001 of the modified version of the authoring tool for Netshow (TM) 15,000 may include the following GUI 15,001 components: menu bar 15,005, main tool bar 15,007, Media Warehouse window 15,003, Workshop Window 15,01 1 and two floating tool bars, the hotspot tool bar 15,008 and the workshop tool bar 15,009.
- the menu bar 15,005 may include the following headings and commands: File:
- the main tool bar 15,007 includes buttons, which may be associated with menu bar 10,005 commands, and include: New, Open, Save, Revert. Undo, Cut, Copy, Paste, Settings, About.
- buttons which may be associated with menu bar 10,005 commands, and include: New, Open, Save, Revert. Undo, Cut, Copy, Paste, Settings, About.
- New, Open, Save, Revert. Undo, Cut, Copy, Paste, Settings, About The functions of the foregoing commands and buttons are known and understood by those skilled in the art.
- the Media Warehouse window 15,003 may support media elements 1690 whose corresponding media files 1680 are either in AVI or QuickTime formats.
- the Import Media File dialog 2001 thus, may only present
- the Import Media File dialog 2001 may display other types of media files, including MPEG video files.
- the Media Warehouse window 15,003 control bar will include new
- the Relative Path Name button may be included in the Media window control bar.
- a switch such as the right button of a mouse
- various commands in a displayed menu, are displayed and can be executed.
- One command facilitates the display of a list of all the hotspots 8003 defined in the media corresponding to the thumbnail illustration 4007. This command may also permit the target(s)
- Video Media Properties dialog will be displayed.
- the Video Media Properties dialog includes the General, Preview, Hotspots,
- the Workshop window 8001 of the modified version of the authoring tool for Netshow (TM) 15,000 may include the features of the Workshop window 8001 described above, with the exception that:
- targets 8003 may only be defined in the Hotspot Properties sheet 7101. In this embodiment, targets may no longer be defined using a drag and drop technique with media elements 1690 in the Media Warehouse window 15,003; (3) an indication of an ASF marker with its label may be displayed on top of the current working frame; and
- ASF markers may be edited, removed and added by accessing the Media Warehouse window 15,003 only.
- the Set Target button 9015 may be present in the
- the GUI 15,001 of the modified version of the authoring tool for Netshow (TM) 15,000 may include a Hotspot Properties Sheet 16,101, as illustrated in Figure 16.
- Each Hotspot Properties Sheet 16,101 is uniquely associated with a hotspot 8003.
- the Hotspot Properties Sheet 16,101 may include a Targets, or link, page 16,001 that facilitates linking target(s) 7003 to the hotspot 8003.
- the Targets page 16,001 may permit the following types of targets 7003 to be linked to a hotspot 8003: a new ASF stream 16,201 to be played by the Netshow ActiveX (TM) control; flip URL 16,203; and seek to another position in video by frame number 16,205 or ASF marker 16,207.
- a target 7003 may be browsed in a frame screen 16,901 on the Targets Page 16,101. Specific frames or time base times in the target 7003 may be displayed by specifying a corresponding ASF marker.
- the frame screen 16,901 replaces the frame window 7901 used in the GUI 10,001 of the authoring tool 1001 described above.
- the General Properties page of the Hotspot Properties Sheet 16,101 may be similar to the General Properties page 7103 of the GUI 10,001 of the authoring tool 1001 described above.
- the GUI 15,001 of the modified version of the authoring tool for Netshow (TM) 15,000 may include a Media Properties Sheet 17,003, illustrated in Figure 17.
- the Media Properties Sheet 17,003 may be similar to the Media Properties Sheet 5003 of the GUI 10,001 of the authoring tool 1001 described above.
- the Media Properties Sheet 17,003 may be modified to define time-based events, markers 1155 and ASF file properties by including additional pages such as events, properties and markers pages.
- the Events page 17,101, illustrated in Figure 17, facilitates implementation of time-based events (e.g. ASF Script Commands).
- a frame, or time code, 17,103 and event 17,105 to be activated upon display of the frame 17,103 may be specified.
- the events that can be specified include change the ActiveX control's description 17,11 1 , URL flip 17,113, and launch a new ASF file 17,115. This technique is similar to notification frames 1157 described above.
- the ASF Markers Page facilitates the assignment of ASF markers for specific frames, or times in a time base.
- the ASF markers can also be viewed in the Workshop window 15,011.
- the Media Properties Sheet 17,003 may include a Properties page
- the Properties page 18,001 may be similar to the Details page 5001 of the GUI 10,001 of the authoring tool 1001 described above.
- the Properties page 18,001 facilitates definition of properties for ASF media files.
- the properties may include title 18,003, author 18,005, copyright 18,007, description 18,009 and rating 18,011. Exporting Media
- Hypervideo data and media may be exported by the authoring tool 1001 into an exported file.
- the modified version of the authoring tool for Netshow (TM) 15,000 may export the hypervideo data to an ASF file so that the ASF file includes both video and hypervideo data.
- TM authoring tool for Netshow
- a Properties page for example for the ASF file properties, is displayed.
- the Properties dialog may be similar to the Properties dialog used in the Microsoft Netshow Editor.
- the properties dialog may permit specification of bit rate properties and modification of ASF properties.
- a Save file dialog may appear if the exported file is saved.
- the ActiveX (TM) control of the modified version of the run-time module for Netshow (TM) may have the following functions:
- Open, play, stop and pause ASF files including those ASF files created by the modified version of the authoring tool for Netshow (TM) 15,000;
- the target(s) 7003 may include: flip URL, seek to a position (e.g. frame) of a video, and play another ASF file;
- time-based events including: change status bar description, flip URL, and play another ASF file; and Display properties of an ASF file.
- the ActiveX (TM) control for the modified version of the run-time module for Netshow (TM) may be an embedded control.
- the Active X (TM) Control for the modified version of the run-time module for Netshow (TM) GUI 19,001, illustrated in Figure 19, may include one or more of the following bars: a status bar 19,013, a display bar 19,011, and a control bar 19,003.
- the status bar 19,013 may be used to display text, describing the status of the ASF streaming process.
- the status bar 19,013 may be changed using the change description event of ASF.
- the display bar 19,01 1 may indicate the current playing time of a video.
- the display bar 19,011 may be shown only in accordance with the ShowDisplay property.
- the control bar 19,003 may include a Play/Pause button 19,005, a Stop button 19,007 and a Time Slider 19,009.
- the ActiveX (TM) control for the modified version of the run-time module for Netshow (TM) GUII 19,001 may also have a properties dialog.
- a pop-up floating menu may be displayed when a button, such as the right mouse button, is actuated, or clicked.
- the menu may include the following selections: Play, Pause, Stop; Display, Controls. Status bar; Properties; About.
- the Properties dialog box may resemble the Properties dialog box of the Microsoft (TM) Netshow (TM) On-Demand Player, and will allow setting the following properties: play count, auto rewind, auto start, display size, control display, buffering and streaming parameters.
- the ActiveX (TM) control for the modified version of the run-time module for Netshow (TM) 19,000 may have the following OLE/ActiveX properties, in addition to the typical properties of ActiveX controls: AutoRewind, AutoStart, FileName, DisplaySize, PlayCount, ShowControls, ShowDisplay, ShowStatusBar, AnimationAtStart, InvokeURLs, TransparentAtStart, TransparentAtStop, StatusDescription.
- the ActiveX (TM) control for the modified version of the run-time module for Netshow (TM) 19,000 will consume relatively little memory, and will utilize the functionality of the Microsoft (TM) Netshow (TM) On-Demand Player ActiveX (TM) control around which the ActiveX (TM) control for the modified version of the run-time module for Netshow (TM) 19,000 is wrapped.
- TM Hypervideo Authoring Tool for RealVideo
- TM uses a proprietary format, not the ASF, utilizing Image Maps and Events files.
- the authoring tool 1001 described above, has been adapted to support the RealVideo (TM) Image Maps files and the RealVideo (TM) Events files, known to persons skilled in the art, to create interactive RealVideo (TM) files.
- the Image Map files and the Events files may respectively define hotspots 8003 and notification frames 1157, as described above.
- the modified version of the authoring tool for RealVideo (TM) may be designed to operate separately from the RealVideo (TM) run-time environment.
- the modified version of the authoring tool for RealVideo (TM) need not be linked to the RealVideo (TM) run-time environment, other than by exporting hypervideo data to the RealVideo (TM) Image Map or Events files whose data is used by the Real Video (TM) runtime environment.
- this embodiment may lack the capability to preview a hypervideo.
- the modified version of the authoring tool for RealVideo (TM) has:
- No publish utilities for defining the path of the project file 1670 e.g. .obv file.
- GUI 20,001, illustrated in Figure 20 for the modified version of the authoring tool for RealVideo (TM) 20,000 may be similar to the GUI 15,001 of the modified version of the authoring tool for Netshow (TM) 15,000 described above. However, both GUIs 15,001, 20,001 may not necessarily be identical.
- GUI 20,001 of the modified version of the authoring tool for RealVideo (TM) 20,000 may include the following GUI 20,001 components: menu bar 20,005, main tool bar 20,007, Media Warehouse window 20,003, Workshop Window 20,011 and two floating tool bars, the hotspot tool bar 20,008 and the workshop tool bar 20,009.
- the menu bar 20,005 may include the following headings and commands: File: New
- the main tool bar 20,007 for the modified version of the authoring tool for RealVideo (TM) 20,005 may not include the Project Settings, Project View, Project Preview.
- the modified version of the authoring tool for RealVideo (TM) 20,005 has a Media Warehouse Window 20,003.
- the Media Warehouse window includes a control bar 20,010.
- only AVI & QuickTime media files may be supported by the modified version of the authoring tool for RealVideo (TM).
- all other types of media files may not be imported into the Media Warehouse Window 10,003.
- the Import Media File dialog 2001 may only present *.avi and *.mov file selection.
- other media file types may not be imported even if the "All Files *.*" option is used, or if an .obv file created by the authoring tool 1001 is used.
- other media files such as MPEG files, may be imported.
- the Media window warehouse 10,003 control bar may include 'Export', and 'Export All' buttons.
- the Relative Path Name button may be included in the Media window control bar.
- a switch such as the right button on a mouse
- the menu options then can be selected, and include the commands Export and Export As... .
- Another menu option that can be selected displays a list of the hotspots 8003 in the media.
- RealVideo (TM) 20,005 has a Media Workshop Window 20,01 1. Many of the features of the media workshop window 8001 of the authoring tool 1001 may also be found in the media workshop window 8001 of the modified version of the authoring tool for RealVideo (TM). For example, the menus 15,101, displayed when a switch, such as the right mouse button, is activated regardless as to whether the pointer is over or not over a hotspot, will remain the same.
- the authoring tool and player for RealVideo (TM) may support the z-axis ordering of hotspots 8003, as described above.
- the Preview button may not be used in the authoring tool for RealVideo (TM) 20,005, for example in the workshop tool bar 20,101.
- the modified version of the authoring tool for RealVideo (TM) 20,005 has a workshop tool bar 20,009.
- Features of the Tools window 9001 of the authoring tool 1001 may also be found in the workshop tool bar 20,009 of the modified version of the authoring tool for RealVideo (TM) 20,000.
- the Set Target button 9015 may not be included in the workshop tool bar 20,009.
- the Ellipse Button 20,101 is used to draw circles rather than ellipses.
- GUI 20,001 of the modified version of the authoring tool for streaming video may exclude the following features found in the GUI 10,001 for the authoring tool 1001 described above:
- the GUI 20,001 of the modified version of the authoring tool for RealVideo (TM) may include a Hotspot Properties sheet 21,101, illustrated in Figure 21, similar, but not necessarily identical, to the Hotspot Properties sheet 16,101 described above.
- Each Hotspot Properties sheet 21,101 is uniquely associated with a hotspot 8003, and may include a general and links, or targets, page. In one embodiment, however, the Hotspot Properties sheet 16,101 may not have a Target Properties page.
- the over and click cursors may be dropped from the General page because the RealVideo (TM) system uses only the hand cursor.
- Targets 7003 required by the RealVideo (TM) run-time environment may be specified in the Target page 21,001 of the Hotspot Properties sheet 21,101.
- the Target page 21 ,001 may include at least the three types of targets 7003 that are executed upon actuation of a corresponding hotspot 8003, and are supported by RealVideo (TM).
- the targets 7003 include Seek 21,107, Player 21,103 and URL 21,105.
- the Seek 21,107 target identifies a frame number 21,108 in the video currently being displayed.
- the video jumps to the frame having the frame number 21,108, and then that frame and successive frames are then displayed.
- the video may be previewed on the Target page 21,001.
- the frame corresponding to the frame number 21,108 may be selected during such previewing.
- a Mark button 21,111 may be actuated so that the corresponding frame number 21,108 is entered as the Seek 21,107 target.
- the Player 21,103 target is another multimedia stream whose location is defined by a stream URL 21,104.
- a corresponding hotspot 8003 is actuated, the multimedia stream at the stream URL is executed, or performed.
- the URL option a URL address must be identified.
- the GUI 20,001 of the modified version of the authoring tool for RealVideo(TM) 20,000 may include a Media Properties Sheet similar to the Media Properties Sheet 17,003, illustrated in Figure 17.
- the Media Properties sheet may, however, not include Defaults or Publish pages.
- an Events page such as described above, may be added to the Media Properties Sheet.
- the formats of project files 1670, associated with the authoring tool 1001 and the modified version of the authoring tools for RealVideo (TM) 20,001 and Netshow (TM) 15,001 may be compatible.
- Project files 1670 e.g. .obv files
- Each authoring tool may use only the project file 1670 data corresponding to the features that the authoring tool supports.
- Hypervideo data for RealVideo (TM) multimedia files may include both hotspot 8003 and notification frame 1157 data.
- hotspot 8003 and notification frame 1 157 data are initially stored in a project file 1670 (e.g. .obv file).
- the project file 1670 will be associated with only one media, e.g. video, file.
- the modified version of the authoring tool for RealVideo(TM) 20,000 facilitates the exportation of the hotspot 8003 and notification frame 1 157 data from the project file 1670 into separate files, respectively an Image Map file and an Event file.
- the Image Map file stores hotspot 8003 data.
- the Event file stores notification frame 1157 data.
- the Image Map and Event files utilize RealVideo (TM) formats known to persons skilled in the art.
- each RealVideo (TM) multimedia file may include only one video file.
- the Image Map and Event files will only contain hotspot 8003 and notification frame 1157 data for this sole video file.
- the modified version of the authoring tool for RealVideo(TM) 20,000 and associated files will now be further described in view of this embodiment.
- export settings can be defined using an Export page, or tab, in the Options
- the Export page can also be used to define the length of each frame sequence for each Image Map, further discussed below.
- the length of each frame sequence associated with an Image Map can be determined by corresponding transmission line bandwidth (e.g. 28800 kbps, 33600 kbps, ISDN, etc.), and other parameters set in the authoring tool for RealVideo(TM) 20,000.
- the Image Map or Event file can be created by invoking either the Export or Export As... commands.
- the Export command exports the ImageMap or Event file to the specified path.
- the Export As... command invokes an Export dialog in which the specified path may be redefined.
- An illustration of an exemplary Export dialog 22,001 invoked by the Export As... command is illustrated in Figure 22.
- the Export dialog 22.001 invoked by the Export As ... command may include a browse button 22,003 and a thumbnail illustration 4007 of the video with which the Image Map or Event file is associated.
- the browse button 22,003 known to persons skilled in the art, permits perusal of other predefined paths for exported Image Map or Event files.
- Map or Event files can be exported substantially simultaneously for all video files associated with a hypervideo 10,007 by invoking the Export All command.
- Export dialogs 22,001 are displayed for the videos for which no Image Map path was previously defined.
- the commands for exportation, described above, may be invoked in the following manners:
- Transformation Process Invocation of the Export commands causes the hotspot 8003 and notification frame 1157 data in the project file 1670 to be transformed respectively into the formats of the Image Map and Event files. If a project file 1670 (e.g. .obv file) is re-opened and edited after an initial transformation, or exportation, then transformation by invocation of the Export commands must be repeated.
- a project file 1670 e.g. .obv file
- a hotspot 8003 in a Image Map file may only have a fixed geometry. Therefore, a hotspot 8003, whose geometry varies among frames, in a project file 1670 must be redefined as two or more hotspots 8003. each of whose geometry is fixed, in the corresponding Image Map file.
- a hotspot 8003, defined in the Image Map file may have a fixed geometry over two or more frames.
- Hotspot(s) 8003 will not be translated by the invocation of an Export command if a hotspot Enable flag is set off in a General page 21 ,002 of a corresponding Hotspot Properties sheet 21,101. Thus, such hotspot(s) 8003 will not be included in the Image Map file created by the transformation process.
- the default length of those frame sequences will be determined in accordance to the transmission bandwidth, as described above.
- a new MAP range of frames will be used for the first and last frames in which a hotspot 8003 appears to ensure that the hotspot 8003 is only provide for frames in which the hotspot 8003 was originally defined.
- the number of MAP statements created by the modified authoring tool for RealVideo (TM) 20,001 is determined by the available bandwidth of the client-server network used to perform the hypervideo 10,007.
- each Image Map or Events file must then be encoded into an .rm file using the RealVideo (TM) rmmerge tool.
- the resulting .rm file must then be encoded, or exported, into a corresponding, already encoded, media (e.g. video) file again using the rmmerge tool to create a final .rm file.
- the foregoing process is performed by the user who must twice run the rmmerge tool.
- this process is automated.
- the modified version of the authoring tool for RealVideo (TM) 20,000 not only exports the hotspot 8003 and notification frame 1157 data, as described above, but also causes the rmmerge tool to be executed so as to create the final .rm file.
- the modified version of the authoring tool for RealVideo (TM) 20,000 utilizes dynamic link libraries (DLLs), rmimap.dll and rmevents.dll, and the RealVideo (TM) software development kit (SDK).
- the modified version of the authoring tool for RealVideo (TM) 20,000 utilizes the RealVideo (TM) SDK to encode the video file into a RealVideo (TM) .rm video file format.
- an export dialog for automatic translation 23,001 illustrated in Figure 23, may be used.
- the export dialog for automatic translation 23,001 is displayed upon executing an export command.
- the export dialog for automatic translation 23,001 permits either temporary or permanent .rm files including Image Map and/or Event file data to be created.
- Permanent .rm files for Image Map and Event file data may be created upon checking the Use intermediate files box 23,101.
- permanent .rm files may be created for Image Map and Event file data may be files if their respective Build boxes 23,105, 23,107 are checked.
- temporary Image Map and the Events files are first built as temporary text files. Then, the permanent .rm files are created for the Image Map and Events file data, using the rmmerge tool.
- Respective names 23,109, 23,111 for the permanent .rm files for Image Map and Events data are specified in the export dialog for automatic translation 23,001.
- An encoded video .rm file is also created from the original video file using the RealVideo (TM) SDK only if the build box is checked. Because a video file may take minutes to encode, the build box may be left unchecked to avoid unnecessarily repeating video file encoding every time hotspots 8003 are encoded.
- the name 23,117 for the encoded video .rm file is specified in the export dialog for automatic translation 23,001. After the permanent .rm file(s) are built, the video .rm file is merged with the permanent .rm file(s).
- the rmmerge tool if at least one corresponding Merge box is checked, to create the final .rm file.
- the name 23,119 for the final .rm file is specified in the export dialog for automatic translation 23,001. If neither Merge check boxes 23,113, 23,115 is checked, then the final .rm file is not created.
- the video file is encoded into a temporary .rm file using the RealVideo (TM) SDK. If the Image Map file Merge box 23,113 is checked, then the Image Map data is translated into a temporary text file, which is translated into a corresponding temporary .rm file.
- the Events Merge box 23,1 15 is checked, then the Events data is translated into a temporary text file, which is translated into a corresponding temporary .rm file. Then, the video .rm file is merged, using the rmmerge tool, with the specified temporary .rm files to create the specified final .rm file. If both of the Merge check boxes are unchecked, the video file is simply encoded into the final .rm file.
- the export dialog for automatic translation 23,001 may include an Encoding Properties Sheet 24,000, illustrated in Figure 24A.
- the Encoding Properties Sheet 24,000 permits entry of the data required by the RealVideo (TM) Encoder.
- the Encoding Properties Sheet 24,000 may be accessed by actuating the Encoding Properties... button 23,121.
- the Encoding Properties Sheet 24,000 includes the Encoding Data page 24,001, illustrated in Figure 24A. and the Encoding parameters page 24,002, illustrated in Figure 24B. In another embodiment, the Encoding Data page 24,001 and the Encoding parameters page 24.002 may be added to the Media Properties Sheet.
- the Encoding Data page 24,001 may contain general data that will be inserted into the video .rm file.
- the general data may include the title 24,003, authorship 24,005. and copyright information 24,007 associated with the hypervideo 10,007 created in the RealVideo (TM) format.
- the Encoding Parameters page may contain parameters for the video encoding process, including: a Template box 24,101 from which standard RealVideo templates can be selected. By selecting a standard template, other data fields on the Encoding Parameters page 24,002 may be selected according to the data associated with the selected template. Changing one of the other fields will set the template field to the appropriate value (if there is no template with current parameters, Custom will be set).
- the modified version of the authoring tool for RealVideo (TM) 20,000 may be used to define and manipulate hotspots 8003 and notification frames 1 157, including defining target(s) 7003, in multiple video media files substantially simultaneously.
- the hotspot 8003 and notification frame 1 157 data may then be exported into final .rm files corresponding to each of these video files, using the process described above, in a manner similar to the Save/Save All/Save As... feature in a multi-document application.
- hypervideos 10,007 have been suggested as having fixed or static parameters. Static hypervideo 10,007 parameters can not be changed during the performance of the hypervideo 10,007.
- One example of a static project file parameter is the parameter that defines a target 7003 media file linked to a media object. Thus, the target 7003 media file can not be changed during the performance of the hypervideo 10,007.
- a viewer of a performing hypervideo 10,007 is limited to navigating through media files defined during hypervideo 10,007 authoring.
- hypervideo 10,007 parameters that may vary during hypervideo 10,007 performance.
- the hypervideo story board 1116 may change during hypervideo performance.
- Dynamic hypervideos are hypervideos 10,007 having hypervideo 10,007 parameters that may vary during hypervideo 10,007 performance.
- the hypervideo parameters may include, but are not limited to, parameters describing media objects (e.g. hotspots 8003 and notification frames 1157), targets 7003, target levels 7601, cursors, and hypervideo 10,007 display window size.
- targets 7003 of media objects may be changed, media objects may be disabled so that the media objects may not be actuated, and hypervideo 10,007 display window size may be altered during hypervideo 10,007 performance.
- the hypervideo 10,007 parameters may be varied during hypervideo
- Viewer interactions may also indirectly vary hypervideo 10,007 parameters as described below. Viewer interactions with the hypervideo 10,007 may occur, for example, when a viewer actuates a hotspot 8003, or just positions a pointer over a hotspot 8003.
- Dynamic hypervideos that communicate with application program(s) may be known as hypervideo applications.
- Hypervideo applications may be used for example for electronic commerce and co ⁇ orate training, and will be further described below.
- dynamic hypervideos may be created with a hypervideo system 25.000, depicted in Figure 25.
- the hypervideo system 25,000, illustrated in Figure 25, includes multiple servers, each having one or more components (e.g. database 25,037, project file 1670, application program 25,038, etc.)
- a client 25,003, having a player 25,039 may be coupled by a first network 25,050a to a first server 25,005a that may have a dynamic hypervideo server 25,035, logging tools program 25,047, log file 25,049 (e.g.
- the client 25,003 is also coupled by a second network 25,050b to a second server 25,005b that may have a media server 25,045.
- the media server 25,045 may include a video server and/or a web (or HTML) server.
- the first server 25,005a is also coupled by a third network 25,050c to a third server 25,005c that may have application program(s) (e.g. third party applications and/or third party servers) 25,038.
- the first server 25.005a is also coupled by a fourth network 25,050n to a fourth server 25,005n that may have database(s) (e.g. database severs) 25,037.
- the player includes a modified run-time module for receiving and processing streamed hypervideo data, and a media player (e.g. RealNetworks (TM) media player) for receiving and projecting streaming audio and video to a viewer.
- a media player e.g. RealNetworks (TM) media player
- the modified run-time module controls the media player.
- each network 25,050a-25,050n may use the Internet or an intranet, or a combination thereof.
- the hypervideo system 25,000 may include multiple clients 25,003 coupled to the first and second servers 25,005a, 25,005b.
- the additional clients may each include a player 25,039.
- an additional client 25,003 may be coupled to the first server 25,005a, and includes a modified authoring tool for creating a dynamic hypervideo.
- the modified authoring tool may be a modified version of the authoring tool 1001, described above, or a variant thereof.
- the modified authoring tool may be used to create the project file 1670 that can be transferred to the first server 25,005a electronically across a network or physically with a storage device, such as a compact disk-read only memory (CD-ROM).
- CD-ROM compact disk-read only memory
- the hypervideo system 25,000 may have fewer or more servers upon which the components are respectively consolidated or further distributed.
- the servers and client(s) may be interconnected in a different manner, for example directly coupled to one another.
- the database(s) 25,037 may include multiple databases, each of which operates with one or more components of the hypervideo system 25,000.
- hypervideo data may be streamed from the dynamic hypervideo server 25,035 to the client 25,003.
- Video data may be separately streamed from the media server 25,045 to the player 25,039.
- some hypervideo data may be exported into a multimedia (e.g. video) file by a modified authoring tool.
- the media and hypervideo data in the multimedia file may be streamed from the media server 25,045 to the player 25,039.
- the media server 25,045 may stream hypervideo data, including media object identifier data, time or frame data, shape data, and geometry data (e.g. layer one of multilayer hypervideo data stream described above), to the player 25,039.
- This technique may increase second network 25,005b transmission capacity consumption, but may reduce first network 25,005a transmission capacity consumption and dynamic hypervideo server 25,035 processing requirements.
- some hypervideo data may be processed in the dynamic hypervideo server 25,035, and not streamed to the client 25,003, to reduce the player's processing and memory requirements, and to efficiently facilitate dynamic hypervideos.
- the interaction between the player 25,039 and the dynamic hypervideo server 25,035 will now be further illustrated.
- the client 25,003 communicates with the dynamic hypervideo server 25,035 by firing events, further described below, to a dynamic hypervideo server 25,035.
- the dynamic hypervideo server 25,035 may respond by sending a command, which may include hypervideo data, to the client 25,003.
- a command which may include hypervideo data
- the client 25,003 may fire an event to the server indicating that the hotspot 8003 has been actuated.
- the dynamic hypervideo server 25,035 may stream a command, including target 7003 data identifying video files to be executed, to the player 25,039.
- the player 25,039 may then stream a request to the media server 25,045 that the identified video files be streamed to the player 25,039 so that the video files may be performed.
- Other techniques for varying project file parameters will be later described.
- Dynamic functionality provided by a hypervideo system 25,000 will now be further described.
- Hypervideo systems 25,000 may provide functions found in hypervideos 10,007, described above.
- dynamic hypervideos may include hotspots 8003, event notification 1114, and markers 1 155. Additionally, however, these features may be modified during the performance of the dynamic hypervideo, for example, based upon information derived from the database 25,037, application program 25,038, a log file 25,049, or user interaction.
- Dynamic functions provided by the hypervideo system 25,000 may include: a. Hotspot Feature Availability. Hotspot 8003 features may be enabled or disabled according to data retrieved from a database 25,037, an application program 25,0389, a log file 25,049, or due to viewer interaction.
- a dynamic hypervideo may be an interactive advertisement for a department store which may be viewed by customers.
- the dynamic hypervideo server 25,035 may ascertain the identity of customers viewing the dynamic hypervideo.
- the dynamic hypervideo server 25,035 may also query a database 25,037 to determine whether the customer holds the department store's credit card. The customers may point and click on an illustration of department store's credit card.
- the dynamic hypervideo server 25,037 may cause monthly special offers to be displayed to customers that are credit card holders. Also based upon the query results, the dynamic hypervideo server 25,037 may cause information illustrating the privileges of a holder of the department store credit card, and about how the credit card may be acquired, to customers who do not hold the department store ' s credit card.
- Project Settings General attributes of the dynamic hypervideo, including initial settings, such as base target(s) 1 1 ,001 and display parameters, may be modified.
- Media Properties Media elements 1690 of the dynamic hypervideo may have general properties unrelated to targets.
- Such properties may include:
- Audio track Videos may include corresponding audio spoken in different languages and thus stored separately, for example, on different tracks.
- a dynamic hypervideo performing in a French speaking environment may adapt to broadcast French language audio;
- a dynamic hypervideos may ascertain which, if any, version of a media, such as a video, a viewer is authorized to observe.
- a dynamic hypervideo configured for children may only display appropriately rated versions of media.
- Markers 1155 which may be used to highlight media objects, or may convey additional information associated with the media object, may be modified.
- Such markers may be overlay images, text, or special filters.
- a training hypervideo application may include a hypervideo simulation of an industrial plant.
- the dynamic hypervideo may display relevant information, such as temperature and humidity, as markers 1155 next to equipment in the industrial plant.
- the markers 1 155 may display the temperature and humidity data in real-time.
- Dynamic hypervideos may also support notification frames 1157.
- Notification frames 1157, or time based events may be implemented in media, including hypervideo applications.
- Notification frames 1157 permits information, including text, graphics and video, to be displayed in synchronization with a timebase (e.g. by frame unit or time unit) of a video to enrich the information content of a dynamic hypervideo.
- the hypervideo system 25,000 may execute a target 7003 when a hypervideo 10,007 reaches a certain time or frame (e.g. notification frame 1157).
- a target 7003 may include any of those previously or subsequently described, including an image, a video, or an executable program. Thus, for example, while a hypervideo application is displayed, slides containing relevant information may be displayed concurrently with notification frames 1157. In one embodiment, notification frame 1 157 target or frame parameters may be altered during the performance of a hypervideo.
- Data for dynamic project file parameters may be provided from the following sources:
- Object Database Connectivity ODBC
- API windows applications program interface
- the hypervideo database may obtain data from a database 25,037 by issuing a query to the database 25,037.
- placeholders e.g. variables
- the queries may be standard query language (SQL) queries.
- Hypervideo applications may be implemented with the hypervideo system 25,000 including an applications program 25,038.
- the application program(s) 25,038 may receive and/or generate data in real-time.
- Other hypervideo system 25,000 components including the dynamic hypervideo server 25,035, may serve as sources and/or destinations for such data associated with the application programs(s) 25,038.
- application programs(s) 25,038 may directly communicate with the hypervideo system 25,000 components through SDK-like interfaces. Such communications may be facilitated with ActiveX commands and events, and scripting languages such as VBScript or JavaScript. Communications between application program(s) 25,038 and other hypervideo system 25,000 components may be stored and retrieved from an intermediary file.
- data may be transferred between application programs(s) 25,038 through a database 25,037, described above.
- an application program 25,038 may send commands or data to a dynamic hypervideo server (and thus to a hypervideo 10,007) through call back objects or APIs.
- the application program 25,038 commands or data may be used to manipulate project file parameters during dynamic hypervideo performance.
- the dynamic hypervideo may communicate with the application program 25,038 by firing events, for example through a call back object, to the application program 25,038.
- a player 25,039 and an applications program 25,038 may communicate with one another directly, if a network connection exists, or indirectly through the dynamic hypervideo server 25,038.
- a hypervideo application may also include one or more application programs 25,038 that generate graphical output prepared for display.
- the hypervideo application may access the application program(s) 25,038 to obtain the graphical output, and may do so, in a manner similar to the one described above, using placeholders. If the graphical output is available, it may then be displayed.
- a kiosk may include a hypervideo system 25,000 for performing a dynamic hypervideo application that provides worldwide weather forecasting information.
- the dynamic hypervideo application may display a turning globe. A viewer may point and click on a region of the globe. Then, the dynamic hypervideo application may query a weather forecasting database to obtain next week's forecasted weather data for the selected region. The retrieved forecasted weather data may then be formulated in a bar chart by a charting application.
- the dynamic hypervideo application then may automatically display the bar chart over the selected region of the turning globe.
- the hypervideo system 25,000 may permit hypervideo 10,007 activities to be logged, by the dynamic hypervideo server 25,035, during hypervideo 10,007 performance.
- an author of a hypervideo application may specify, during hypervideo application authoring, which viewer interactions (or other hypervideo application activities) and corresponding information are to be logged.
- the logged information may be retrieved by the dynamic hypervideo server 25.035 to manipulate the performance of the hypervideo application.
- Hypervideo Applications Private, governmental and commercial organizations are becoming reliant upon network application programs that facilitate interaction within or outside the organizations. In order to make the application programs more compelling and intuitive to users, the application programs should include dynamic content.
- application programs may be enriched by including visual media. including graphical and animation.
- Application programs may be made more intuitive to users by allowing the users to interact with the visual media, such as with videos.
- viewers can navigate and access a variety of databases, forms, etc., including knowledge databases, purchasing forms, instructional material or any other services provided by the application.
- Exemplary hypervideo applications include:
- Businesses ranging from small retailers to large manufacturers, are availing themselves of the Internet and other networks to promote, market and sell their services and products.
- Electronic commerce solution providers offer toolkits for developing and managing on-line web sites, stores and catalogs. Such toolkits may facilitate storefront creation, transaction processing, and electronic distribution of software or data. Lack of potential customer interest in sites created with such toolkits has lead businesses to look for more compelling web sites. Video can be used to make such web sites more alluring to enhance potential customer interest and enhance product promotion.
- the purchase process may be implemented with a hypervideo application provided by the hypervideo system 25,000 including an electronic commerce application program.
- the hypervideo application may be dynamic.
- a web site may include the dynamic hypervideo application whose parameters may vary, for example depending upon date or time, or depending upon the customer accessing the web site.
- the hypervideo system 25.00 may record the activities performed by customers during their visits to the web site.
- An exemplary electronic commerce hypervideo application will now be described. Potential customers may view and interact with a hypervideo application on a web site of a clothing store.
- the hypervideo application displays a fashion show in which models exhibit garments while walking down a runway.
- a potential customer may point and click on a garment worn by a model to obtain information associated with the garment, and to obtain an order form which can be completed to buy the garment.
- the hypervideo application may be dynamic.
- the information, displayed on a player 25,039 when a potential customer points and clicks on a hotspot associated with a garment, may vary in real-time.
- the price of the garment may be varied in real-time.
- the dynamic hypervideo server 25,035 may query a database 25,037 including the garment prices.
- the garment prices in the database 25,037 may be varied in real time.
- the dynamic hypervideo server 25,035 may cause a discounted sales price to be displayed for the garment.
- the dynamic hypervideo server 25,035 may then facilitate the customer's purchase of the garment at the discounted sales price .
- Intranets to provide training services to their employees, or other parties. Parties may participate in prepared lessons, practice drills, or view live demonstrations. Video is already being used in training, for example to display live demonstrations.
- Hypervideo applications however, enhance the allure and accuracy, and hence the effectiveness, of training.
- An exemplary hypervideo application for training will now be described.
- a trainee may view a hypervideo application that displays an experiment conducted in a laboratory of a chemical plant. The trainee may point and click on one of the chemicals reacting during the experiment.
- data obtained by the dynamic hypervideo server 25,035 from a database 25,037 or an application program 25,038 at that point in time during the experiment may be displayed.
- Media-Intensive Application Organizations may store large quantities of video which may be retrieved over networks, such as intranets, the Internet, or combinations thereof.
- the videos may be stored in a video database 25,051.
- news services may store numerous videos of past and present news stories on servers.
- a hypervideo application may be formed from the videos to permit viewers to interact with the 'videos'. For example, a viewer may point and click on a person or item displayed in a video so that further information, such as a snapshot or related articles, about the selected person or item is displayed to the viewer.
- Interactive advertising for example online advertising, has unique capabilities in comparison to other forms of advertising. Viewers of interactive advertising may readily access further information about an advertised product or service, or conversely readily ignore such advertising. Further, interactive advertising applications may record data relevant to advertising effectiveness, including the type and frequency of information sought by viewers. For example, the recorded data can be used to bill advertisers based upon the information displayed to the viewers.
- Interactive advertising may be implemented in a more effective and alluring manner with dynamic hypervideo applications.
- An online advertisement hypervideo application may permit interactive advertisements to be altered in response to viewer actions.
- An exemplary dynamic hypervideo advertising application will now be described. While watching an advertisement, such as an automobile advertisement, a viewer may point and click on a hotspot associated with a car, shown driving along a picturesque shoreline highway, to obtain further information about the car. Other targets, executed when the car hotspot is actuated, may include a purchase order form or a chart of current revenue figures related to sales of the car model.
- Hypervideo applications may have multi-pu ⁇ oses, for example electronic commerce, advertising, and training.
- An illustration of a multi-purpose dynamic hypervideo application follows.
- a kitchen appliance retailer implements an online store to sell kitchen appliances. Their web site permits viewers to look at and purchase items used in a kitchen, including cutlery and cabinet sets.
- the web site includes:
- Interactive sections, or attractions including a recipe corner in which renowned chefs demonstrate cooking their favorite dishes, and the utensil corner in which cooking utensils are demonstrated.
- a home page for regular customers of the kitchen appliance retailer, where the regular customers may obtain special purchase offers, or receive guidance about designing their kitchens.
- Another service for regular customers may also include creation and maintenance of online wedding gift lists.
- the kitchen appliance retailer's computer system may include aa database 25,037, a system administrator, a media server 25,045, an internal local area network (LAN) 25,050, and a dynamic hypervideo server 25,035.
- the interactive recipe corner may include streaming hypervideos of chefs preparing their favorites dishes.
- the hypervideos 10,007 may be embedded inside HTML pages, which may include more information about the corresponding recipe and the final product.
- the HTML page may change as dish preparation proceeds. Pointing and clicking on a product found in the hypervideo 10,007 may cause more information to appear (e.g. pop-up) about the product. Pointing and clicking on an appliance may cause a query of the retailer's database to obtain information about the appliance.
- the information may be displayed to the user as an HTML page in a frame separate from the video.
- the appliances, found in the retailer's current inventory may be marked (e.g. highlighted) in the hypervideo application. Appliances which are on special sale may be marked with SALE tags.
- Pointing and clicking on a hotspot corresponding to an appliance may display, instead of the originally viewed media, a demonstration video of the appliance.
- the actuation of the appliance hotspot may also cause another target 7003 to be executed.
- a URL flip may be executed to display details about the selected appliance in another frame.
- the newly displayed video may also include a small image on it reciting BUY NOW.
- BUY NOW image an order form for the corresponding appliance may be displayed to permit the viewer to purchase the appliance from the retailer.
- Hypervideos 10,007 and hypervideo applications may be used to provide interactivity for the following: co ⁇ orate training, distance/web-based learning, multimedia display kiosks and point of sale terminals, video archive retrieval, electronic commerce (e.g. online stores), security systems, medical analysis and treatment systems, entertainment systems, advertising, hotel information provision, real estate sales, architectural design demonstration, industrial tele-operation, home video display, adult entertainment display, customer support automation, catalogs, sales force automation, and co ⁇ orate communications.
- data for dynamic hypervideo parameters may be extracted from a database 25,037.
- Data extracted from database(s) 25,037 and application(s) 25,038 may be in a raw format, such as binary numbers or text, or in a processed format, such as graphics or a video.
- data from external sources e.g. database(s) 25,037, application program(s) 25,038, log file(s) 25,049), may be integrated into a hypervideo application in a two step process. First, data from an external source may be accessed, and relevant data retrieved by the hypervideo system 25,000. Second, the retrieved data can either be processed for display, or provided, for example to the dynamic hypervideo server 25,035, to control dynamic hypervideo performance.
- a hypervideo 10,007 may be used as an interface to permit a viewer to access data from a database in an intuitive manner.
- dresses for which hotspots 8003 are defined, may be marked with tags displaying their price. Such prices may updated in real time through the clothing store's database.
- a web site may provide support for truck engine mechanics. Videos of truck engines may be displayed through the web site. The videos include hotspots 8003, which allow viewers, such as truck engine mechanics, to point and click on truck engine parts to obtain information about those parts. The site maintains a database of registered truck engine mechanics.
- truck engine mechanics that match the web site's registrations may be allowed to obtain information about the parts, linked to hotspots associated with the parts, and displayed when the registered truck engine mechanics point and click on corresponding hotspots 8003.
- Others, not identified in the database may only view the video, and may not access the part information.
- an authoring tool 1001 may access the database
- the authoring tool 1001 may partially access the database 25,037 so that table structures, but not data, are available to the authoring tool 1001 when a hypervideo application is authored.
- Databases including multimedia and video are special types of external databases, and may also be used in a hypervideo 10,007.
- Databases, including multimedia and video databases may be accessed to dynamically insert new media in a hypervideo 10,007 during the performance of a hypervideo 10,007.
- Videos or pictures, that were not originally authored in a hypervideo 10,007 may be displayed during the performance of the hypervideo 10,007.
- a broadcasting network having a large database of reportage video, in which images of persons are marked. A viewer may point and click on a person's image to access the broadcasting network's database to retrieve the most recently available photograph of the person. The photograph may then be displayed side by side with the currently playing hypervideo 10,007.
- Multimedia and video database data types, used in hypervideo 10,007s may include video, images, sound, music, cursors, icons, etc.
- hypervideo 10,007 data may be stored in a database, such as a conventional database, rather than in a project file 1670 which may use a proprietary format.
- the hypervideo 10,007 data such as the hypervideo 10,007 data corresponding to media and media objects, may be readily accessed, for example by a standard query language (SQL) query.
- SQL standard query language
- the hypervideo 10,007 data in a database may be accessed and manipulated to modify hypervideo 10,007 performance and/or to permit logging or the acquisition statistics pertaining to hypervideo 10,007 performance.
- the hypervideo 10,007 statistics may be derived from user interactions with a hypervideo 10,007.
- the hypervideo 10,007 data stored in a database 25,037 may include the range of frames in which a hotspot 8003 is defined, location of notification frames 1 157 in a video, the number of video frames displayed, or the number of times a hotspot 8003 has been actuated.
- the hypervideo system 25,000 may also log information about and during the performance of a hypervideo 10,007. To this end, the hypervideo system 25,000 includes logging tools 25,047 that permit:
- the logging information may be used to alter the parameters of the hypervideo 10,007. 3. Analyzing offline statistics about logging information gathered during hypervideo 10,007 performance (e.g after or during hypervideo 10,007 performance).
- the logging requirements, or data to be logged may be specified.
- the data to be logged may be specified by the authoring tool 1001, or with logging tools 25,047.
- the logged data may include the hypervideo 10,007 activities that initiate logging, and the corresponding information to be logged.
- Data to be logged may be customized for each hypervideo 10,007.
- a hypervideo 10,007 may create data that logs each hotspot 8003 that is activated when a viewer points and clicks on the hotspot 8003.
- the hypervideo 10,007 may also log each occurrence of a pointer being positioned over a specified hotspot.
- a hypervideo scripting language may be used to define the activities and the corresponding information to be logged during the performance of a hypervideo 10,007.
- the logging tools 25,047 may permit application managers to statistically analyze and interact with a hypervideo application based upon the logged data. So that it may be readily accessed by application programs (s) 25,038, and their managers, logged data may be stored in logging file(s) 25,049 in a standard format. For example, logged data may be stored in logging file(s) 25,049 in database formats supported by the application program(s) 25,038.
- the hypervideo system 25,000 may log data pertaining to a specific viewer's interaction with a hypervideo 10,007. Thus, an application administrator may be informed of the viewer's interaction with the hypervideo 10,007.
- the hypervideo 10,007 may also log data pertaining to specific interactive features (e.g. hotspots 8003) actuated by any viewer of the hypervideo 10,007.
- the authoring tool GUI 26,001 for the hypervideo system 25,000 is similar to the authoring tool GUIs 10,001, 15,001, 20,001 described above, but may have additional features.
- One additional feature may be that the authoring tool permits more windows to be displayed simultaneously.
- Some of the other extra features in the authoring tool have their own window.
- the authoring tool GUI 26,001 for the hypervideo system 25,000 may include a Queries window and a Handlers Notebook window, later described.
- Any window such as window 'x', may be displayed by actuating a "View 'x' Window” button on the control bar 26,007 of the authoring tool GUI 26,001 for the hypervideo system 25,000.
- the authoring tool GUI 26,001 for the hypervideo system 25,000 will now be described in further detail.
- the Media Warehouse window 26,003 may support media file types including: Video, Image, Text, Sound, Music, HTML, Executable, Animation, Virtual Reality Modeling Language (VRML), QuickTime VR (TM), and SQL queries used as targets.
- Media file types including: Video, Image, Text, Sound, Music, HTML, Executable, Animation, Virtual Reality Modeling Language (VRML), QuickTime VR (TM), and SQL queries used as targets.
- a database 25,037 that is object oriented may be used to enhance the user-friendliness of the authoring tool GUI 26,001 of the hypervideo system 25,000.
- Queries to the database 25,037, or other external data sources including applications 25,038, may be objects, which may be created, edited, manipulated, and referred during the authoring process. These query objects may be used as targets, linked to media objects, that for example may require a hypervideo's viewer to provide information so that the query object may retrieve data from a database 25,037 or other external data source. The retrieved data may be used to vary parameters of a hypervideo 10,007.
- the authoring tool GUI 26,001 of the hypervideo system 25,000 includes a Queries Warehouse 26,072 and corresponding Queries Warehouse window 26,071.
- Query object elements may reside in the Query Warehouse 26,072.
- Icons 26,073 of Query object elements may reside in the Queries Warehouse window 26,071.
- the Queries Warehouse may function analogously to the Media Warehouse 1003.
- the query object parameters defined in a dynamic hypervideo may be saved with other dynamic hypervideo parameters, for example, in a project file or in a database 25,037.
- the Queries Warehouse window 26,071 may function analogously to the Media Warehouse window 26,003.
- the query object elements may be associated with query objects.
- the Query Warehouse window 26,071 may permit the query objects to be manipulated.
- the Query Warehouse window 26,071 may include a control bar 26,075 that includes relevant buttons, for example buttons for Properties 26,077, New Query 26,079, Detailed List 26,081, etc.
- the Queries Warehouse window 26,071 may be displayed or hidden as desired by the authoring tool GUI 26,001 user.
- the New Query button 26,079 may be actuated, such as by pointing and clicking. Actuation of the New Query button 26,079 may cause a Query dialog to be displayed.
- the query corresponding to the query object may then be defined, for example, in a step by step manner, in the Query dialog, or wizard.
- a corresponding query element may be placed in the Query Warehouse 26,072
- a corresponding icon 26,073 of the query element may be placed in the Query Warehouse window 26,071, and a corresponding query object is created.
- the query associated with the query object may be later edited using the Query Properties page which is later described.
- successive pages of the Query dialog are displayed to permit the step by step entry of the query.
- the query may be defined with the standard query language (SQL).
- SQL standard query language
- only common or basic SQL commands may be supported by the Query dialog.
- more complex SQL queries may be implemented by allowing the SQL queries to be textually edited.
- the first displayed page is the Data Source page 27,001 of the Query dialog 27,000, illustrated in Figure 27.
- the source of data 27,003 upon which a query operates may be defined in the Data Source page 27,001.
- any SQL database, having an ODBC driver installed may be selected.
- the database file upon which the query operates may be defined in the Data Source page 27,001.
- the query may be defined.
- the query may be a predefined query selected from predefined queries listed on the Query page 27,005. If selected, the parameters of the predefined query may be provided to the query object, and may be later altered.
- the query may be defined.
- columns 28,005 to be used in the query may be first selected from available columns 28,005 in the selected database file using the Choose Columns page 28,000, illustrated in Figure 28.
- the Choose Columns page may also be used to display tables in the selected database file.
- the query may be defined in the Filter Data page 29,000, illustrated in Figure 29.
- the query may be defined by combining some or all selected columns 28,005 with logical operators 29,003.
- the query 30,001 may be reviewed and edited in another page, the SQL page 30,000, illustrated in Figure 30. Further, in the SQL page, the Access Database option 30,003 may define the frequency of database file access, permitted by the query 30,001 , to extract data from the database file. In one embodiment, the database file may be accessed everytime the query 30,001 is used so that current database information is provided in response to the query 30,001. In another embodiment, the database file may be accessed a limited number of times, such as just once, for example when the query 30,001 is first used, or prior to dynamic hypervideo performance. Upon actuating the
- Advanced button a more sophisticated query editor may be displayed. In the more sophisticated query editor, more complex queries may be created, reviewed and edited. Upon defining a query 30,001, the resulting query 30,001 may be used to extract data, that satisfies the query 30,001, from the database file.
- the Queries Properties sheet may be accessed, or opened, by actuating, such as by pointing and double-clicking on the corresponding query element icon 26,073, or by selecting the query element icon 26,073 and actuating (e.g. clicking) the Properties button 26,077.
- the Query Properties sheet may include general information about a query 30,001, for example, the corresponding SQL statement, and default parameters which may be applied when using the query 30,001 as a target 7003 or to modify dynamic hypervideo parameters.
- the Queries Property sheet may include General, SQL, and Display pages.
- the database 25,037 and database file, query name, and frequency of database file access may be shown.
- the SQL page the SQL statement may be displayed, an SQL statement editor may be provided, and the SQL dialog may be accessed.
- the Display page may include default display parameters that may determine how the results for the corresponding query object are displayed to a viewer.
- the Queries Property sheet may be the same as the Queries dialog.
- Query objects may be used in different ways for different proposes.
- a query object may be a target 7003 linked to a media object, such as a hotspot 8003 or a notification frame 1 157.
- the corresponding query 30,001 is performed when the media object is actuated.
- the query object may be linked to a media object, including a notification frame 1157, by dragging a link icon 31 ,001 from a Targets page 31 ,000, illustrated in Figure 31 , of a media object to the Query Warehouse window 26,071 and dropping the link icon on the desired query element icon 26,073.
- a Query Target (or Link) Properties page may be displayed. Parameters related to linking the corresponding query element, and media object or notification frame may be defined in the QueryTarget Properties page. Parameters relating to how data retrieved by the corresponding query 30,001 are displayed may also be defined in the Query Target Properties page.
- the query object may also be used as a marker 1 155 for a media object, for example to display the information retrieved by the query as a tool-tip for the media object.
- the information displayed by the marker 1155 may be updated.
- the query object may be used to modify dynamic hypervideo parameters.
- the query object may be a variable in a logical expression (e.g. Boolean expression).
- the data retrieved by the corresponding query 30,001 may be compared against a constant value or other query objects's data.
- the results of the logical expression may be used to modify dynamic hypervideo parameters.
- the logical expression may be used by a hypervideo object's event handler, described below.
- a dynamic hypervideos may be implemented in an object oriented manner.
- the dynamic hypervideo parameters stored in a database 25,037 or project file 1670, may be implemented in an object-oriented manner.
- a dynamic hypervideo may include the following object types:
- Target (Link) and Target (Link)-level objects which may be used to define respectively targets 7003 such as media objects, and target levels.
- the target and target-level objects may define the actuation properties of targets 7003.
- Query objects as described above.
- a media object in a dynamic hypervideo may be marked with SQL markers, tool-tip markers, and text marking.
- the SQL markers may display the results of a query, for example in a tool-tip format, and may be proximate to the media object.
- Text marking may display text, for example with no background coloring, and may be proximate to the media object.
- Tool-tip marking may display text with background coloring, and may be proximate to the media object.
- Target objects may also be implemented with SQL queries, or SQL links, and with a scripting language, or automatic linking.
- Target level objects may defined all targets 7003 on a level 7601.
- Hotframe Objects A hotframe object is a type of media object corresponding to a notification frame 1157. Each frame in a video may either be or not be a notification frame 1157. Thus, each frame may contain one or zero hotframe objects.
- a hotframe object may be linked to targets 8003 in the same manner as a hotspot 8003. The hotframe object may be linked to multiple targets 8003 and may have multiple link levels.
- the hotframe targets 8003 may be executed.
- the Create Hotframe button in the Hotframes Toolbar, is actuated.
- the Hotframe Properties sheet is then displayed so that the hotframe object properties may be modified and the targets 7003 for the hotframe object defined.
- Hotframe icon 26,501 is displayed in the right-top corner of the corresponding frame.
- the Hotframe Properties sheet for the hotframe object linked to the frame may be accessed by actuating, such as double-clicking with a left mouse button, the hotframe object, or by clicking on the hotframe with the right mouse button and selecting properties from a displayed list.
- a Hotframes page may be included in the Media Properties sheet of a media element. This Hotframes page may identify all the hotframes defined in that media, and display a thumbnail of the corresponding frame in which the hotframes are defined.
- the authoring tool GUI 26,001 of the hypervideo system 25,000 includes a Hotframes toolbar.
- the Hotframes toolbar may be similar to the hotspot toolbar and provides similar functions to manipulate hotframe objects.
- the Hotframes toolbar may be a floating toolbar which can be docked to the borders of the Workshop window 26,01 1.
- Hotframes toolbar 32,000 may include the following buttons:
- Create Hotframe 32,001 - Actuating (e.g. by pointing and clicking) the Create Hotframe button may create a new hotframe object in the current frame. If there is already a hotframe object defined in the current frame, the Create Hotframe button 32,001 may be disabled.
- Goto Hotframe 32,003 - Actuating (e.g. by pointing and clicking) the Goto Hotframe 32,003 button will cause the corresponding frame in which the hotframe, selected in the Hotframe Combo box, to be displayed in the Workshop window 26,011.
- Hotframes Combo box 32,005 contains the titles of all hotframe objects defined in the media present in the Workshop window 26,011.
- Hotframe Properties 32,007- The Hotframe Properties button may cause a Hotframe Properties page, for the hotframe object associated with the frame currently displayed in the Workshop window 26,011, to appear.
- Remove Hotframe 32,009 -Actuating e.g. by pointing and clicking
- Remove Hotframe button 32,009 may delete the hotframe object, and all associated information, that was defined for the frame currently displayed in the Workshop window 26,011. Hotframe Properties Page.
- the Hotframe Properties sheet 33,000 may include at least two pages, a General page 33,003 and a Target, or Links, page 33,005.
- the Target page 33,005 may be identical to the Target page in the Hotspot Properties sheet.
- the General page 33,003 includes general information about the corresponding hotframe object, including hotframe object name and description (which can be modified by the user), and the name of the media with which the hotframe object is associated.
- the General page 33,003 may also include an "Enable" check box, which if unchecked may disable the corresponding hotframe object (so that the corresponding hotframe may not be activated) without requiring that the hotframe object be deleted.
- the frame with which the hotframe object is associated can also be changed in the General page 33,003.
- the slider 33,701 or the Next/Previous buttons 33,801 may be manipulated to select a new frame with which to associate the hotframe object.
- the "Change frame" check box may be selected, or checked, to associate the hotframe object with the new frame. If the selected frame already has a hotframe object associated with the selected frame, then a dialog box may be displayed and may include the following options: Cancel - Make no changes to selected frame. Overwrite - Associate the hotframe object to the selected frame and delete the previous hotframe object which was previously associated with the selected frame.
- the new hotframe object may be associated with the selected frame.
- hypervideo 10,007 tools other than an authoring tool 1001 may be needed.
- the authoring tool 1001 may only be used to create hypervideos 10,007.
- additional features may be provided to the authoring tool 1001 so that it can be used to create additional functionality for hypervideo applications. Some of the additional features may include the ability to define what will happen around (e.g. in the background) of the hypervideo 10,007, provide menu options from hosting applications, and the ability to integrate HTML files.
- a performing dynamic hypervideo may be recorded by actuating a switch.
- the recorded hypervideo performance may then be later displayed offline in a linear fashion.
- the hypervideo system 25,000 may support event driven programming.
- Events are actions, including viewer actions, which may be related to a dynamic hypervideo.
- event driven programming may be implemented in an object-oriented manner.
- the hypervideo system's support for event driven programming may include an extensive bank of events and commands, and the ability to define event handlers, to receive event messages, with the authoring tool GUI 26,001 of the hypervideo system 25,000.
- Hypervideo applications may communicate with application program(s) 25,038 by firing event messages to the application program(s) 25,038.
- a recipient application program 25,038 may be affected upon receiving and processing an event message.
- event messages fired by a dynamic hypervideo make the components of the hypervideo system 25,000 that receive the event messages aware of the dynamic hypervideo's status.
- Commands may be sent by an application 25,038, or by an event handler in a hypervideo 10,007 to manipulate the performance of the same or another hypervideo 10,007.
- the commands may alter hypervideo 10,007 interactive features or other parameters, or may initiate the performance of a media within the hypervideo 10,007.
- Commands may be sent to a hypervideo 10,007 as a result of the user interaction with another hypervideo 10,007, or in response to an event triggering the command from an event handler.
- Objects in a hypervideo 10,007 may include media objects, including objects for hotspots, and objects for media, targets, target-levels, and frames.
- Each class, that instantiates an object in a hypervideo 10,007 may include a method permitting the object to fire an event message.
- each object may be defined during hypervideo 10,007 authoring to have a method(s) that are event handler(s) for receiving event message(s) during hypervideo performance.
- An event handler is a method of an object that defines how the object responds to a received event message. Even if a hypervideo 10,007 may not communicate externally, objects of the hypervideo 10,007 objects may still communicate with one another by event messages. The information retrieved from queries or logged information may be used to manipulate dynamic hypervideo performance. Event handlers may utilize variables (e.g. placeholders) corresponding to information resulting from queries, or the retrieval of logged information not performed by queries. An event handler may utilize such information to manipulate dynamic hypervideo performance. Both queries and event handlers may be executed by the dynamic hypervideo server 25,035.
- Each class of objects may have a unique set of event handlers associated with the class. Not all event handlers, which are methods, may be found in each class because some event handlers are not relevant for certain classes. For each and every object in a hypervideo 10,007, events in an object type's event list may be selected for handling, either by using a handler specified for that specific event, or by firing the events to be handled in an external environment.
- the event message may include arguments, or parameters that indicate the object that has fired the event message.
- An argument may include a string specifying the name of the object.
- Each object may have a Properties sheet 34,001, illustrated in Figure 34, that includes an Events page 34,003.
- the events 34,005 whose messages may be fired by the object may be specified (e.g. selected, by checking a box, from all events potentially fired by the corresponding object).
- event handlers, corresponding to the specified fired events may also be accessed by actuating (e.g. clicking) a Handler button 34,007, proximate to each specified event.
- the Events page 34,003 may also include a Select All button 34,009, which when actuated, selects all events potentially fired by the corresponding object.
- the Events page 34,003 may also include a Set As Default button 34,01 1 which makes the selected events in the currently displayed Events page 34,003 the default configuration for the Events pages 34,003 for other objects of the same type.
- the Events page for an object is located in the properties sheet for that object.
- the Events pages for the following objects are located in the co-listed properties pages, or as otherwise described below:
- Hotspot object In the Hotspot Properties sheet.
- Hotframes object In the Hotframe Properties sheet.
- Target Level object - In the links, or target, page in a Hotspot Properties sheet may include an Events button which may be actuated to display, or pop-up the corresponding Link Level object events sheet.
- Target, or Link, Object - In the Media link properties sheet may include an Events button which may be actuated to display, or pop-up the corresponding Link Level object events sheet.
- the Workshop toolbar may include an Events button which will display, or pop-up, the Frame object events page for the current frame.
- Hypervideo application commands may enable the performance of a hypervideo 10,007 to be manipulated.
- the commands may be issued by application(s) 25,038 or by the player 25,039, for example in response to the occurrence of an event.
- the commands may, for example, manipulate the interactive features of the hypervideo 10,007 by enabling or disabling hotspots 8003, manipulate the properties of different objects in the hypervideo 10,007, or launching a target 7003.
- Commands may include parameters which identify the action to be performed and the object to which the action is related.
- the commands that may be submitted to a hypervideo 10,007 include:
- Event Handlers An event handler is a script associated with a specific event message that may be received by a specific object. Event handlers enable relatively inexperienced hypervideo 10,007 authors to create relatively complex hypervideos 10,007, for example using substantially all supported events and commands, and to permit communications between application programs 25,038 and other components of the hypervideo system 25,000.
- each object in a hypervideo 10,007 may have a unique event handler associated with each event message that the object may fire.
- Each event handler also may access parameters, for example object name, of the object that fired the event. These object parameters may be needed by the event handler to process the received event message.
- event handlers may be written in a simple scripting language, having the following form: On Event ⁇ Condition ⁇ Do Command
- Event handlers 26,203 may be viewed in the Handlers Notebook window 26,201, illustrated in Figures 26 and 35, in the authoring tool GUI 26,001 , or through an Events page.
- different pages 26,209 displaying different event handlers 26,203 (each associated with an unique event message that may be fired by an unique object) that may be reviewed, edited or created.
- a page 26,209 from the Handlers Notebook window 26,201 may also be displayed in the Events page, discussed above.
- the Handlers Notebook window 26,201 may be hidden in the authoring tool GUI 26,001.
- the Handlers Notebook window 26,201 includes pages each of which includes a unique event handler 26,203 definition. Blank pages may be opened, and new handlers may be authored therein. New handlers created through an object's Events page are automatically added to new pages in the Handlers Notebook window 26,201.
- a particular page 26,209 which may contain a particular event handler 26,203 may be accessed in one of two ways. First, regardless as to whether an event handler is defined in it or not, a page 26,209 may be selected with specific event handler 26,203 parameters (e.g. object type and name, and the specific event) from combo boxes 26,205 in the Handlers Notebook window 26,201. If the selected page includes a predefined event handler, the event handler 26,203 may be displayed in the page 26,205 in an area 26,211 for displaying script. If the selected page does not include a predefined event handler, the script display area 26,211 may be blank. Pre-defined handlers on pages may be selected by manipulating (e.g. clicking) the Next and Previous Handler buttons 26,213. A new event may be created, or a pre-existing event edited in the script wizard, described below, which can be launched by actuating (e.g. click) the script wizard button 26,217.
- specific event handler 26,203 parameters e.g. object type and name, and the specific
- the script associated with an event handler 26,203 may be defined in a scripting wizard.
- the script area 26,211 in the Handler notebook may be used to conveniently present handlers described in script form to users who are comfortable with the concept of scripting. Other users may review the event handler script to determine whether a handler has been created, and the complexity of the event handler. In this embodiment, any modifications made to the event handler may be performed with the script wizard, in addition to altering the text in the text editing window.
- a more complicated and powerful scripting language e.g. VisualBasic or JavaScript
- VisualBasic or JavaScript may be used to permit experienced script programmers to integrate the application(s) 25,038 with other hypervideo system 25,000 components using events and commands.
- EnableHotspot FALSE, Jerusalem, Church
- ActivateLink LinkMuslimOOl
- data from a query or a log file 25,049 may define, at least in part, a logical expression, or conditional term, of an event handler 26,203.
- Each event handler 26,203 may contain an unlimited number of commands, some of which have been previously discussed. Commands may be used to manipulate hypervideo 10,007 parameters. Each command may be placed on a separate line. Each command may be accompanied with a logical expression. The logical expression may include a placeholder, or variable, associated with a query or logged information. The command may be implemented only if the logical expression is satisfied. The logical expression may be a simple Boolean expression which compares the value of a first variable to the value of a second variable or constant.
- the Script Wizard 36,000 whose window 36,001 is illustrated in Figure 36, is used to generate the script for event handlers 26,203.
- the Script Wizard 36,000 permits an event handler 26,203 to be visually programmed without manual typing (e.g. code is generated based upon user selections in the Script Wizard 36,000).
- the Script Wizard window 36,001 may be launched from the Handlers Notebook window 26,201, by actuating (e.g. clicking) the Script Wizard button 26,217.
- scripts may be defined with the Script Wizard in two steps.
- commands and associated parameters may be defined.
- conditional terms may be defined to manipulate hypervideo 10,007 parameters, described above.
- the user can either choose the desired command from the combo-box, or click the "Alphabetical Command List” button or "Topical Command List” button, and choose the command from a pop-up menu.
- a dialog may be displayed (e.g. popped up).
- Parameters associated with the command may be defined in the dialog.
- the dialog may also be displayed, permitting the parameters to entered or edited, by actuating (e.g. clicking) the Modify Parameters button 36,003 of the Script Wizard window 36,001.
- the defined parameter may be displayed in the parameters line 36,005 of the Script Wizard window 36,001.
- Logical expressions may be added to the command (so that the command may be performed only if the logical expression is fulfilled) upon selecting (e.g. checking) the Add Expression box 36,007.
- Operands, including variables, and operators for the conditional terms may then be selected.
- the operators may be selected from combo box having a list of operators (including equal, greater than, etc.).
- a button may be actuated to display menu 37,001 , illustrated in Figure 37, which contains a constant 37,003, a query 37,005 (from the Query Warehouse window 26,072), or a logging variable 37,007.
- Selected parameters are displayed in the appropriate field, and can be modified at any time in the Script Wizard window 36,001.
- Definition of the script in the Script Wizard window is completed by actuating (e.g. clicking) the OK button 37,009. Then, the script can be viewed in the Handlers Notebook Window 26,201.
- Multiple sets of commands and logical expressions may be created using a multi-level approach, similar to the link, or target, levels described above.
- the commands sets may be manipulated, for example by dragging and dropping the commands to pages, or tabs, corresponding to the different command set levels.
- Default settings may be defined for each object type.
- the default settings may include the default events configuration for each object type and default handlers for each event associated with a specific object type.
- a Default Settings sheet 38,001, illustrated in Figure 38 may be displayed (e.g. popped up).
- each object type may have an Events page (e.g. Project Events page 38,003, Hotspot Events page 38,005, Media Events page 38,007, Link Events page 38,009, Frame Events page 38,01 1, etc.) which may be identical to the Events page that each object of that type has in its corresponding properties page.
- the Events Settings and handlers defined in these Events pages are the default settings for the corresponding object types.
- any object, of an object type, created after the default settings have been defined may have the same selection of events, and corresponding event handlers, unless otherwise changed.
- the hypervideo system 25,000 may permit hypervideo 10,007 activities to be logged during hypervideo 10,007 performance.
- an author of a hypervideo 10,007 may specify, during hypervideo 10,007 authoring, which viewer interactions (or other hypervideo 10,007 activities) and corresponding information are to be logged.
- the logged information may be used to manipulate the performance of the hypervideo 10,007.
- the logging of hypervideo 10,007 activities and corresponding information may be performed in relation to objects defined in the hypervideo 10,007. For each object in the hypervideo 10,007, corresponding actions to be logged may be defined.
- media files may be objects, and thus the activities (e.g. starting and stopping) of corresponding media files may be logged. This approach may be analogous to the approach used for defining objects's events.
- each object may be associated with one of three logging levels. Successive logging levels log more extensive information that previous types, and may include: a. Count: Logs the number of times the object was acted upon (e.g. actuated, performed, stopped, etc. For example, the number of times a hotspot was actuated may be logged. b. Duration: Beside logging the information associated with the Count logging level, the Duration level also logs the duration of an object's activity (e.g. performance time of a media file) may be logged. c. Timing: Besides logging the information associated with the Duration logging level, the Timing level logs the time when the object activities occurred (e.g. when the media file performance started and stopped, or when a hotspot 8003 was actuated). A list of the objects for which related activities may be logged, and the types of activities that may be logged for those objects follows:
- a logging tier, or level may be selected for each object.
- Each object may have a Logging page 39,001, illustrated in Figure 39, in its properties sheet.
- the logging tier may be specified.
- logging pages 39,001 may be accessed, as described below, for the following object types: Project object- In the Project Setting Properties sheet.
- each Target Level page will include an Events button which when actuated displays (e.g. pops-up) the Target Level Object Events page from which the Logging page may be accessed.
- the Workshop toolbar may include an Events button which may display (e.g. pop-up) a Frame object events page for the current frame from which the Logging page may be accessed.
- Default logging settings may be defined in a manner similar to the way that default settings for the events are defined as described above.
- the Logging page 39,001 may include a Set As Default button 39,002, which may be actuated to make the logging data in the Logging page 39,001 the default data for Logging pages 39,001 for other objects of the same type (e.g. any object of the same type that is later created will have the same logging data, unless otherwise defined).
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CA002301581A CA2301581A1 (en) | 1997-08-22 | 1998-08-21 | Streaming hypervideo and dynamic hypervideo |
| AU91147/98A AU9114798A (en) | 1997-08-22 | 1998-08-21 | Streaming hypervideo and dynamic hypervideo |
| IL13467698A IL134676A0 (en) | 1997-08-22 | 1998-08-21 | Streaming hypervideo and dynamic hypervideo |
| EP98943323A EP1005680A1 (en) | 1997-08-22 | 1998-08-21 | Streaming hypervideo and dynamic hypervideo |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US5692897P | 1997-08-22 | 1997-08-22 | |
| US60/056,928 | 1997-08-22 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO1999010822A1 true WO1999010822A1 (en) | 1999-03-04 |
Family
ID=22007421
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US1998/017444 WO1999010822A1 (en) | 1997-08-22 | 1998-08-21 | Streaming hypervideo and dynamic hypervideo |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP1005680A1 (en) |
| AU (1) | AU9114798A (en) |
| CA (1) | CA2301581A1 (en) |
| IL (1) | IL134676A0 (en) |
| WO (1) | WO1999010822A1 (en) |
Cited By (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002027553A1 (en) * | 2000-09-25 | 2002-04-04 | Richard Fuisz | System for providing access to product data |
| EP1257126A3 (en) * | 2001-05-09 | 2004-07-21 | Fujitsu Limited | Control system and controlling method for controlling a display device, a server and a medium |
| US6879720B2 (en) | 2000-02-29 | 2005-04-12 | Goldpocket Interactive, Inc. | Methods for outlining and filling regions in multi-dimensional arrays |
| US6894690B2 (en) | 2001-06-20 | 2005-05-17 | Engineering Technology Associates, Inc. | Method and apparatus for capturing and viewing a sequence of 3-D images |
| EP1264487A4 (en) * | 1999-11-23 | 2005-11-16 | Dommelriver Israel Ltd | Hypervideo tracking and reporting system |
| US7120924B1 (en) | 2000-02-29 | 2006-10-10 | Goldpocket Interactive, Inc. | Method and apparatus for receiving a hyperlinked television broadcast |
| US7343617B1 (en) | 2000-02-29 | 2008-03-11 | Goldpocket Interactive, Inc. | Method and apparatus for interaction with hyperlinks in a television broadcast |
| WO2009012578A1 (en) | 2007-07-22 | 2009-01-29 | Overlay.Tv Inc. | Distributed system for linking content of video signals to information sources |
| EP2071578A1 (en) * | 2007-12-13 | 2009-06-17 | Sony Computer Entertainment Europe Ltd. | Video interaction apparatus and method |
| WO2009070327A3 (en) * | 2007-11-21 | 2009-12-30 | Novafora, Inc. | Method and apparatus for generation, distribution and display of interactive video content |
| EP1920609A4 (en) * | 2005-08-29 | 2010-07-07 | Sony Corp | METHOD FOR TRANSACTING INTERACTIVE GRAPHICS INTO A DISC-CREATION |
| US8161172B2 (en) | 2002-05-10 | 2012-04-17 | Teleshuttle Tech2, Llc | Method and apparatus for browsing using multiple coordinated device sets |
| US8468099B2 (en) | 2001-03-30 | 2013-06-18 | Intertainer, Inc. | Digital entertainment service platform |
| US8479246B2 (en) | 2000-12-14 | 2013-07-02 | Intertainer, Inc. | System and method for interactive video content programming |
| EP2819123A1 (en) * | 2003-01-02 | 2014-12-31 | Samsung Electronics Co., Ltd | Multimedia apparatus with "slide-show" accompanied audio output |
| US9420318B2 (en) | 2004-07-30 | 2016-08-16 | Broadband Itv, Inc. | Method for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US9491512B2 (en) | 2004-07-30 | 2016-11-08 | Broadband Itv, Inc. | Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers |
| US9529870B1 (en) | 2000-09-14 | 2016-12-27 | Network-1 Technologies, Inc. | Methods for linking an electronic media work to perform an action |
| US9584868B2 (en) | 2004-07-30 | 2017-02-28 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US9635429B2 (en) | 2004-07-30 | 2017-04-25 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US10219027B1 (en) | 2014-10-24 | 2019-02-26 | Music Choice | System for providing music content to a user |
| US10225584B2 (en) | 1999-08-03 | 2019-03-05 | Videoshare Llc | Systems and methods for sharing video with advertisements over a network |
| US10277654B2 (en) | 2000-03-09 | 2019-04-30 | Videoshare, Llc | Sharing a streaming video |
| US10390092B1 (en) | 2002-03-18 | 2019-08-20 | Music Choice | Systems and methods for providing an on-demand entertainment service |
| US10390093B1 (en) | 2012-04-26 | 2019-08-20 | Music Choice | Automatic on-demand navigation based on meta-data broadcast with media content |
| US10555051B2 (en) | 2016-07-21 | 2020-02-04 | At&T Mobility Ii Llc | Internet enabled video media content stream |
| US10657380B2 (en) | 2017-12-01 | 2020-05-19 | At&T Mobility Ii Llc | Addressable image object |
| US11252459B2 (en) | 2004-07-30 | 2022-02-15 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| CN115329122A (en) * | 2021-05-11 | 2022-11-11 | 腾讯科技(深圳)有限公司 | Audio information processing method, audio information presenting method and device |
| US11570521B2 (en) | 2007-06-26 | 2023-01-31 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7647278B1 (en) | 1999-12-29 | 2010-01-12 | Pitney Bowes Inc. | Method for facilitating a transaction between a merchant and a buyer |
-
1998
- 1998-08-21 WO PCT/US1998/017444 patent/WO1999010822A1/en not_active Application Discontinuation
- 1998-08-21 EP EP98943323A patent/EP1005680A1/en not_active Withdrawn
- 1998-08-21 IL IL13467698A patent/IL134676A0/en not_active IP Right Cessation
- 1998-08-21 CA CA002301581A patent/CA2301581A1/en not_active Abandoned
- 1998-08-21 AU AU91147/98A patent/AU9114798A/en not_active Abandoned
Non-Patent Citations (3)
| Title |
|---|
| "MULTIMEDIA HYPERVIDEO LINKS FOR FULL MOTION VIDEOS", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 37, no. 4A, 1 April 1994 (1994-04-01), pages 95, XP000446196 * |
| BURRILL V ET AL: "TIME-VARYING SENSITIVE REGIONS IN DYNAMIC MULTIMEDIA OBJECTS: A PRAGMATIC APPROACH TO CONTENT BASED RETRIEVAL FROM VIDEO", INFORMATION AND SOFTWARE TECHNOLOGY, vol. 36, no. 4, 1 January 1994 (1994-01-01), pages 213 - 223, XP000572844 * |
| GINIGE A ET AL: "HYPERMEDIA AUTHORING", IEEE MULTIMEDIA, vol. 2, no. 4, 21 December 1995 (1995-12-21), pages 24 - 35, XP000542076 * |
Cited By (147)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10225584B2 (en) | 1999-08-03 | 2019-03-05 | Videoshare Llc | Systems and methods for sharing video with advertisements over a network |
| US10362341B2 (en) | 1999-08-03 | 2019-07-23 | Videoshare, Llc | Systems and methods for sharing video with advertisements over a network |
| EP1264487A4 (en) * | 1999-11-23 | 2005-11-16 | Dommelriver Israel Ltd | Hypervideo tracking and reporting system |
| US8271487B1 (en) | 1999-11-23 | 2012-09-18 | Koninklijke Philips Electronics N.V. | Hypervideo tracking and reporting system |
| US6978053B1 (en) | 2000-02-29 | 2005-12-20 | Goldpocket Interactive, Inc. | Single-pass multilevel method for applying morphological operators in multiple dimensions |
| US6944228B1 (en) | 2000-02-29 | 2005-09-13 | Goldpocket Interactive, Inc. | Method and apparatus for encoding video hyperlinks |
| US6879720B2 (en) | 2000-02-29 | 2005-04-12 | Goldpocket Interactive, Inc. | Methods for outlining and filling regions in multi-dimensional arrays |
| US7117517B1 (en) | 2000-02-29 | 2006-10-03 | Goldpocket Interactive, Inc. | Method and apparatus for generating data structures for a hyperlinked television broadcast |
| US7120924B1 (en) | 2000-02-29 | 2006-10-10 | Goldpocket Interactive, Inc. | Method and apparatus for receiving a hyperlinked television broadcast |
| US7249367B2 (en) | 2000-02-29 | 2007-07-24 | Goldpocket Interactive, Inc. | Method and apparatus for switching between multiple programs by interacting with a hyperlinked television broadcast |
| US7343617B1 (en) | 2000-02-29 | 2008-03-11 | Goldpocket Interactive, Inc. | Method and apparatus for interaction with hyperlinks in a television broadcast |
| US7367042B1 (en) | 2000-02-29 | 2008-04-29 | Goldpocket Interactive, Inc. | Method and apparatus for hyperlinking in a television broadcast |
| US10277654B2 (en) | 2000-03-09 | 2019-04-30 | Videoshare, Llc | Sharing a streaming video |
| US10523729B2 (en) | 2000-03-09 | 2019-12-31 | Videoshare, Llc | Sharing a streaming video |
| US10063940B1 (en) | 2000-09-14 | 2018-08-28 | Network-1 Technologies, Inc. | System for using extracted feature vectors to perform an action associated with a work identifier |
| US10063936B1 (en) | 2000-09-14 | 2018-08-28 | Network-1 Technologies, Inc. | Methods for using extracted feature vectors to perform an action associated with a work identifier |
| US10205781B1 (en) | 2000-09-14 | 2019-02-12 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action associated with selected identified image |
| US10621226B1 (en) | 2000-09-14 | 2020-04-14 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action associated with selected identified image |
| US10057408B1 (en) | 2000-09-14 | 2018-08-21 | Network-1 Technologies, Inc. | Methods for using extracted feature vectors to perform an action associated with a work identifier |
| US10621227B1 (en) | 2000-09-14 | 2020-04-14 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action |
| US10552475B1 (en) | 2000-09-14 | 2020-02-04 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action |
| US10540391B1 (en) | 2000-09-14 | 2020-01-21 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action |
| US9824098B1 (en) | 2000-09-14 | 2017-11-21 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action associated with identified action information |
| US9805066B1 (en) | 2000-09-14 | 2017-10-31 | Network-1 Technologies, Inc. | Methods for using extracted features and annotations associated with an electronic media work to perform an action |
| US9807472B1 (en) | 2000-09-14 | 2017-10-31 | Network-1 Technologies, Inc. | Methods for using extracted feature vectors to perform an action associated with a product |
| US9883253B1 (en) | 2000-09-14 | 2018-01-30 | Network-1 Technologies, Inc. | Methods for using extracted feature vectors to perform an action associated with a product |
| US9781251B1 (en) | 2000-09-14 | 2017-10-03 | Network-1 Technologies, Inc. | Methods for using extracted features and annotations associated with an electronic media work to perform an action |
| US10367885B1 (en) | 2000-09-14 | 2019-07-30 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action associated with selected identified image |
| US10073862B1 (en) | 2000-09-14 | 2018-09-11 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action associated with selected identified image |
| US10108642B1 (en) | 2000-09-14 | 2018-10-23 | Network-1 Technologies, Inc. | System for using extracted feature vectors to perform an action associated with a work identifier |
| US9832266B1 (en) | 2000-09-14 | 2017-11-28 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action associated with identified action information |
| US10303713B1 (en) | 2000-09-14 | 2019-05-28 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action |
| US10305984B1 (en) | 2000-09-14 | 2019-05-28 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action associated with selected identified image |
| US10521470B1 (en) | 2000-09-14 | 2019-12-31 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action associated with selected identified image |
| US10521471B1 (en) | 2000-09-14 | 2019-12-31 | Network-1 Technologies, Inc. | Method for using extracted features to perform an action associated with selected identified image |
| US10303714B1 (en) | 2000-09-14 | 2019-05-28 | Network-1 Technologies, Inc. | Methods for using extracted features to perform an action |
| US9529870B1 (en) | 2000-09-14 | 2016-12-27 | Network-1 Technologies, Inc. | Methods for linking an electronic media work to perform an action |
| US9538216B1 (en) | 2000-09-14 | 2017-01-03 | Network-1 Technologies, Inc. | System for taking action with respect to a media work |
| US9536253B1 (en) | 2000-09-14 | 2017-01-03 | Network-1 Technologies, Inc. | Methods for linking an electronic media work to perform an action |
| US9544663B1 (en) | 2000-09-14 | 2017-01-10 | Network-1 Technologies, Inc. | System for taking action with respect to a media work |
| US9558190B1 (en) | 2000-09-14 | 2017-01-31 | Network-1 Technologies, Inc. | System and method for taking action with respect to an electronic media work |
| US8856830B2 (en) | 2000-09-25 | 2014-10-07 | Fuisz Media, Inc. | Method, apparatus and system for providing access to product data |
| US9565457B2 (en) | 2000-09-25 | 2017-02-07 | Fuisz Media, Inc. | Method, apparatus and system for providing access to product data |
| WO2002027553A1 (en) * | 2000-09-25 | 2002-04-04 | Richard Fuisz | System for providing access to product data |
| US7899705B2 (en) | 2000-09-25 | 2011-03-01 | Fuisz Richard C | Method, apparatus and system for providing access to product data |
| US8479246B2 (en) | 2000-12-14 | 2013-07-02 | Intertainer, Inc. | System and method for interactive video content programming |
| US8468099B2 (en) | 2001-03-30 | 2013-06-18 | Intertainer, Inc. | Digital entertainment service platform |
| EP1257126A3 (en) * | 2001-05-09 | 2004-07-21 | Fujitsu Limited | Control system and controlling method for controlling a display device, a server and a medium |
| US6894690B2 (en) | 2001-06-20 | 2005-05-17 | Engineering Technology Associates, Inc. | Method and apparatus for capturing and viewing a sequence of 3-D images |
| US10390092B1 (en) | 2002-03-18 | 2019-08-20 | Music Choice | Systems and methods for providing an on-demand entertainment service |
| US9143839B2 (en) | 2002-05-10 | 2015-09-22 | Convergent Media Solutions Llc | Method and apparatus for browsing using multiple coordinated device sets |
| US8893212B2 (en) | 2002-05-10 | 2014-11-18 | Convergent Media Solutions Llc | Method and apparatus for browsing using alternative linkbases |
| US8875215B2 (en) | 2002-05-10 | 2014-10-28 | Convergent Media Solutions Llc | Method and apparatus for browsing using alternative linkbases |
| US8850507B2 (en) | 2002-05-10 | 2014-09-30 | Convergent Media Solutions Llc | Method and apparatus for browsing using alternative linkbases |
| US8898722B2 (en) | 2002-05-10 | 2014-11-25 | Convergent Media Solutions Llc | Method and apparatus for browsing using alternative linkbases |
| US8914840B2 (en) | 2002-05-10 | 2014-12-16 | Convergent Media Solutions Llc | Method and apparatus for browsing using alternative linkbases |
| US8161172B2 (en) | 2002-05-10 | 2012-04-17 | Teleshuttle Tech2, Llc | Method and apparatus for browsing using multiple coordinated device sets |
| EP2819123A1 (en) * | 2003-01-02 | 2014-12-31 | Samsung Electronics Co., Ltd | Multimedia apparatus with "slide-show" accompanied audio output |
| US9648388B2 (en) | 2004-07-30 | 2017-05-09 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV services subscribers |
| US11252459B2 (en) | 2004-07-30 | 2022-02-15 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US11601697B2 (en) | 2004-07-30 | 2023-03-07 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US9888287B2 (en) | 2004-07-30 | 2018-02-06 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV services subscribers |
| US11516525B2 (en) | 2004-07-30 | 2022-11-29 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US11272233B2 (en) | 2004-07-30 | 2022-03-08 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US9936240B2 (en) | 2004-07-30 | 2018-04-03 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US11259060B2 (en) | 2004-07-30 | 2022-02-22 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US9998791B2 (en) | 2004-07-30 | 2018-06-12 | Broadband Itv, Inc. | Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers |
| US10028026B2 (en) | 2004-07-30 | 2018-07-17 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US10028027B2 (en) | 2004-07-30 | 2018-07-17 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US10045084B2 (en) | 2004-07-30 | 2018-08-07 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers |
| US10057649B2 (en) | 2004-07-30 | 2018-08-21 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers |
| US9866910B2 (en) | 2004-07-30 | 2018-01-09 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers |
| US11259089B2 (en) | 2004-07-30 | 2022-02-22 | Broadband Itv, Inc. | Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers |
| US11259059B2 (en) | 2004-07-30 | 2022-02-22 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US9866909B2 (en) | 2004-07-30 | 2018-01-09 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers |
| US11252476B2 (en) | 2004-07-30 | 2022-02-15 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers |
| US10129597B2 (en) | 2004-07-30 | 2018-11-13 | Broadband Itv, Inc. | Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers |
| US10129598B2 (en) | 2004-07-30 | 2018-11-13 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV services subscribers |
| US10893334B2 (en) | 2004-07-30 | 2021-01-12 | Broadband Itv, Inc. | Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers |
| US10791351B2 (en) | 2004-07-30 | 2020-09-29 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US10785517B2 (en) | 2004-07-30 | 2020-09-22 | Broadband Itv, Inc. | Method for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US10555014B2 (en) | 2004-07-30 | 2020-02-04 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US9641896B2 (en) | 2004-07-30 | 2017-05-02 | Broadband Itv, Inc. | Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers |
| US10536750B2 (en) | 2004-07-30 | 2020-01-14 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers |
| US10536751B2 (en) | 2004-07-30 | 2020-01-14 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers |
| US9420318B2 (en) | 2004-07-30 | 2016-08-16 | Broadband Itv, Inc. | Method for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US10306321B2 (en) | 2004-07-30 | 2019-05-28 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers |
| US9635423B2 (en) | 2004-07-30 | 2017-04-25 | Broadband Itv, Inc. | Video-on-demand content delivery method for providing video-on-demand services to TV services subscribers |
| US9635395B2 (en) | 2004-07-30 | 2017-04-25 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US9635429B2 (en) | 2004-07-30 | 2017-04-25 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US10341730B2 (en) | 2004-07-30 | 2019-07-02 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV service subscribers |
| US10341699B2 (en) | 2004-07-30 | 2019-07-02 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US10349101B2 (en) | 2004-07-30 | 2019-07-09 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US10349100B2 (en) | 2004-07-30 | 2019-07-09 | Broadband Itv, Inc. | Method for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US9584868B2 (en) | 2004-07-30 | 2017-02-28 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US9578376B2 (en) | 2004-07-30 | 2017-02-21 | Broadband Itv, Inc. | Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers |
| US10375428B2 (en) | 2004-07-30 | 2019-08-06 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US9491497B2 (en) | 2004-07-30 | 2016-11-08 | Broadband Itv, Inc. | Method for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US9491512B2 (en) | 2004-07-30 | 2016-11-08 | Broadband Itv, Inc. | Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers |
| US10491955B2 (en) | 2004-07-30 | 2019-11-26 | Broadband Itv, Inc. | Video-on-demand content delivery system for providing video-on-demand services to TV services subscribers |
| US10491954B2 (en) | 2004-07-30 | 2019-11-26 | Broadband Itv, Inc. | Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers |
| US10506269B2 (en) | 2004-07-30 | 2019-12-10 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US9491511B2 (en) | 2004-07-30 | 2016-11-08 | Broadband Itv, Inc. | Video-on-demand content delivery method for providing video-on-demand services to TV service subscribers |
| EP1920609A4 (en) * | 2005-08-29 | 2010-07-07 | Sony Corp | METHOD FOR TRANSACTING INTERACTIVE GRAPHICS INTO A DISC-CREATION |
| US11589093B2 (en) | 2007-03-12 | 2023-02-21 | Broadband Itv, Inc. | System for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US11245942B2 (en) | 2007-03-12 | 2022-02-08 | Broadband Itv, Inc. | Method for addressing on-demand TV program content on TV services platform of a digital TV services provider |
| US11695976B2 (en) | 2007-06-26 | 2023-07-04 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US9641902B2 (en) | 2007-06-26 | 2017-05-02 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US11272235B2 (en) | 2007-06-26 | 2022-03-08 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US12170800B2 (en) | 2007-06-26 | 2024-12-17 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US11277669B2 (en) | 2007-06-26 | 2022-03-15 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US10560733B2 (en) | 2007-06-26 | 2020-02-11 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US10567846B2 (en) | 2007-06-26 | 2020-02-18 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US10582243B2 (en) | 2007-06-26 | 2020-03-03 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US9888288B2 (en) | 2007-06-26 | 2018-02-06 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US10623793B2 (en) | 2007-06-26 | 2020-04-14 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US10264303B2 (en) | 2007-06-26 | 2019-04-16 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US11582498B2 (en) | 2007-06-26 | 2023-02-14 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US11570500B2 (en) | 2007-06-26 | 2023-01-31 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US9894417B2 (en) | 2007-06-26 | 2018-02-13 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US10154296B2 (en) | 2007-06-26 | 2018-12-11 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US10149015B2 (en) | 2007-06-26 | 2018-12-04 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US11570521B2 (en) | 2007-06-26 | 2023-01-31 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US9894419B2 (en) | 2007-06-26 | 2018-02-13 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US11265589B2 (en) | 2007-06-26 | 2022-03-01 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US10277937B2 (en) | 2007-06-26 | 2019-04-30 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US9648390B2 (en) | 2007-06-26 | 2017-05-09 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on view preferences for minimizing navigation in VOD program selection |
| US9654833B2 (en) | 2007-06-26 | 2017-05-16 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US11290763B2 (en) | 2007-06-26 | 2022-03-29 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| US9973825B2 (en) | 2007-06-26 | 2018-05-15 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
| WO2009012578A1 (en) | 2007-07-22 | 2009-01-29 | Overlay.Tv Inc. | Distributed system for linking content of video signals to information sources |
| US8312491B2 (en) | 2007-07-22 | 2012-11-13 | Overlay.Tv Inc. | Distributed system for linking content of video signals to information sources |
| EP2171662A4 (en) * | 2007-07-22 | 2012-04-11 | Overlay Tv Inc | Distributed system for linking content of video signals to information sources |
| US8170392B2 (en) | 2007-11-21 | 2012-05-01 | Shlomo Selim Rakib | Method and apparatus for generation, distribution and display of interactive video content |
| WO2009070327A3 (en) * | 2007-11-21 | 2009-12-30 | Novafora, Inc. | Method and apparatus for generation, distribution and display of interactive video content |
| EP2071578A1 (en) * | 2007-12-13 | 2009-06-17 | Sony Computer Entertainment Europe Ltd. | Video interaction apparatus and method |
| US10390093B1 (en) | 2012-04-26 | 2019-08-20 | Music Choice | Automatic on-demand navigation based on meta-data broadcast with media content |
| US10785526B1 (en) | 2014-10-24 | 2020-09-22 | Music Choice | System for providing music content to a user |
| US10219027B1 (en) | 2014-10-24 | 2019-02-26 | Music Choice | System for providing music content to a user |
| US11336948B1 (en) | 2014-10-24 | 2022-05-17 | Music Choice | System for providing music content to a user |
| US11564016B2 (en) | 2016-07-21 | 2023-01-24 | At&T Mobility Ii Llc | Internet enabled video media content stream |
| US10979779B2 (en) | 2016-07-21 | 2021-04-13 | At&T Mobility Ii Llc | Internet enabled video media content stream |
| US10555051B2 (en) | 2016-07-21 | 2020-02-04 | At&T Mobility Ii Llc | Internet enabled video media content stream |
| US11216668B2 (en) | 2017-12-01 | 2022-01-04 | At&T Mobility Ii Llc | Addressable image object |
| US10657380B2 (en) | 2017-12-01 | 2020-05-19 | At&T Mobility Ii Llc | Addressable image object |
| US11663825B2 (en) | 2017-12-01 | 2023-05-30 | At&T Mobility Ii Llc | Addressable image object |
| CN115329122A (en) * | 2021-05-11 | 2022-11-11 | 腾讯科技(深圳)有限公司 | Audio information processing method, audio information presenting method and device |
Also Published As
| Publication number | Publication date |
|---|---|
| IL134676A0 (en) | 2001-04-30 |
| CA2301581A1 (en) | 1999-03-04 |
| AU9114798A (en) | 1999-03-16 |
| EP1005680A1 (en) | 2000-06-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1005680A1 (en) | Streaming hypervideo and dynamic hypervideo | |
| CA2262096C (en) | Linking information to and accessing information from a video | |
| JP3341893B2 (en) | Concurrent framework system | |
| US5717877A (en) | Object-oriented data access framework system | |
| US6453328B1 (en) | Model tracking object-oriented system for collaborative data editing with non-compatible computer peripheral devices | |
| JP3565850B2 (en) | Object-oriented notification framework system | |
| US5550563A (en) | Interaction framework system | |
| US5479601A (en) | Method and apparatus for processing commands generated by user interface controls in an atomic manner | |
| EP0664019B1 (en) | Command system | |
| US6259446B1 (en) | Menu state system | |
| US5551055A (en) | System for providing locale dependent user interface for presenting control graphic which has different contents or same contents displayed in a predetermined order | |
| US20060190808A1 (en) | Methods, systems, and processes for the design and creation of rich-media applications via the Internet | |
| JPH08505968A (en) | How to run a dialog box on a computer system | |
| JPH08508355A (en) | Concurrent framework system | |
| JPH08508596A (en) | Runtime loader | |
| CA2135523C (en) | Scrolling system | |
| Alpözen | A tool to create 3D animation films |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 134676 Country of ref document: IL |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 09200146 Country of ref document: US |
|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
| ENP | Entry into the national phase |
Ref document number: 2301581 Country of ref document: CA Ref country code: CA Ref document number: 2301581 Kind code of ref document: A Format of ref document f/p: F |
|
| NENP | Non-entry into the national phase |
Ref country code: KR |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 1998943323 Country of ref document: EP |
|
| WWP | Wipo information: published in national office |
Ref document number: 1998943323 Country of ref document: EP |
|
| REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
| WWW | Wipo information: withdrawn in national office |
Ref document number: 1998943323 Country of ref document: EP |