7. Reference


 

7.1 Hypervideo File structure

An hypervideo file basically lists a set of sequences. Strictly speaking, an hypervideo file consists in a header block followed by a set of sequences. Each sequence is an ordered list of frames plus specific properties. Each frame corresponds to a position of the square in the window.

 

7.1.1 Header

Any hypervideo file starts with a monolithic header block. It can be used in a parser to ensure the file is an hypervideo structure and not something else.

The header block is followed by the filepath of the video file. Thus a third party program knows where to look for the video associated to the hypervideo data.

 

7.1.2 Sequence block

A sequence structure consists in :

  1. a first line with the name of the sequence, sequence=...
  2. a description line, description=...
  3. an hypermedia link type, hypermedia_type=seek|url
  4. an hypermedia link action, hypermedia_action=...
  5. a visual effect description, visual_effect=...
  6. the amount of keyframes
  7. all keyframes

A keyframe structure consists in :

FRAME
,,
X1,
Y1,
X2,
Y2

where :

The 7.1.4 paragraph exhibits a graphics of that.

Each member of this structure is separated with a comma except the last. The comma after FRAME is doubled since in fact there should have been an argument which is implicit. This argument may appear in future versions.

There are normally no blank lines between two sequence blocks.

 

7.1.3 Tell me more

As everything is in text format, the number 40 for example is represented by the ascii code '4' and the ascii code '0'. To read an HPV file, you need a parser.

Now a little detail about the keyframe structure. As any keyframe position corresponds to a square position, hence 4 points, and that the square is always directed horizontally and vertically, 2 points (4 coordinates in the 2D-plane) are necessary and suffisant to fully determine the position of the square in the window. This is the reason why we never mention the number of points of the hotspot.

If for any reason, an extension with advanced polygonal features was released, the argument after FRAME would be the number of points and the list of the n points (X1,Y1),(X2,Y2),...(Xn,Yn) would replace the current 4-coordinate substructure. The keyframe structure would consist in :

FRAME,
n,
X1,
Y1,
X2,
Y2,
...
Xn,
Yn

 

7.1.4 Coordinates 1/1000

As we deal with positions, we must talk about reference coordinates.

The system of coordinates is neither based on the real size of the video file itself, which is 352*288 for an ISO-MPEG1 video, nor on the displayed size of the video, which is variable as you stretch the window. It's a good idea to use abstract coordinates. The abstract system is a virtual XY-space between 0 and 1000 in the two directions. Hence the point (352,288) in the video mentioned earlier corresponds to the point (1000,1000) in our XY-space, while the point (0,0) in the video file corresponds to the point (0,0) in our XY-space.

The following graphics shows two things : the virtual XY-space and the geometrical position of the two points (X1,Y1) and (X2,Y2) of the square in the keyframe structure.

A piece of the hotspot may be outside the window, depending on you. In that case, the coordinates of those corners will be either greater than 1000, or lower than 0, ie negative. At run-time, a smart coordinate parser would clip the outside part so that it doesn't break the program just for that reason.

The corner (X2,Y2) is always more to the right and more to the bottom than the corner (X1,Y1), hence there is no reversed square.

 

7.1.5 Reuse of the hypervideo file

The textual format of the hypervideo file fulfills two main goals : 1. a set of data expected to be reused must be in readable and understandable form. A proprietary format can't match that. 2. you can use a simple text editor, open a couple hypervideo files, and start operating copy/pastes to either split or merge the needed subsets of sequences.

We wanted the hypervideo data to be open and reusable since we know everyone will beg for control over it.

 

7.2 List of keyboard shortcuts

 

v-key
effect
CTRL-O open an hypervideo file
CTRL-S save the sequences on disk with default HPV filename
SHIFT-CTRL-S save the sequences using a standard file dialog box
ALT-F4 close the HPV file, the video file and exit
SPACE switch between play and pause
ENTER start/stop record mode
ESCAPE activate/deactivate loop mode
SHIFT-PAGE UP set the start-mark of the sequence
SHIFT-PAGE DOWN set the end-mark of the sequence
PAGE UP go to the start-mark
PAGE DOWN go to the end-mark
CTRL-PAGE UP reset the start-mark
CTRL-PAGE DOWN reset the end-mark
F2 add a new bookmark
SHIFT-F2 delete the last bookmark in the bookmark menu
S display/remove hatches inside the hotspot
DELETE remove one or more shots (in the tree control)

 

7.3 Toolbar reference

Open an hypervideo file, save and close the previous one if necessary
Open a video file
Save the hypervideo data file, with default filename
Close the hypervideo file

 

Create and select a sequence
Go to previous sequence
Go to next sequence
Watch and modify the sequence properties
Delete the current sequence

 

Set the begin mark
Go to the begin mark
Play / Pause
Start / Stop Record
Go to the end mark
Set the end mark

 

Enable / Disable loop mode
Show / Hide the hotspot
Add a bookmark at the current video frame
Automatic keyframer (current sequence)
Watch video properties
Disable / Enable the sound
Encode the hypervideo data into a G2 file format
Switch to fullscreen

 

7.4 Seek controls

As there are a lot of video seek controls, and we dispatched and focused on them all over the documentation, we wanted to add this section to clear the situation.

Main slider :

Sequence slider :

Go back button :

Go forward button :

Frame counter :

Bookmarks :

Shots :

Mark-IN :

Mark-OUT :