One of the most exciting possibilities for delivery of content over the Internet is the prospect of live video on demand. Not only are traditional broadcasters such as ABC and HBO salivating at the prospect of delivering targeted videos to consumers over the Internet, telecommunication companies and software companies are anxious to get into the content delivery market. With ActiveX controls (and other dynamic content rendering engines, such as Netscape Plug-Ins and Java applications), content providers are beginning to acquire the tools to deliver video over the Internet. In this chapter, you will review several of the leading ActiveX controls that are available for the delivery of video content.
For each control, you will follow the usual format. First, you will learn about the control and discover where you can get it. Then you will learn the properties, events, and methods available for use with the control.
The Surround Video Control is a unique combination of virtual reality and full motion video. Imagine you are standing on top of the Sears Tower in Chicago and looking out over the city. Unless there are low-lying clouds or overcast skies (a sight seen all too often in the Windy City), you can spin 360 degrees and see all around the city. The Surround Video Control permits you to experience the same effect in a Web page over the Internet. The Surround Video Control allows you to add 360¡ panoramic images to your Web site. The images shown in a Surround Video Control are either taken by using a special rotating camera or generated by several 3-D software rendering tools.
http://www.bdiamond.com-The Surround Video ActiveX Control is available for free download over the Internet from Black Diamond Consulting, Inc.
The control can easily be used in a Web page. Figure 20.1 shows what you see when you use the Surround Video Control.
Figure 20.1 : The Surround Video Control
Property | Description |
CodeBase | Describes the version of the ActiveX control to be used. An example entry would be svideo.cab#version=1,0,0,180 where svideo.cab is the installation cabinet file |
DataSourceName | Stores the file name of the panoramic photograph to be displayed by the control |
DefaultLocation | The default location for the control |
EnableHyperLinks | Determines whether the Surround Video being displayed contains hyperlinks that should be honored and acted on when clicked |
Height | The height of the space to be covered by the control |
ID | refers to the current instance of the control |
MouseManipulation | Determines whether the panoramic video can be navigated using the mouse |
RotationFactors | Determines the amount to rotate when the mouse is moved and MouseManipulation is turned on |
ZoomFactor | The distance to zoom in and out when the zoom in and out key is pressed |
ZoomKeySet | keys used for zooming in and out. By default the + and - keys are used for zooming |
Method | Description |
AboutBox | Displays a dialog box that describes the Surround Video Control |
Event | Description |
OnProgress | control fires progress status events so that you can show a progress message |
OnReadyStateChange | Throws an event when the control is about to change states so that you may notify the user as well |
Listing 20.1 shows how this control would be used in a typical Web page.
Listing 20.1 NONE-Surround Video Control
<OBJECT ID=SVideo CLASSID="clsid:7142BA01-8BDF-11CF-9E23-0000E8A37440" CODEBASE="svideo.cab#version=1,0,0,180" HEIGHT=190 WIDTH=320 HSPACE=5 VSPACE=0 ALIGN="right"> <PARAM NAME="DataSourceName" VALUE="marin.svh"> <PARAM NAME="MouseManipulation" VALUE="1"> <PARAM NAME="DefaultLocation" VALUE="800000"> <PARAM NAME="RotationFactors" VALUE="0"> <PARAM NAME="ZoomKeySet" VALUE="0"> <PARAM NAME="EnableHyperlinks" VALUE="1"> </OBJECT>
Toward World Wide Video on Demand
It's been said that computers, television, information, and entertainment are converging on a collision course. Computer networks such as the Internet, for instance, are rapidly adding a diverse set of content types for distribution, including the infancy of useful real-time video. The television industry, on the other hand, is experimenting heavily with so-called interactive television. Interactive television is intended to allow the user to play along with a game show or ask for additional information about an advertised product. In addition, cable television operators are selling movies on a pay-per-view basis. In the information age, users want to have their entertainment and information where they want it, when they want it, and how they want it. Video content will be a tremendously important part of information and entertainment products and services in the future. Video on-demand on your television and at your computer will be a part of many of these products and services. Unfortunately neither the television industry nor Internet content providers are yet ready to deliver video on-demand services over the net. Internet users, in general, connect to the Internet with too little bandwidth to do video really well. Many have attempted to solve this problem with video compression, which, while helpful, is no panacea and, unfortunately, makes significant picture quality compromises. The broadcast television industry, on the other hand, does not have the infrastructure in place to distribute true on-demand video on a wide-scale basis. While the ActiveX controls discussed in this chapter are by no means sufficient for the kind of real time video-on-demand services that will be available in the future, they provide an early glimpse of this future and can add pizzazz to your Web pages.
The VDOLive Video Control is a player for full motion video. Because video files are often quite large, the folks at VDOnet Corporation have done two things to make video easier to use over the Internet. First, they've provided some compression technology. Second, the VDOLive Video Control provides server based streaming of video content. Streaming generally implies a buffering process where the video data is downloaded just in time to be played. All tech talk aside, the best part of VDO is that you can actually use video in your Internet applications without requiring that your users buy an ISDN (integrated service digital network) line.
http://www.vdo.net-The VDOLive Video ActiveX Control is available for free downloading over the Internet from VDOnet Corp. The control is a great tool for inserting video into a Web page. Figure 20.2 shows what you see when you use the VDOLive Control.
Figure 20.2 : The VDOLive Video Control
Property | Description |
AutoStart | Determines whether the video starts up automatically or waits for the users to start it |
CodeBase | Describes the version of the ActiveX control to be used. An example entry would be =ftp://ftp.vdo.net/pub/vdoax20.exe |
Height | The height of the space to be covered by the control |
ID | refers to the current instance of the control |
Loop | Tells whether the video will loop or be played just once |
Src | Provides the name of the video file to play |
Stretch | Sets whether the video display window can be stretched or not |
Method | Description |
AboutBox | Displays a dialog box that describes the VDOLive Video Control |
The VDOLive Control does not contain any events.
Listing 20.2 shows how this control would be used in a typical Web page.
Listing 20.2 NONE-VDOLive Control
<OBJECT CLASSID="clsid:58A00AC3-777B-11CF-827D-0020AFf5Ff72" CODEBASE="ftp://ftp.vdo.net/pub/vdoax20.exe" WIDTH=160 HEIGHT=128 NAME="VDOOCX"> <PARAM NAME="SRC" VALUE="http://www.vdo.net/vdofiles/asafdemo.vdo"> <PARAM NAME="Autostart" VALUE="FALSE"> </OBJECT>
Unlike the VDOLive Control which requires a special server, VivoActive from Vivo Software is a serverless streaming video product. Even without the server component, users can watch uninterrupted streaming audio/video content that starts to play when clicked. The VivoActive Control relies on special compression to speed the download process. This special compression tool is called VivoActive Producer. VivoActive Producer converts windows-based .AVI files and Mac-based QuickTime .MOV files into the compressed VIVO formatted (.VIV) file.
http://www.vivo.com-The VivoActive ActiveX Control is available for free download over the Internet from Vivo Software, Inc.
Figure 20.3 : The VivoActive Video Control
Property | Description |
CodeBase | Describes the version of the ActiveX control to be used. An example entry would be http://www.vivo.com/ie/vvweb.cab where vvweb.cab is the installation cabinet file |
Height | The height of the space to be covered by the control |
ID | Refers to the current instance of the control |
URL | The URL from which the Vivo video file can be downloaded |
AutoStart | Determines whether the video starts playing automatically or not |
Method | Description |
AboutBox | Displays a dialog box that describes the Surround Video Control |
Pause | Pauses the video playback |
Play | Starts the video playback |
Event | Description |
Click | This event is triggered when the user clicks the control with the mouse |
Listing 20.3 shows how this control would be used in a typical Web page.
Listing 20.3 NONE-Vivo Active Control
<OBJECT CLASSID="clsid:02466323-75ed-11cf-a267-0020af2546ea#Version=1,0,0,0" WIDTH=176 HEIGHT=144 CODEBASE="http://www.vivo.com/ie/vvweb.cab"> <PARAM NAME="URL" VALUE="../videos/msoft.viv"> <PARAM NAME="AUTOSTART" VALUE="TRUE"> <PARAM NAME="VIDEOCONTROLS" VALUE="ON"> <EMBED SRC="../videos/msoft.viv" width=176 height=144 autostart=true> </OBJECT>
Like the VivoActive Control which does not require a special server, MhAVI from MicroHelp is another serverless video control. The MhAVI Control plays .AVI video content. Unlike the other video controls discussed in this chapter, the MhAVI provides a very robust degree of control over the display of the video content.
http://www.microhelp.com-The MhAVI ActiveX Control is available for free download over the Internet from MicroHelp, Inc.
Notice the "Select File" command button, slider, and play button controls at the bottom of Figure 20.4. The MhAVI ActiveX Control pictured here reflects how the control looks before a video file is loaded. A file can be loaded using the Select File command button. The play of the video can be commenced by pressing the "Play" button. The slider will mark progress of play through the video or can be used to select a starting point within the video.
Figure 20.4 : The MhAVI Video Control
Property | Description |
Action | Stores the current action that is underway. Possible values include None, Stop, Play, and PlayReverse |
Alignment | Sets the alignment of the video inside the video frame |
Autosize | Tells whether the video frame will automatically be fit to the size of the video |
BevelSize | represents the video frame |
BevelSizeInner | The size of the inner edge of the bevel |
BevelStyle | Sets the beveling style for the video frame. Possible values include Lowered, Raised, and Chiseled |
BevelStyleInner | Sets the inner beveling style for the video frame. Possible values include Raised and Lowered |
BorderStyle | Selects the type of border for the control |
Caption | describes the control when no video is present |
CodeBase | Describes the version of the ActiveX control to be used. An example entry would be http://www.vivo.com/ie/vvweb.cab where vvweb.cab is the installation cabinet file |
ControlBox | Indicates whether the control box is displayed or not |
FileName | Stores the name of the .AVI file to be displayed by the control |
FillColor | color that fills the video screen when no video is playing |
Font | displays the caption with the font indicated here |
FontStyle | Modifies the font for shadowing and other treatments |
Height | space to be covered by the control |
ID | refers to the current instance of the control |
LightColor | Color for highlights |
MaxButton | Indicates whether there is a useful maximize button |
MDI | Indicates that the control can be displayed in an MDI window |
MinButton | Indicates whether there is a useful minimize button |
PlayBar | Determines whether there is a play bar present |
ShadowColor | Color for shadows |
ShowTitle | Determines whether the title text will be displayed |
Sizeable | True, when the control can be resized |
TextColor | The color used when displaying text |
TitleHeight | Height of the title to be displayed |
TitleText | The text used for the title |
Valignment | Describes how the video should be aligned inside the frame |
Volume | Sets the volume of the audio track |
Method | Description |
AboutBox | Displays a dialog box that describes the Surround Video Control |
Clear | Clears the current status of the control |
Refresh | Causes a control Refresh |
Event | Description |
Click | Triggers when the user clicks the control with the mouse |
PositionChanged | fires when the position of the window is changed |
Listing 20.4 shows how this control would be used in a typical Web page.
Listing 20.4 NONE-MhAvi Control
<OBJECT ID="mhavi1" WIDTH=317 HEIGHT=292 CLASSID="CLSID:D1BCA8E0-f392-11CE-8f33-00AA00B46FE8" CODEBASE="/devtools/samples/mhavi32inf.cab"> <PARAM NAME="_Version" VALUE="65536"> <PARAM NAME="_ExtentX" VALUE="6703"> <PARAM NAME="_ExtentY" VALUE="6174"> <PARAM NAME="_StockProps" VALUE="38"> <PARAM NAME="Caption" VALUE="MhAVI1"> <PARAM NAME="Filename" VALUE=""> <PARAM NAME="Action" VALUE="0"> <PARAM NAME="BevelSize" VALUE="1"> <PARAM NAME="BevelSizeInner" VALUE="2"> <PARAM NAME="BevelStyle" VALUE="1"> <PARAM NAME="BevelStyleInner" VALUE="0"> <PARAM NAME="MDI" VALUE="0"> <PARAM NAME="Sizeable" VALUE="0"> <PARAM NAME="ControlBox" VALUE="0"> <PARAM NAME="MinButton" VALUE="0"> <PARAM NAME="MaxButton" VALUE="0"> <PARAM NAME="Autosize" VALUE="0"> <PARAM NAME="Speed" VALUE="1000"> <PARAM NAME="Volume" VALUE="1000"> <PARAM NAME="Position" VALUE="0"> <PARAM NAME="TitleHeight" VALUE="0"> <PARAM NAME="ShowTitle" VALUE="0"> <PARAM NAME="TextColor" VALUE="0"> <PARAM NAME="ShadowColor" VALUE="11619930"> <PARAM NAME="LightColor" VALUE="16777215"> <PARAM NAME="FontStyle" VALUE="0"> <PARAM NAME="Alignment" VALUE="0"> <PARAM NAME="VAlignment" VALUE="0"> <PARAM NAME="TitleText" VALUE=""> </OBJECT>
The ActiveMovie Video Control by Microsoft provides services for the playback of MPEG movie files. With ActiveMovie, you can deliver active content with synchronized audio, video, and special effects. ActiveMovie includes state-of-the-art MPEG playback for full-screen, television-quality video. Over the Internet, the ActiveX control provides streaming so that the user does not have to wait for the entire file to download. ActiveMovie is capable of playing back MPEG movies at 24 frames-per-second with 11 KHz stereo. Best of all, ActiveMovie is integrated with and included in the Microsoft Internet Explorer, enabling Internet users to play back popular media formats on the Web efficiently, including MPEG Audio and Video, .AVI files, QuickTime, AU, .WAV, and AIFF.
http://www.microsoft.com-The ActiveMovie ActiveX Control is available for free download over the Internet from Microsoft.
Figure 20.5 shows how the ActiveMovie Control appears in a Web page. The play of the video can be commenced by pressing the "Play" button. The slider will mark progress of play through the video or can be used to select a starting point within the video.
Figure 20.5 : The ActiveMovie Video Control
Property | Description |
AllowHideControls | Determines whether the user can hide the controls or not |
AllowHideDisplay | Determines whether the user can hide the display or not |
Appearance | Sets the appearance of the display to be either 3-D or flat |
AutoStart | Set to true, if you want the video to start automatically |
AutoRewind | Set to true, if you want the video to rewind automatically when stopped |
Balance | Indicates the balance for audio |
BorderStyle | Stores the border type to surround the control with |
CodeBase | Describes the version of the ActiveX control to be used. An example entry would be http://www.vivo.com/ie/vvweb.cab where vvweb.cab is the installation cabinet file |
DisplayBackColor | Color to use for the background |
DisplayForeColor | Color to use for the foreground |
DisplayMode | Indicates whether the counter display will show the current position in time or in frame count |
EnableContextMenu | Set to true, to enable the context menu |
EnablePositionControls | Set to true, to enable the controls that are used to manipulate position |
EnableSelectionControls | Set to true, to enable the controls that are used to make a selection |
EnableTracker | Enables the Tracker Control |
FileName | Stores the name of the MPEG file to be displayed by the control |
FullScreenMode | Equal to true, when the control is in full screen mode |
Height | space to be covered by the control |
ID | refers to the current instance of the control |
MovieWindowSize | The size to which the original movie will be scaled |
PlayCount | Number of times to play the movie |
SelectionEnd | Set to the time or frame count of the end of the selection |
SelectionStart | Set to the time or frame count of the start of the selection |
ShowControls | True, if the controls are shown |
ShowDisplay | True, if the display is shown |
ShowPositionControls | True, if the position controls are shown |
ShowSelectionControls | True, if the selection controls are shown |
ShowTracker | True, if the Tracker Control is shown |
Volume | Sets the volume of the audio track |
Method | Description |
AboutBox | Displays a dialog box that describes the ActiveMovie Video Control |
Pause | Pauses the playback of the video |
Run | Starts the playback of the video |
Stop | Stops the video playback |
Event | Description |
Click | Triggers when the user clicks the control with the mouse |
DblClick | Fires when the user double-clicks the control |
Error | Thrown when the control encounters an error |
KeyDown | Fires when a key is pressed down |
KeyPress | Occurs when a key is pressed |
KeyUp | Fires when a key comes up after being pressed |
MouseDown | Triggered when the mouse button is pressed down |
MouseMove | Fires when the mouse is moved |
MouseUp | Fires when the mouse button is released |
OpenComplete | Occurs when the MPEG movie has been opened |
PositionChanged | fires when the position of the window is changed |
StateChange | Triggers when the control changes state |
Timer | Fires when the timer goes off |
Listing 20.5 shows how this control would be used in a typical Web page.
Listing 20.5 NONE-ActiveMovie Control
<OBJECT ID="ActiveMovie" WIDTH=200 HEIGHT=120 CLASSID= "CLSID:05589FA1-C356-11CE-BF01-00AA0055595A"> <PARAM NAME="FileName" VALUE="/ie/media/movie/hunt15.mpg"> <PARAM NAME="AutoStart" VALUE="1"> <PARAM NAME="ShowControls" VALUE="1"> <PARAM NAME="ShowDisplay" VALUE="0"> </OBJECT>