home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Info 1997 December
/
Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso
/
faqs
/
comp
/
answers
/
graphics
/
avi-faq
< prev
next >
Wrap
Text File
|
1997-10-01
|
219KB
|
5,777 lines
Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!thetimes.pixel.kodak.com!news.kodak.com!news-pen-16.sprintlink.net!newsfeed.nysernet.net!news.nysernet.net!207.41.200.4!news-pen-4.sprintlink.net!206.229.87.26!news-east.sprintlink.net!news-dc-26.sprintlink.net!news-peer.sprintlink.net!news.sprintlink.net!Sprint!newsfeed.internetmci.com!207.5.0.44!nntp.mainstreet.net!bug.rahul.net!rahul.net!a2i!samba.rahul.net!rahul.net!a2i!jfm.a2i!jfm
From: jfm@rahul.net
Newsgroups: rec.video.desktop,comp.graphics.animation,comp.multimedia,comp.os.ms-windows.video,news.answers,rec.answers,comp.answers
Subject: AVI Graphics Format Overview
Followup-To: rec.video.desktop,comp.graphics.animation,comp.multimedia,comp.os.ms-windows.video
Date: 30 Sep 1997 17:44:55 GMT
Organization: a2i network
Lines: 5761
Approved: news-answers-request@MIT.EDU
Message-ID: <60rdqn$mal$1@samba.rahul.net>
NNTP-Posting-Host: foxtrot.rahul.net
NNTP-Posting-User: jfm
Summary: Answers to many commonly asked questions about AVI files, Video For Windows, and ActiveMovie. This includes how to convert to and from other video formats, playing, editing, and authoring AVI files as well as information on programming.
Xref: senator-bedfellow.mit.edu rec.video.desktop:48021 comp.graphics.animation:51610 comp.multimedia:78740 comp.os.ms-windows.video:17374 news.answers:113441 rec.answers:34362 comp.answers:28275
Archive-name: graphics/avi-faq
Posting-Frequency: monthly
Last-modified: 1997/09/30
Version: 1.132
URL: http://www.rahul.net/jfm/avi.html
Copyright: (c) 1996-1997 John F. McGowan, Ph.D.
Maintainer: John F. McGowan, Ph.D. <jfm@rahul.net>
<HTML>
<HEAD><TITLE>John McGowan's AVI Overview</TITLE></HEAD>
<BODY BGCOLOR="#FFFFFF">
<PRE>
AVI Overview
by John F. McGowan, Ph.D.
(c) 1996-1997, John F. McGowan
http://www.rahul.net/jfm/
----------------------------------------------------------------------------
<!-- This document is best viewed using an HTML browser. However, -->
<!-- it has been composed with limited use of HTML so that it can -->
<!-- be used as a plain text file as well. -->
<!-- Release $Id: avi.html,v 1.132 1997/09/29 17:21:32 jfm Exp $ -->
<!-- Permission to copy and distribute this document is granted -->
<!-- so long as the title, author's name, and URL are retained -->
<!-- Any additions or modifications made to the original should be -->
<!-- clearly marked as such. -->
<!-- The author welcomes and encourages suggested changes and -->
<!-- additions to the overview. Contributors will be credited. -->
<A NAME="Top">
What is in this Overview?
</A>
- Overview of Video for Windows, ActiveMovie, and AVI
<A HREF="#Definition">What is AVI?</A>
<A HREF="#Disclaimer">Disclaimer</A>
<A HREF="#New">WHAT'S NEW</A>
UTILITIES, SYSTEM ADMINISTRATION, AUTHORING, ETC.
- <A HREF="#Play">How to play an AVI file?</A>
- DOS
- Windows
- Macintosh
- Unix
- VAX/VMS
- Amiga
- OS/2
- How to convert AVI to various audio/video formats.
- <A HREF="#ToMPEG">MPEG</A>
- <A HREF="#ToMOV">QuickTime .MOV (.MooV)</A>
- <A HREF="#ToGIF89a">Animated GIFs (GIF89a)</A>
- <A HREF="#ToASF">Microsoft ASF (Active Streaming Format)</A>
- <A HREF="#ToSequence">Sequence of Still Images in Separate Files</A>
- <A HREF="#ToSmacker">Smacker</A>
- How to convert other audio/video formats to AVI
- <A HREF="#FromMOV">QuickTime .MOV (.MooV)</A>
- <A HREF="#FromSequence">Sequence of Still Images in Separate Files</A>
- <A HREF="#FromAutodesk">Autodesk Animation (FLI or FLC)</A>
- <A HREF="#FromMPEG">MPEG</A>
- <A HREF="#FromGIF89a">Animated GIF</A>
- <A HREF="#Bitmaps">How to Convert a Sequence of Still Images in One Format to a Sequence in Another Format</A>
- Authoring AVI Files
- <A HREF="#ScreenCapture">How to capture screen to AVI files</A>
- <A HREF="#AuthorAVI">Multimedia Authoring Tools to Create AVI Files</A>
- <A HREF="#LW">How to import AVI files into Lightwave</A>
- <A HREF="#Capture">How to create AVI files from analog video (Video Capture Cards)</A>
- From VHS tapes and video cameras
- From Hi8 tapes and video cameras
- <A HREF="#HDCapture">Hard Drive Video Capture Issues</A>
- <A HREF="#NTCapture">Video Capture Cards with Windows NT Drivers</A>
- <A HREF="#TV">How to create AVI files from Television</A>
- <A HREF="#FPS">How to change frame rate of AVI files</A>
- <A HREF="#Edit">How to edit AVI files</A>
- VidEdit
- Personal AVI Editor
- Corel Lumiere Suite for 32-bit Windows
- Ulead Media Studio Pro
- Adobe Premiere
- in:sync SpeedRazor
- Asymetrix Digital Video Producer (DVP)
- <A HREF="#Wave">Editing and converting WAV files</A>
- <A HREF="#Output">How to output AVI files to videotape</A>
- <A HREF="#ToNTSC">How to create NTSC (or PAL) Safe AVI</A>
- <A HREF="#BinEd">Binary File Editors for Viewing and Editing AVI</A>
- <A HREF="#Size">Size limits on AVI files</A>
- <A HREF="#Corel">How to Fix Problem with AVI files from CorelMove 4.0</A>
Installation, Configuration, and Other Issues
- <A HREF="#VfW16">Where to get the 16-bit Video for Windows for Windows 3.x</A>
- <A HREF="#Win95">Reinstalling Microsoft's Video-for-Windows in Windows 95</A>
- <A HREF="#GETAM">How to get ActiveMovie 1.0</A>
- <A HREF="#NT40">Installing and configuring AVI Codecs in Windows NT 4.0</A>
- <A HREF="#VideoChips">PC Video Card and Video Chips</A>
- <A HREF="#NTVideo">Video Cards with Windows NT Drivers</A>
- <A HREF="#Extension">How to give AVI files a different extension in Windows 3.1</A>
- <A HREF="#AVI95">How AVI Files are Handled in Windows 95</A>
- <A HREF="#Word">How to embed an AVI file in a Microsoft Word Document</A>
- <A HREF="#Biblio">Bibliography of sources of information on Video for Windows and AVI</A>
- <A HREF="#News">Internet Newsgroups with Information on AVI and Video </A>
- <A HREF="#Misc">Answers to miscellaneous other frequently asked questions about AVI </A>
AVI and the WORLDWIDE WEB
- <A HREF="#Style">Effective use of video on a Web page</A>
- <A HREF="#Web">How to embed an AVI file in a Web page</A>
- <A HREF="#NS">Configuring Netscape Navigator 3.0x to Display AVI Files</A>
- <A HREF="#Plug-ins">Netscape Navigator Plug-ins to play AVI</A>
- <A HREF="#IE">Configuring Internet Explorer 3.0x to Display AVI Files</A>
- <A HREF="#Mail">Sending AVI by E-Mail</A>
- <A HREF="#MIME">MIME types of AVI</A>
- <A HREF="#HTTPD">Configuring Web Servers to Handle AVI Files</A>
- Apache
- CERN (or W3C)
- NCSA HTTPd
- Microsoft Internet Information Server 3.0
- Netscape Enterprise Server 3.0
- <A HREF="#Java">AVI and Java</A>
- <A HREF="#VRML">AVI and VRML</A>
- <A HREF="#NetShow">AVI and NetShow</A>
- <A HREF="#ToASF">Converting AVI to Microsoft Active Streaming Format (ASF) Files</A>
- <A HREF="#Content">Sources of AVI Video Clips on the Web</A>
- <A HREF="#AVILBR">Low Bit Rate AVI for the Web</A>
REAL-TIME OR STREAMING VIDEO OVER IP NETWORKS
- <A HREF="#Limits">Limitations of AVI and Video for Windows over Networks</A>
- <A HREF="#NetShow">NetShow</A>
AUDIO and VIDEO CODECS
- <A HREF="#Codec">Video for Windows compressors and decompressors</A>
WHAT THEY ARE, WHERE TO GET THEM, WHICH WORK BEST!
- The Old Guard
- <A HREF="#DIB">Full Frames (Uncompressed)</A>
- <A HREF="#IV32">Indeo 3.2/3.1</A>
- <A HREF="#MRLE">Microsoft Run Length Encoding</A>
- <A HREF="#MSVC">Microsoft Video 1</A>
- <A HREF="#CVID">CinePak</A>
- <A HREF="#MJPG">Motion JPEG</A>
- <A HREF="#XMPG">Editable MPEG</A>
- The New Wave
- <A HREF="#VDOW">VDOWave (VDOLive)</A>
- <A HREF="#IV41">Indeo Video Interactive (Indeo 4.1)</A>
- <A HREF="#IV50">Indeo Video Interactive (Indeo 5.0)</A>
- <A HREF="#UCOD">ClearVideo (aka RealVideo)</A>
- <A HREF="#SFMC">SFM (Surface Fitting Method)</A>
- <A HREF="#QPEG">QPEG</A>
- <A HREF="#H261">H.261</A>
- <A HREF="#H263">H.263</A>
- Microsoft H.263
- Vivo Software H.263
- <A HREF="#MPG4">MPEG-4</A>
- <A HREF="#VxTreme">VxTreme</A>
- <A HREF="#BestCodec">Which codec is best?</A>
- <A HREF="#VfWInstalled">How to determine which codecs are installed</A>
- <A HREF="#WhichAVICodec">How to determine which codec was used to compress an AVI file</A>
- <A HREF="#FourCC">Microsoft Four Character Codes (FOURCC)</A>
- <A HREF="#ALGO">Video Compression Technologies</A>
<A HREF="#RLE">Run Length Encoding</A>
<A HREF="#VQ">Vector Quantization</A>
<A HREF="#DCT">Discrete Cosine Transform</A>
<A HREF="#FD">Frame Differencing</A>
<A HREF="#Motion">Motion Compensation</A>
- <A HREF="#ACM">Audio Codecs</A>
- <A HREF="#ACMInstalled">How to determine which Audio Codecs are Installed</A>
PROGRAMMING/TECHNICAL TOPICS
- <A HREF="#VFW">Video for Windows</A>
- <A HREF="#WAVE">Wave (Waveform Audio)</A>
- <A HREF="#Format">AVI file format</A>
- RIFF Files
- Original AVI File Format
- <A HREF="#OpenDML">OpenDML AVI File Format Extensions</A>
- <A HREF
- <A HREF="#ActiveMovie">ActiveMovie</A>
- <A HREF="#GUID">GUID's and AVI</A>
- <A HREF="#DirectShow">DirectShow (ActiveMovie 2.0)</A>
- <A HREF="#DirectDraw">DirectDraw</A>
- <A HREF="#MMX">MMX</A>
- <A HREF="#ActiveX">ActiveX</A>
- <A HREF="#AviPlay">Playing an AVI file within a Windows Application</A>
- <A HREF="#AviWrite">Reading and Writing an AVI file within a Windows Application</A>
DEVICE DRIVERS AND VIDEO
- <A HREF="#GDI">GDI Device Drivers</A>
- <A HREF="#DHAL">DirectDraw Hardware Abstraction Layer</A>
- <A HREF="#VXD">Virtual Device Drivers</A>
- <A HREF="#NTDM">Windows NT Driver Model</A>
- <A HREF="#WDM">Win32 Driver Model (WDM)</A>
- <A HREF="#INF">Setup Information Files</A>
<A HREF="#Credits">Credits</A>
ABOUT THE AUTHOR
- John McGowan is a software engineer with experience
in digital audio and video on PC/Windows, Unix/X Windows, and
PowerMacintosh platforms. He has developed commercial MPEG-1 and
MPEG-2 player software. His experience includes development,
optimization, and implementation of audio, video, and still image
compression and decompression algorithms in C/C++ on Intel, MIPS,
SPARC, and PowerPC based platforms. He has also developed Microsoft
Windows user interface software. He has a Ph.D. in physics from the
University of Illinois at Urbana-Champaign and a B.S. in physics from
the California Institute of Technology.
- <A HREF="http://www.rahul.net/jfm/index.html">John McGowan's Home Page</A>
<A NAME="Disclaimer">
<H2>Disclaimer</H2>
In no event shall John McGowan or other contributors be liable for
direct, indirect, special, incidental or consequential damages
arising out of the use or inability to use information, softwares,
bitstreams and other data found on or referenced by the AVI Graphics
Overview.
Permission to copy and distribute this document is granted so long as
the title, author's name, URL, and this disclaimer are retained. Any
additions or modifications made to the original should be clearly
marked as such. The author welcomes and encourages suggested changes
and additions to the overview. Contributors will be credited.
<A HREF="#Top">Return to Top</A>
<A NAME="New">
<H2>What's New</H2>
</A>
(September 8, 1997) Microsoft distributes Advanced Streaming
Format (ASF) Specification for a "Public Design Review".
<A HREF="http://www.microsoft.com/asf/">Microsoft ASF Page</A>
(September, 1997) avi2mpg1 released. A Windows 95/NT console
application to convert AVI to MPEG-1.
(August 5, 1997) Microsoft acquires VxTreme (wavelet based
streaming video) for its NetShow product line.
<A HREF="http://www.vxtreme.com/">VxTreme Inc.</A>
Intel's Indeo Video Interactive 5.0 software is
now available on Intel web site.
Wolfgang Hesseler announces version 2.13 of QuickView, an AVI
player for DOS (July 28, 1997)
MainConcept announces version 1.1 of MainActor shareware.
MainActor can convert between AVI and many video, animation,
and image formats. (July 9, 1997)
Marcus Moenig of MainConcept writes:
John,
well here comes the press release of v1.1 We now support full MPEG-I and
MPEG-II without audio. So you can now convert MPEG into AVI and vice versa.
I dont want to get on your nerves on what MainActor can and cannot do but
we also support full Motion JPEG for AVIs. Even interlaced JPEG from Miro
and FAST hardware can now be read and written by MainActor.
---End---
RAD Game Tools announces a new version of their Smacker
utilities, including the ability to read and write AVI
files with optimized 8 bit color palettes. (June 27, 1997)
<A HREF="#Top">Return to Top</A>
<A NAME="Definition">
<H2>What is AVI?</H2>
</A>
AVI stands for Audio Video Interleave. It is a special case
of the RIFF (Resource Interchange File Format). AVI is defined by
Microsoft. AVI is the most common format for audio/video data on the
PC.
<A HREF="#Top">Return to Top</A>
<A NAME="VFW">
<H2>Video for Windows</H2>
</A>
Video for Windows is an entire system for handling video
in Microsoft Windows. It was part of MS Windows 3.1 The
original Video for Windows is a collection of 16 bit
windows utilities, dynamic link libraries, and other
components.
The AVI file and file format is a central part of Video
for Windows.
Microsoft released a Video for Windows 1.0 for
Windows 3.1 in November 1992, followed by Video for Windows 1.1. There
have been several versions of Video for Windows 1.1
identified by a trailing alphabetical character such as
1.1e The last and most recent version of Video for
Windows 1.1 for Windows 3.x is Video for Windows 1.1e
This is available by ftp from Microsoft.
Microsoft has provided a 32 bit version of Video for Windows
for Windows 95, while threatening to replace Video for Windows with
ActiveMovie. This version has 32 bit versions of the Video
for Windows codecs such as CinePak. It is not entirely clear
that it is entirely 32 bit code.
Windows NT 3.5, 3.51 and Windows NT 4.0 include a Video for Windows for
NT. Presumably this is strictly 32 bit. It is not clear how
much code is shared between the NT Video for Windows and the
Windows 95 Video for Windows. Note that hardware device
drivers are different between Windows 95 and NT 3.5/3.51/4.0.
ActiveMovie 1.0 and DirectShow (formerly ActiveMovie 2.0) are
32 bit successors to Video for Windows for both Windows 95
and Windows NT. These support AVI files.
SUMMARY
Video for Windows 1.0 (Windows 3.x)
Video for Windows 1.1 (a-e) (Windows 3.x)
Video for Windows (Windows 95 - has 32 bit codecs, other 32 bit?)
Video for Windows (Windows NT 3.5, 3.51, and 4.0)
ActiveMovie 1.0
ActiveMovie 2.0 (DirectShow)
<A HREF="#Top">Return to Top</A>
<A NAME="WAVE">
<H2>WAVE</H2>
</A>
The Microsoft Windows audio (sound) input/output system, commonly
referred to as Wave or WAVE, predates Video for Windows, which is
wrapped around WAVE in various ways. The audio tracks in AVI files
are simply waveform audio (or WAV) data used by the wave system.
Video for Windows parses the AVI files, extracts the WAV data, and
pipes the WAV data to the WAVE system. Video for Windows handles the
video track if present.
Traditionally, audio input and output devices such as Sound Blaster
Cards have a WAVE audio input/output driver to play WAV (waveform
audio) files.
The simplest waveform audio files consists of a header followed by
Pulse Coded Modulation (PCM) sound data, usually uncompressed 8 or 16
bit sound samples. WAVE also provides a mechanism for audio codecs.
See elsewhere in the AVI Overview for further information on audio
codecs and audio compression.
WAVE is present in Windows 3.1 and Windows 95. A different WAVE
system is present in Windows NT 3.5, 3.51, and 4.0 At least the
hardware device drivers for sound cards must be different in NT.
ActiveMovie appears to be replacing WAVE.
<A HREF="#Top">Return to Top</A>
<A NAME="Format">
<H2>What is the AVI File Format?</H2>
</A>
AVI Files are a special case of RIFF files. RIFF is
the Resource Interchange File Format. This is a general
purpose format for exchanging multimedia data types
that was created by Microsoft and IBM during their
long forgotten alliance.
<H3>RIFF Files</H3>
RIFF files are built from
(1) RIFF Form Header
'RIFF' (4 byte file size) 'xxxx' (data)
where 'xxxx' identifies the specialization (or form)
of RIFF. 'AVI ' for AVI files.
where the data is the rest of the file. The
data is comprised of chunks and lists. Chunks
and lists are defined immediately below.
(2) A Chunk
(4 byte identifier) (4 byte chunk size) (data)
The 4 byte identifier is a human readable sequence
of four characters such as 'JUNK' or 'idx1'
(3) A List
'LIST' (4 byte list size) (4 byte list identifier) (data)
where the 4 byte identifier is a human readable
sequence of four characters such as 'rec ' or
'movi'
where the data is comprised of LISTS or CHUNKS.
<H3>AVI File Format</H3>
AVI is a specialization or "form" of RIFF, described below:
'RIFF' (4 byte file length) 'AVI ' // file header (a RIFF form)
'LIST' (4 byte list length) 'hdrl' // list of headers for AVI file
The 'hdrl' list contains:
'avih' (4 byte chunk size) (data) // the AVI header (a chunk)
'strl' lists of stream headers for each stream (audio, video, etc.) in
the AVI file. An AVI file can contain zero or one video stream and
zero, one, or many audio streams. For an AVI file with one video and
one audio stream:
'LIST' (4 byte list length) 'strl' // video stream list (a list)
The video 'strl' list contains:
'strh' (4 byte chunk size) (data) // video stream header (a chunk)
'strf' (4 byte chunk size) (data) // video stream format (a chunk)
'LIST' (4 byte list length) 'strl' // audio stream list (a list)
The audio 'strl' list contains:
'strh' (4 byte chunk size) (data) // audio stream header (a chunk)
'strf' (4 byte chunk size) (data) // audio stream format (a chunk)
'JUNK' (4 byte chunk size) (data - usually all zeros) // an OPTIONAL junk chunk to align on 2K byte boundary
'LIST' (4 byte list length) 'movi' // list of movie data (a list)
The 'movi' list contains the actual audio and video data.
This 'movi' list contains one or more ...
'LIST' (4 byte list length) 'rec ' // list of movie records (a list)
'##wb' (4 byte chunk size) (data) // sound data (a chunk)
'##dc' (4 byte chunk size) (data) // video data (a chunk)
'##db' (4 byte chunk size) (data) // video data (a chunk)
A 'rec ' list (a record) contains the audio and video data for a single frame.
'##wb' (4 byte chunk size) (data) // sound data (a chunk)
'##dc' (4 byte chunk size) (data) // video data (a chunk)
'##db' (4 byte chunk size) (data) // video data (a chunk)
The 'rec ' list may not be used for AVI files with only audio or only
video data. I have seen video only uncompressed AVI files that did
not use the 'rec ' list, only '00db' chunks. The 'rec ' list is used
for AVI files with interleaved audio and video streams. The 'rec '
list may be used for AVI file with only video.
## in '##dc' refers to the stream number. For example, video data chunks
belonging to stream 0 would use the identifier '00dc'. A chunk of
video data contains a single video frame.
I suspect that '##db' is used for uncompressed video frames. '##dc' is
used for compressed video frames. '##wb' for uncompressed audio (WAVE)
data.
The 'movi' list may be followed by:
'idx1' (4 byte chunk size) (index data) // an optional index into movie (a chunk)
The optional index contains a table of memory offsets to each
chunk within the 'movi' list. The 'idx1' index supports rapid
seeking to frames within the video file.
The 'avih' (AVI Header) chunk contains the following information:
Total Frames (for example, 1500 frames in an AVI)
Streams (for example, 2 for audio and video together)
InitialFrames
MaxBytes
BufferSize
Microseconds Per Frame
Frames Per Second (for example, 15 fps)
Size (for example 320x240 pixels)
Flags
The 'strh' (Stream Header) chunk contains the following information:
Stream Type (for example, 'vids' for video 'auds' for audio)
Stream Handler (for example, 'cvid' for CinePak)
Samples Per Second (for example 15 frames per second for video)
Priority
InitialFrames
Start
Length (for example, 1500 frames for video)
Length (sec) (for example 100 seconds for video)
Flags
BufferSize
Quality
SampleSize
For video, the 'strf' (Stream Format) chunk contains the following
information:
Size (for example 320x240 pixels)
Bit Depth (for example 24 bit color)
Colors Used (for example 236 for palettized color)
Compression (for example 'cvid' for CinePak)
For audio, the 'strf' (Stream Format) chunk contains the following
information:
wFormatTag (for example, WAVE_FORMAT_PCM)
Number of Channels (for example 2 for stereo sound)
Samples Per Second (for example 11025)
Average Bytes Per Second (for example 11025 for 8 bit sound)
nBlockAlign
Bits Per Sample (for example 8 or 16 bits)
Each 'rec ' list contains the sound data and video data for a single
frame in the sound data chunk and the video data chunk.
Other chunks are allowed within the AVI file. For example, I have
seen info lists such as
'LIST' (4 byte list size) 'INFO' (chunks with information on video)
These chunks that are not part of the AVI standard are simply
ignored by the AVI parser. AVI can be and has been extended by adding
lists and chunks not in the standard. The INFO list in the example
above is part of the OpenDML AVI File Format Extensions.
The sound data is typically 8 or 16 bit PCM, stereo or mono,
sampled at 11, 22, or 44.1 KHz. Traditionally, the sound has
typically been uncompressed Windows PCM. With the advent of
the WorldWide Web and the severe bandwidth limitations of the
Internet, there has been increasing use of audio codecs. The
wFormatTag field in the audio 'strf' (Stream Format) chunk
identifies the audio format and codec.
<A NAME="OpenDML">
<H3>OpenDML AVI File Format Extensions</H3>
</A>
The Open Digital Media (OpenDML) Consortium has defined an
OpenDML AVI File Format Extensions which extend AVI to support
a variety of features required for professional video production.
These include support for fields (not just frames), file sizes
larger than 1 GB, timecodes, and many other features. Microsoft
has incorporated this extended version of AVI into Microsoft's
Active Movie 1.0. It is also used by various professional
video applications for the PC.
The Open Digital Media Consortium AVI File Format Extensions
add new lists and chunks to the AVI file which contain extra
data such as timecodes not incorporated in the original AVI
standard.
<A HREF="#Top">Return to Top</A>
<A NAME="Codec">
<H2>Meet the Codecs</H2>
</A>
The video data in an AVI file can be formatted and compressed in
a variety of ways. Video for Windows 1.1e comes with several
compressors:
Intel Indeo (version 3.2)
Microsoft Video 1
Microsoft RLE (Run Length Encoding)
CinePak
AVI is not restricted to these compressors. They
are the compressors provided with Video for Windows.
These compressors are the Old Guard, the video codecs
from the early days of Video for Windows and Quicktime (CinePak originated
with the Macintosh and Quicktime). During this period the
focus of video was playback from hard drives and CD-ROM's.
The advent of the WorldWide Web and Internet Mania
has created a New Wave of audio and video codecs, trying to
apply "advanced" technologies such as sophisticated motion
estimation and compensation, wavelets, fractals, and other
techniques to achieve extremely low bitrates (such as
28.8 Kbits/second for phone lines) for the Internet.
<H3>The Old Guard</H3>
<A NAME="DIB">
<H4>Full Frames (Uncompressed)</H4>
</A>
Users can store AVI files with uncompressed frames. No codec is
required for this.
The Four Character Code (FOURCC) for this is 'DIB ', DIB for
the Microsoft Device Independent Bitmap.
<A HREF="#Top">Return to Top</A>
<A NAME="MRLE">
<H4>Microsoft Run Length Encoding</H4>
</A>
Microsoft Run Length Encoding uses the Four Character Code MRLE
[drivers32]
VIDC.MRLE=MSRLE32.DLL
in Windows 95
[drivers]
VIDC.MRLE=MSRLE.DLL
in Windows 3.x
<A HREF="#Top">Return to Top</A>
<A NAME="MSVC">
<H4>Microsoft Video 1</H4>
</A>
Microsoft Video uses the Four Character Code MSVC
[drivers32]
VIDC.MSVC=MSVIDC32.DLL
in Windows 95
[drivers]
VIDC.MSVC=MSVIDC.DLL
in Windows 3.x
<B>NOTE:</B> The Four Character Code CRAM is also used for Microsoft Video 1.
<A HREF="#Top">Return to Top</A>
<A NAME="IV32">
<H4>Intel Indeo 3.1/3.2</H4>
</A>
Indeo uses the Microsoft Four Character Codes IV31 and IV32,
originally for Indeo 3.1 and Indeo 3.2, but these are usually now
mapped to Indeo 3.2
[drivers32]
VIDC.IV31=IR32_32.DLL
VIDC.IV32=IR32_32.DLL
in Windows 95
[drivers]
VIDC.IV31=IR32.DLL
VIDC.IV32=IR32.DLL
in Windows 3.x
Indeo 3.x uses Vector Quantization based image compression.
<A HREF="#Top">Return to Top</A>
<A NAME="CVID">
<H4>Cinepak</H4>
</A>
CinePak is the most widely used Video for Windows codec. CinePak
reportedly provides the fastest playback of video. While Indeo 3.2
provides similar or slightly superior image quality for same
compression, Indeo decompression is much more CPU intensive than
CinePak. CinePak was originally developed for the Mac and licensed to
Apple by SuperMac. It is now free with Video for Windows. It is also
free with Apple's QuickTime.
There are at least three CinePak codecs in existence:
CinePak by SuperMac (the original, 16 bit)
CinePak by Radius (newer, better?, 16 bit)
CinePak by Radius[32] (32 bit version of Radius CinePak, shipped with Windows 95)
Peter Plantec's Caligari TrueSpace2 Bible strongly recommends using the Radius
codec for superior results when generating AVI files from TrueSpace.
Cinepak uses the Microsoft Four Character Code CVID
[drivers32]
VIDC.CVID=ICCVID.DLL
in Windows 95
[drivers]
VIDC.CVID=ICCVID.DRV
in Windows 3.x
Cinepak uses Vector Quantization based image compression and frame
differencing.
<A HREF="#VQ">Vector Quantization</A>
<A HREF="#Top">Return to Top</A>
<A NAME="MJPG">
<H4>Motion JPEG</H4>
</A>
Most PC video capture and editing systems capture video to AVI
files using Motion JPEG video compression. In Motion JPEG, each
video frame is compressed separately using the JPEG still image
compression standard. No frame differencing or motion estimation
is used to compress the images. This makes frame accurate
editing without any loss of image quality during the editing
possible.
The standards situation for Motion JPEG is complicated since
at one time there was no industry standard for Motion JPEG.
Microsoft has a Microsoft Motion JPEG Codec and a JPEG DIB
Format. The OpenDML Avi File Format Extensions (another
standard for extending AVI to support professional video
features) includes Motion JPEG support. See the Paradigm
Matrix site below for more information on these standards.
Motion JPEG codecs usually use the Four Character Code 'MJPG'.
Motion JPEG is used for editing and authoring, but rarely for
distribution. Usually, once the video has been edited, it is
compressed further using CinePak or another codec for distribution.
Because Motion JPEG does not use frame differencing or motion
estimation, better compression is possible with other codecs.
A software Motion JPEG codec for Windows NT and Windows 95 is available
from Paradigm Matrix at:
<A HREF="http://www.pmatrix.com/Goodies.htm">http://www.pmatrix.com/Goodies.htm</A>
The Paradigm Matrix Motion JPEG codec uses the Four Character Code
MJPG.
Motion JPEG uses the Block Discrete Cosine Transform (DCT) for
image compression.
<A HREF="#Top">Return to Top</A>
<A NAME="XMPG">
<H4>Editable MPEG</H4>
</A>
At least two companies defined schmes to wrap editable MPEG (I frames
only MPEG) in AVI files. Xing Technology's editable MPEG AVI uses
the Four Character Code XMPG. Sigma Designs defined an AVI format
using the Four Character Code MPGI.
Editable MPEG consists of only MPEG I frames. This omits the MPEG
motion estimation. It is very similar to Motion JPEG. By wrapping
I frames only MPEG in AVI, editable MPEG works with standard Video for
Windows editing and authoring applications such as Adobe Premiere.
Xing Technologies
<A HREF="http://www.xingtech.com/">http://www.xingtech.com/</A>
Sigma Designs
<A HREF="http://www.graphcomp.com/info/specs/ms/editmpeg.htm">MPEG Extensions to AVI File
Format (Draft 1.1 by Sigma Designs)</A>
<A HREF="#Top">Return to Top</A>
<H3>The New Wave</H3>
Recently (5/18/97), there has been a proliferation of new Video for
Windows codecs. A few like H.261 have been around for a while, but
most represent implementations of new or improved technologies such as
wavelets. Many are targetted toward low bitrate video over the
Internet. For lack of better terminology, I refer to these as the New
Wave to differentiate them from the older codecs like Cinepak included
with Video for Windows 1.1e (the last release prior to Windows 95).
Microsoft appears to be developing or licensing some of these codecs as part of
NetShow, NetMeeting, and other Microsoft initiatives.
<A NAME="VDOW">
<H4>VDOWave or VDOLive from VDONet</H4>
</A>
VDONet <A HREF="http://www.vdonet.com/">http://www.vdonet.com/</A>
4009 Miranda Ave., Suite 250
Palo Alto, CA 94304
Voice: (415) 846-7730
FAX: (415) 846-7900
markets a wavelet based video codec which includes a Video for Windows
(32 bit) implementation. Microsoft appears to have licensed VDOWave as
part of the NetShow product. This codec uses the Microsoft Four
Character Code (FOURCC) VDOW and adds the line
[drivers32]
VIDC.VDOW=vdowave.drv
to the Windows 95 SYSTEM.INI files.
The driver from NetShow includes both encoding and decoding
capabilities. In some of my tests, VDOWave appears significantly
superior to MPEG-1 and the other block Discrete Cosine Transform based
codecs at low bitrates.
VDONet uses the trademark VDOWave for its wavelet based video codec.
VDONet uses the trademark VDOLive for its VDOLive On-Demand Product
Line. This includes the VDOLive On-Demand Server, the VDOLive tools
including VDOCapture and VDOClip, and the VDOLive Player. Sometimes
VDOLive and VDOWave are used interchangably by users and in some company
literature.
VDONet also has a VDOPhone product for real-time videoconferencing.
Based on the company documentation, published reports, and viewing the
technology, VDOWave appears to be a combination of wavelet based image
compression and motion compensation or frame differencing.
<A HREF="#Top">Return to Top</A>
<A NAME="IV41">
<H4>What is Indeo Video Interactive?</H4>
</A>
Indeo Video Interactive, Indeo 4.1, is a new version of Indeo
from Intel based on a "hybrid wavelet algorithm"
according to Intel. This is a different compression algorithm than Indeo 3.2
which is included with Video for Windows. Indeo 3.2 uses Vector Quantization.
Indeo Video Interactive can be installed as a Video for Windows
codec or in the new ActiveMovie environment from Microsoft.
For further information on Indeo Video Interactive
<A HREF="http://www.intel.com/pc-supp/multimed/indeo/index.htm">
http://www.intel.com/pc-supp/multimed/indeo/index.htm</A>
How to identify an AVI file that uses Indeo Video Interactive
for the video compressor?
Video for Windows identifies different video compressors through
four character codes. For example, 'cvid' is the four character
code for the widely used CinePak compressor. The four character
code is found in the video stream header 'strh' in the AVI file.
Indeo Video Interactive (Indeo 4.1) uses the four character code
'iv41'
If Indeo Video Interactive is not installed installed Video for
Windows will report an error, indicating that it cannot find the
compressor for 'iv41'. The specific message appears to be:
"Video not available, cannot find 'vids:iv41' decompressor."
<B>NOTE:</B> Indeo 4.1 claims to implement a hybrid wavelet transform.
Some of the behavior of the codec at low bitrates differs from other
wavelet based image and video compressors such as VDOWave, Infinop's
Lightning Strike, and some public domain wavelet compression software.
In particular, at low bitrates, I have seen the characteristic checkerboard
pattern of 8x8 pixel blocks seen in block based transform coding methods such
as MPEG-1. I'm not sure what Intel means by hybrid wavelet transform.
In general, at low bitrates, image and video compression schemes using the
Discrete Wavelet Transform (DWT) exhibit a blurring at the edges of objects and
also "ringing" artifacts near edges. They do not exhibit the blocking
artifacts, checkerboard pattern in extreme cases, seen in block Discrete Cosine
Transform based image and video compression.
<A HREF="#Top">Return to Top</A>
<A NAME="IV50">
<H4>Indeo Video Interactive 5.0</H4>
Intel is now (8/1/97) distributing an Indeo Video Interactive 5.0
Beta software on their web site. Indeo 5.0 claims to use a new
better wavelet compression algorithm for improvied video quality.
<A HREF="http://developer.intel.com/ial/indeo/video/beta/index.htm">http://developer.intel.com/ial/indeo/video/beta/index.htm</A>
<A HREF="#Top">Return to Top</A>
<A NAME="UCOD">
<H4>ClearVideo (aka RealVideo)</H4>
</A>
ClearVideo is a video codec from Iterated Systems(<A
HREF="http://www.iterated.com/"> http://www.iterated.com</A>
Iterated has also licensed the ClearVideo technology to Progressive
Networks, makers of RealAudio, under the name RealVideo.
You can (or could at one time) download a Video for Windows demo of
ClearVideo from the Iterated Web site. This includes a demo Video for
Windows codec that allows both encoding and decoding The video can
only be played on the same machine with the demo encoder. This codec
works with Video for Windows applications such as Media Player and
VidEdit.
Fractal video encoding appears to be very slow (computationally
intensive). The video is similar or somewhat
superior to MPEG-1 in quality.
ClearVideo uses Fractal Image Compression. Iterated is the main
(only?) producer of commercial fractal image and video compression
technology.
The Video for Windows evaluation version of ClearVideo
installs
[drivers32]
VIDC.UCOD=CLRVIDCD.DLL
in SYSTEM.INI in Windows 95.
<A HREF="#Top">Return to Top</A>
<A NAME="SFMC">
<H4>SFM (Surface Fitting Method)</H4>
</A>
Crystal Net Corporation (<A
HREF="http://www.crystalnet.com/">http://www.crystalnet.com/</A> seeks
to license a technology called SFM or Surface Fitting Method. This is
supposed to be a low bitrate video technology for ISDN and POTS (Plain
Old Television Service) bitrates. They have a Video for Windows demo
to download from their Web site.
SFM used the Microsoft Four Character Code (FOURCC) SFMC.
The demo installs (actually the instructions tell you to manually install):
[drivers32]
VIDC.SFMC=SFMdemo.dll
in Windows 95.
The demo does not include an encoder which presents problems in evaluating
the technology. However, SFM appears to be some sort of edge detection based
encoding technology.
<A HREF="#Top">Return to Top</A>
<A NAME="QPEG">
<H4>QPEG</H4>
</A>
Q-Team Dr. Knabe produces a Video for Windows codec known as QPEG.
Currently (6/27/97), QPEG supports 8 bit color. Q-Team plans 16 and
24 bit color, MMX support, and other additional features in the
future.
Sample AVI/QPEG files and Video for Windows QPEG codecs for
Windows 3.x and Windows 95/NT are available at the Q-Team
web site.
<A HREF="http://www.q-team.de/">http://www.q-team.de/</A>
Q-Team is also working on MPEG-4 for the PC.
<A HREF="#Top">Return to Top</A>
<A NAME="H261">
<H4>H.261</H4>
</A>
H.261 is an international standard, widely used for video conferencing
in the 128 Kbits/second to 384 Kbits/second range. This is a block
Discrete Cosine Transform method. Actually, H.261 was the first
international standard developed using the block Discrete Cosine
Transform and motion compensation. MPEG-1, which is probably better
known, followed the H.261 effort.
Intel's ProShare videoconferencing product installs a Video for Windows H.261 codec.
<B>NOTE:</B> I've never generated an AVI files with Intel's H.261, so it
may only be used for Intel ProShare videoconferencing and not with AVI.
Microsoft has a Microsoft H.261 Video for Windows 32 bit codec.
[drivers32]
VIDC.M261=MSH261.DRV
in Windows 95.
<A HREF="#Top">Return to Top</A>
<A NAME="H263">
<H4>H.263</H4>
</A>
H.263 is another international standard, based on the Block Discrete
Cosine Transform (DCT) and motion compensation. H.263 has a number of
improvements, mostly in the area of motion compensation, over the
earlier H.261 standard. It is targeted toward very low bitrate video
compression.
Microsoft's NetShow appears to install a Microsoft H.263 video codec.
Microsoft H.263 uses the Four Character Code M263.
[drivers32]
VIDC.M263=msh263.drv
in Windows 95.
<B>NOTE:</B> I've never been able to generate an AVI files with
Microsoft H.263, so it may only be used for videoconferencing such as
Microsoft's NetMeeting and not with AVI. Actually, I managed to crash
Windows 95 by trying to compress an AVI file using the Microsoft H.263
selection with VidEdit.
Vivo Software Inc. markets streaming H.263 and G.723 audio for the
Web under the brand name VivoActive. Vivo has its own file format
called .VIV which can be embedded in web pages. Vivo provides
a player called VivoActive player and an authoring tool for
creating .VIV files called VivoActive Producer.
There is also a codec that identifies itself as Vivo H.263
Video Codec[32] which installs
[drivers32]
VIDC.VIVO=IVVIDEO.DLL
in Windows 95.
The Vivo Software Web Site:
<A HREF="http://www.vivo.com/">http://www.vivo.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="MPG4">
<H4>MPEG-4</H4>
</A>
Microsoft's NetShow installs a Video for Windows codec for
MPEG-4. MPEG-4 is a new international standard that has not
been officially released as yet. Microsoft is deeply involved in
the MPEG-4 standardization effort. Microsoft has been using
its MPEG-4 for the Microsoft NBC Business Video broadcasting over
the Internet.
MPEG-4 uses the Microsoft Four Character Code (FOURCC) MPG4.
[drivers32]
VIDC.MPG4=msscrc32.dll
<A HREF="#Top">Return to Top</A>
<A NAME="VxTreme">
<H4>VxTreme</H4>
</A>
Although I have not seen a Video for Windows implementation of VxTreme
(5/18/97), I thought that I should include this codec. Undoubtedly,
it will be ported to Video for Windows and/or ActiveMovie if this has
not already happened.
VxTreme(<A HREF="http://www.vxtreme.com/">http://www.vxtreme.com/</A>
markets a video codec that is usually identified as a wavelet based
codec.
A VxTreme player, a Plug-In for Internet Explorer and Netscape, is
available at the VxTreme Web site.
VxTreme has some very impressive demos of QCIF (160x120) talking heads
material on their Web sites. The subjective image quality during
scenes with small changes is quite good, much superior to the block
Discrete Cosine Transform based codecs and probably VDONet's VDOWave.
Text such as movie titles and credits appears to encode very well.
Preserving the sharp edges of text is a major problem in block
Discrete Cosine Transform based encoders such as the JPEG still image
compression standard and the MPEG video compression standard. In
general, wavelet image compression encounters problems with sharp
edges as well.
VxTreme clearly uses some sort of motion compensation or frame
differencing. Image quality drops dramatically during periods with
rapid changes. I viewed a number of movie trailers encoded with
VxTreme for 28.8 Kbits/second such as the trailer for "Goldeneye".
These trailers contain many scene changes and motion. Video quality
is poor, hardly superior to competitors such as H.261 or Microsoft's
MPEG-4. The talking heads material at 28.8 looks almost natural.
VxTreme may be a combination of the Discrete Wavelet Transform (??)
and motion compensation. The preservation of sharp edges suggests
something beyond the vanilla Discrete Wavelet Transforms described in
the technical literature on wavelet based image and video compression.
<A HREF="#Top">Return to Top</A>
<A NAME="VfWInstalled">
<H2>How to determine which Video for Windows decompressors are installed on a PC?</H2>
</A>
In the SYSTEM.INI file, there is a section [drivers] which will contain
some lines as follows:
[drivers]
VIDC.MSVC=msvidc.drv
VIDC.YVU9=isvy.drv
VIDC.IV31=indeor3.drv
VIDC.RT21=indeo.drv
VIDC.CVID=iccvid.drv
VIDC.MRLE=msrle.drv
AVI files contain a four character code (such as 'IV31' or 'CVID')
in the stream header for the video stream. This four character
code identifies the video compressor used for the video stream.
For example, 'CVID' is the identifier for CinePak (formerly Compact
Video) compression.
Video for Windows prefixes the four character code with VIDC. and
uses it to look up the video decompressor driver in SYSTEM.INI
iccvid.drv is the driver for CinePak in the example above.
Note: These are 16-bit drivers. Windows 95 adds a section [drivers32]
for 32 bit drivers. There are 32 bit versions of the Video for
Windows drivers. See below (and notice that the 32 bit drivers have
different names from the 16 bit drivers).
[drivers32]
vidc.cvid=iccvid.dll ; Cinepak for Windows 32
vidc.iv31=ir32_32.dll
vidc.iv32=ir32_32.dll
vidc.msvc=msvidc32.dll
vidc.mrle=msrle32.dll
WINDOWS 95
In Windows 95:
(1) Open the Control Panel
(2) Double click on the Multimedia Icon (applet)
(3) Select the "Advanced" Tab
(4) Under the Multimedia Drivers icon, double click on the Video Compression Codecs icon
to open it. This gives a list of installed video codecs.
<A HREF="#Top">Return to Top</A>
<A NAME="WhichAVICodec">
<H3>How to determine which codec was used to compress an AVI file</H3>
</A>
LOW LEVEL WAY THAT WORKS ON ANY OPERATING SYSTEM WITH A FILE EDITOR!
A low level way to find out is to view the avi file with an editor, for example the
standard EDIT command in DOS will work. Search for the four character code vids (usually
lower case). vids indicates a VIDeo Stream. vids is immediately followed by the
four character code for the compressor used for the AVI file. For example, a full
frames (uncompressed) AVI will contain the string:
vidsDIB
An AVI compressed using Microsoft Video 1 will contain the string:
vidsmsvc
And so forth.
See elswhere in this overview for information on the Microsoft Four Character Codes.
WINDOWS 95
In Windows 95 (or Windows NT 4.0):
Left click on the avi file's icon.
This brings up a menu of items.
Select Properties.
Click on the Details tab in the Properties sheet.
Look under Video Format in the Details. This will list the compression used.
<A HREF="#Top">Return to Top</A>
<A NAME="BestCodec">
<H3>Which compressor is best?</H3>
</A>
CinePak is the most widely used. CinePak reportedly provides the fastest
playback of video. While Indeo 3.2 provides similar or slightly
superior image quality for same compression, Indeo decompression is
much more CPU intensive than CinePak. CinePak was originally
developed for the Mac and licensed to Apple by SuperMac. It is now
free with Video for Windows. It is also free with Apple's QuickTime.
There are at least three CinePak codecs in existence:
CinePak by SuperMac (the original, 16 bit)
CinePak by Radius (newer, better?, 16 bit)
CinePak by Radius[32] (32 bit version of Radius CinePak, shipped with Windows 95)
Peter Plantec's Caligari TrueSpace2 Bible strongly recommends using the Radius
codec for superior results when generating AVI files from TrueSpace.
CinePak is the best codec to use to insure ease of playback. Few people
will have problems or need to install special codecs or software
to play an AVI compressed with CinePak.
CinePak is based on Vector Quantization and Frame Differencing to
achieve video compression. Other technologies such as the
Block Discrete Cosine Transform and Motion Compensation can achieve
superior compression (smaller files for the same subjective visual
quality).
Codecs that beat CinePak
H.263 (probably H.261) Block DCT/Motion Compensation
MPEG-4 Video Verification Model Block DCT/Motion Compensation
Indeo Video Interactive (Indeo 4.x) "hybrid wavelet"
VDONet's VDOWave Discrete Wavelet Transform/Motion Compensation
Iterated System's RealVideo or ClearVideo Fractal Compression
Although not integrated into AVI, the MPEG-1 digital video standard
with IPB frames outperforms CinePak.
The block DCT/Motion Compensation based codecs seem to perform 1.5 - 2.0
times better than CinePak. VDOWave, a wavelet based codec, seems somewhat
better than this.
<A HREF="#Top">Return to Top</A>
<A NAME="FourCC">
<H2>Microsoft Four Character Codes (FOURCC)</H2>
</A>
A Four Character Code or FOURCC is a four byte code defined by
Microsoft as part of Video for Windows to identify various types
of video data.
Microsoft defined FOURCC's to uniquely identify pixel layouts and
video compressor types in Video for Windows. For example, the FOURCC
'CVID' identifies the CinePak (formerly Compact Video) video
compressor. AVI files contain the FOURCC for the video compressor in the
video stream header.
In addition to codecs, Four Character Codes identify the pixel layouts
used in uncompressed images and video. For example, codes such as
'YUY2' identify layouts of pixels in YUV space (as opposed to RGB).
These codes are used in interfacing with graphics cards. For example,
the S3 ViRGE/VX chip supports the YUY2 pixel layout. YUY2 is popular
because it refers to the 4:2:2 format used in CCIR-601 (D1) digital
video.
Video for Windows, Display Control Interface (DCI), and Direct Draw
all use FOURCC's.
Incomplete List of Four Character Codes for Video for Windows Codecs
DIB Full Frames (Uncompressed)
MSVC or CRAM Microsoft Video 1
MRLE Microsoft Run Length Encoding
IV31 Indeo 3.1/3.2
IV32 Indeo 3.1/3.2
CVID CinePak (Radius)
ULTI Ultimotion (IBM)
MJPG Motion JPEG (Microsoft, Paradigm Matrix, video capture companies)
IJPG Intergraph JPEG
CYUV Creative YUV
YVU9 Intel Indeo Raw YUV9
XMPG Editable (I frames only) MPEG (Xing)
MPGI Editable MPEG (Sigma Designs)
IV41 Indeo Interactive (Indeo 4.1 from Intel)
UCOD ClearVideo (Iterated Systems)
VDOW VDOWave (VDONet)
SFMC Surface Fitting Method (CrystalNet)
QPEG Q-Team Dr.Knabe 's QPEG video compressor
H261 H.261
M261 Microsoft H.261
VIVO Vivo H.263
M263 Microsoft H.263
MPG4 Microsoft MPEG-4
Extensive information on Microsoft's Four Character Codes (FOURCC) may be
found at
<A HREF="http://www.flash.net/~dawilson/fourcc">Dave Wilson's The Almost Definitive FOURCC
Definition List</A>
<A HREF="#Top">Return to Top</A>
<A NAME="ALGO">
<H2>Video Compression Technologies</H2>
</A>
There are several underlying technologies used by different Video for
Windows Codecs. For example, Indeo 3.2 and Cinepak both use Vector
Quantization. The international standards MPEG-1, MPEG-2, MPEG-4,
H.261, and H.263 all use a combination of the block Discrete Cosine
Transform (DCT) and motion estimation/compensation. Several of the
New Wave codecs use wavelet transform based image compression (the
Discrete Wavelet Transform or DWT). Other technologies include
Fractal Image Compression, represented by Iterated Systems.
Some general comments on image and video compression:
(1) Image compression may be lossless where no information is
lost during the compression process. The image produced by
the decompression (also known as decoding) process is identical
bit by bit with the original image. The widely used GIF format
is a lossless image and video (GIF89a or animated GIF) compression
format.
LOSSLESS COMPRESSION
(2) Image compression may be lossy where information is lost during
the compression process. These schemes exploit limitations of the
human visual system. Some errors are undetectable by the human
eye. Even though two images are different at the bit by bit level, the
human viewer cannot distinguish them. Some errors are detectable by
the human eye but acceptable. Some errors are detectable and very
annoying. The widely used JPEG image compression standard is a lossy
compression scheme.
LOSSY COMPRESSION
(3) Within lossy image and video compression, a compression scheme may
be perceptually lossless, in which case the human viewer cannot
distinguish between the original image or video and the decompressed
compressed image or video which has errors introduced by the lossy
compression. Most lossy image and video compression have some sort of
quality factor or factors. If the quality is good enough, then the image will
be perceptually lossless.
PERCEPTUALLY LOSSLESS COMPRESSION
(3) JPEG's and MPEG's and other lossy compression of images and video
are often compressed beyond the point of perceptual losslessness, but
the compressed images and video are still acceptable to the human viewer.
If the compression and decompression degrades the image in a way that
is very similar or identical to the natural degradation of images that might
occur in the world then the human visual system will not object greatly.
Loss of fine detail in an image is often acceptable because humans
perceive objects in the natural world with widely varying levels of
detail depending on how close the human viewer is to the object and
whether the human viewer is looking directly at the object or not.
The human viewer sees less detail if an object is further away.
When a human viewer looks directly at an object, the viewer uses a
small very high resolution part of the retina. If an object is to one
side of the direction of view, the viewer is using lower resolution
parts of the retina. Human beings are also used to certain natural
forms of degradation such as rain, snow, and fog.
Note that in all these natural viewing situation, the human viewer
will still perceive sharp edges and lines in an image regardless of
the level of detail. The human viewer will usually perceive the
objects as the same object despite the variations in level of detail.
A horse is a horse is a horse.
NATURALLY LOSSY COMPRESSION
(4) Sufficiently low quality lossy compression will introduce visual
artifacts that are highly annoying to the human viewer. An example
is the blocking artifacts visible in highly compressed MPEG video and
other block Discrete Cosine Transform based image compression codecs.
At some point the lossy compression will introduce artifacts that are
very unnatural and are perceived as new objects in the scene or spurious
lines within the image.
The human visual system is very sensitive to lines or edges. One of its
main functions appears to be to detect and characterize physical
objects such as other people, potential threats such as predators, food
plants, and other things. Objects in the visual system are dilineated by
edges. Anything such as a codec algorithm that destroys or creates an
edge in an image is noticed, particularly if the edge is interpreted as
the border of an object by the human visual and cognitive system.
UNNATURAL LOSSY COMPRESSION
All of the widely used video codecs are lossy compression algorithms.
At sufficiently high compression most of them will have problems with the
edges in the image. Vector quantization, block Discrete Cosine Transform,
and wavelet based image and video compression inherently do not
mathematically represent the intuitive notion of an edge or line.
THE POINT: In using and selecting video codecs, the author of an
AVI file (or a compressed digital video in general) needs to achieve
NATURALLY LOSSY COMPRESSION or better. Once the compression
introduces noticable AND unnatural artifacts, the video is of very
limited use even in cases where some features and objects are
recognizable.
A basic description of video compression technologies follows. I have
tried to avoid the dense mathematics found in most of the technical
video and image compression literature.
<A HREF="#Top">Return to Top</A>
<A NAME="RLE">
<H3>Run Length Encoding</H3>
</A>
VIDEO CODECS THAT USE RUN LENGTH ENCODING
Microsoft RLE (MRLE)
Run length encoding is also used to encode the DCT coefficients in
the block Discrete Cosine Transform (DCT) based international
standards MPEG, H.261, H.263, and JPEG.
STRENGTHS AND WEAKNESSES
1. Works for bilevel or 8 bit graphic images such as cel animation.
2. Not good for high resolution natural images.
OVERVIEW
Run length encoding encodes a sequence or run of consecutive
pixels of the same color (such as black or white) as a single
codeword.
For example, the sequence of pixels
77 77 77 77 77 77 77
could be coded as
7 77 (for seven 77's)
Run length encoding can work well for bi-level images (e.g.
black and white text or graphics) and for 8 bit images, particularly
images such as cel animations which contain many runs of the same
color.
Run length encoding does not work well for 24 bit natural images
in general. Runs of the same color are not that common.
<A HREF="#Top">Return to Top</A>
<A NAME="VQ">
<H3>Vector Quantization</H3>
</A>
VIDEO CODECS THAT USE VECTOR QUANTIZATION
Indeo 3.2
Cinepak
Indeo 3.2 and Cinepak both use vector quantization. As with most
digital video, Indeo and Cinepak work in the YUV color space (not RGB
for example).
STRENGTHS AND WEAKNESSES
1. The encoding process is computationally intensive. Still cannot
be done in real time without dedicated hardware.
2. The decoding process is very fast.
3. Blocking artifacts at high compression.
4. Generally, block Discrete Cosine Transform and Discrete Wavelet
Transform based image compression methods can achieve higher compression.
OVERVIEW
The basic idea of Vector Quantization based image compression is to
divide the image up into blocks (4x4 pixels in YUV space for Indeo and
Cinepak). Typically, some blocks (hopefully many) are similar to
other blocks although usually not identical. The encoder identifies a
class of similar blocks and replaced these with a "generic" block
representative of the class of similar blocks. The encoder encodes a
lookup table that maps short binary codes to the "generic" blocks.
Typically, the shortest binary codes represent the most common classes
of blocks in the image.
The Vector Quantization (VQ) decoder uses the lookup table to assemble
an approximate image comprised of the "generic" blocks in the lookup
table.
Note that this is inherently a lossy compression process because the
actual blocks are replaced with a generic block that is a "good
enough" approximation to the original block.
The encoding process is slow and computationally intensive because the
encoder must accumulate statistics on the frequency of blocks and
calculate the similarity of blocks in order to build the lookup table.
The decoding process is very quick because it is lookup table based.
In Vector Quantization, the lookup table may be called a codebook.
The binary codes that index into the table may be called codewords.
Higher compression is achieved by making the lookup table smaller,
fewer classes of similar blocks in the image. The quality of the
reproduced approximate image degrades as the lookup table becomes
smaller.
Vector Quantization is prone to blocking artifacts as compression is increased.
Vector Quantization is an entire sub-field in signal and image
processing. It goes well beyond the brief description above and
is applied to other uses than video compression.
The standard reference book on Vector Quantization is:
Vector Quantization and Signal Compression
A. Gersho and R. Gray
Boston, MA : Kluwer, 1992
Like many image and signal processing books, this is heavy on
abstract math.
<H4>A Simple Example</H4>
Consider the following 4 by 4 blocks of pixels. Each pixel has a value
in the range of 0-255. This is a grayscale image for simplicity.
(Block 1)
128 128 128 128
128 128 128 128
128 128 128 128
128 128 128 128
(Block 2)
128 127 128 128
128 128 128 128
128 128 127 128
128 128 128 128
(Block 3)
128 127 126 128
128 128 128 128
127 128 128 128
128 128 128 128
In practice, the blocks will look the same to a human viewer.
The second and third blocks could be safely replaced by the first
block. By itself, this does not compress the image. However, the
replacement block (Block 1) could be represented by a short index into
a lookup table of 4x4 blocks. For example, the index, in this case,
could be 1.
Lookup Table[1] = 128 128 128 128
128 128 128 128
128 128 128 128
128 128 128 128
The original image could be converted into a lookup table and a series
of indexes into the lookup table, achieving substantial compression.
In video, the same lookup table could be used for many frames, not just
a single frame.
<A HREF="#Top">Return to Top</A>
<A NAME="DCT">
<H3>Discrete Cosine Transform</H3>
</A>
VIDEO CODECS THAT USE DCT
Motion JPEG
Editable MPEG
MPEG-1
MPEG-2
MPEG-4
H.261
H.263
H.263+
STRENGTHS AND WEAKNESSES
1. Blocking artifacts at high compression.
2. Ringing at sharp edges. Occasional blurring at sharp edges.
3. Computationally intensive. Only recently has it been possible
to implement in real time on general purpose CPU's as opposed to
specialized chips.
OVERVIEW
The Discrete Cosine Transform (DCT) is a widely used transform in
image compression. The JPEG still image compression standard, the
H.261 (p*64) video-conferencing standard, the H.263 video-conferencing
standard and the MPEG (MPEG-1, MPEG-2, and MPEG-4) digital video
standards use the DCT. In these standards, a two-dimensional (2D) DCT
is applied to 8 by 8 blocks of pixels in the image that is compressed.
The 64 (8x8 = 64) coefficients produced by the DCT are then quantized
to provide the actual compression. In typical images, most DCT
coefficients from a DCT on an 8 by 8 block of pixels are small and
become zero after quantization. This property of the DCT on real world
images is critical to the compression schemes.
In addition, the human eyes are less sensitive to the high frequency
components of the image represented by the higher DCT coefficients.
A large quantization factor can and usually is applied to these
higher frequency components. The de-facto standard quantization
matrix (a matrix of 64 quantization factors, one for each of the 64
DCT coefficients) in the JPEG standard has higher quantization factors
for higher frequency DCT coefficients.
The quantized DCT coefficients are then run-length encoded as variable
length codes that indicate some number of zero coefficients followed by
a non-zero coefficient. For example, a run-length code might indicate
4 zero coefficients followed by a non-zero coefficient of level 2. Short
variable length codes (e.g. 0110) are used for common combinations of
runs of zero and levels of the non-zero coefficient. Longer variable
length codes (e.g. 0000001101) are used for less common combinations of
runs of zero and levels of the non-zero coefficient. In this way,
substantial compression of the image is possible.
The Discrete Cosine Transform itself is best explained as a 1 dimensional
(1D) DCT first. The 2D DCT is equivalent to performing a 1D DCT on each
row of a block of pixels followed by a 1D DCT on each column of the block of
pixels produced by the 1D DCT's on the rows.
The one dimensional Discrete Cosine Transform is applied to a block of
N samples (pixels in an image or sound pressure samples in an audio file).
The Discrete Cosine Transform is an NxN matrix whose rows are sampled
cosine functions:
DCT(m,n) = sqrt( (1 - delta(m,1) ) / N )
* cos( (pi/N) * (n - 1/2) * (m-1) )
where
DCT(m,n) is the 1D DCT Matrix
m,n = 1,...,N
pi = 3.14159267...
N = number of samples in block
delta(m,1) = 1 if m is 1
0 otherwise
cos(x) = cosine of x (radians)
* = multiply
Naively, performing a DCT on a block of N samples would require
N*N multiplies and adds. However, the DCT matrix has
a recursive structure that allows implementation with order
N log(N) multiplies and adds (many fewer). This makes the DCT practical
for implementation on current CPUs and DSPs.
<A HREF="#Top">Return to Top</A>
<A NAME="FD">
<H3>Frame Differencing</H3>
</A>
VIDEO CODECS THAT USE FRAME DIFFERENCING
CinePak
STRENGTHS AND WEAKNESSES
1. Generally can achieve better compression than independent encoding
of individual frames.
2. Errors accumulate in successsive frames after a key frame, eventually
requiring another key frame. (see below)
OVERVIEW
Frame Differencing exploits the fact that little changes from frame to
frame in many video or animation sequences. For example, a video
might show a ball flying through the air in front of a static
background. Most of the image, the background, does not change from
frame to subsequent frame in the scene.
In frame differencing, the still image compression method such as
vector quantization is applied to the difference between the frame and
the decoded previous frame. Often, most of the difference is zero or
small values which can be heavily compressed.
Most often, frame differencing uses "key frames" which are frames
compressed without reference to a previous frame. This limits accumulated
errors and enables seeking within the video stream.
In the widely used CinePak, a key frame is often set every 15 frames.
CinePak movies usually use frame differencing combined with vector
quantization.
If the compression scheme is lossy (vector quantization is lossy), errors
will accumulate from frame to frame. Eventually these errors will become
visible. This necessitates key frames!
<A HREF="#Top">Return to Top</A>
<A NAME="Motion">
<H3>Motion Compensation</H3>
</A>
VIDEO CODECS THAT USE MOTION COMPENSATION
ClearVideo (RealVideo) Fractal Video Codec from Iterated Systems
VDOWave from VDONet
VxTreme
MPEG-1,2, and 4
H.261
H.263
H.263+
STRENGTHS AND WEAKNESSES
1. Motion compensation achieves high video compression in video
generally superior to frame differencing.
2. The encoding phase of motion compensation (known as motion
estimation) is computationally intensive. MPEG-1 with IP and
B frames cannot be encoded in real time without dedicated
hardware, a silicon implementation of motion estimation.
3. The motion compensation scheme used in the international
standards MPEG, H.261, and H.263 works best for scenes with
limited motion such as talking heads. In general, video with
heavy motion such as sports video is hard to compress with
motion compensation.
OVERVIEW
Motion Compensation codes for motion within a scene such as a ball
moving across a background. The block Discrete Cosine Transform (DCT)
based international video standards MPEG-1, MPEG-2, MPEG-4, H.261, and
H.263 use motion compensation. Iterated Systems ClearVideo (Real
Video) fractal Video Codec, VDOWave from VDONet, and VxTreme's video
codec use forms of motion compensation.
Motion Compensation refers to a number of ideas and algorithms. The
motion compensation method used in MPEG and related international
standards (H.261 and H.263) is described below. This motion
compensation works for translational motion only. This is suited for
objects moving across a background or panning of the camera. It does
not work well for spinning objects, resizing objects, or camera zooms.
Alternative forms of motion compensation exist which handle
rotational, scaling, skewing, and other kinds of motion in a scene.
Recognizing objects such as a flying ball in a scene is an unsolved
problem in image processing and understanding. A way to exploit
the motion of the ball to achieve image compression is to partition the
image into blocks (16x16 pixels in MPEG-1). Code a "motion vector" for
each block which points to the 16x16 pixel block in a previous (or
future) frame that most closely approximates the block being coded.
In many cases this reference block will be the same block (no motion).
In some cases this reference block will be a different block (motion).
The encoder need not recognize the presence of a ball or other object, only
compare blocks of pixels in the decoded and reference frames.
COMPRESSION IS ACHIEVED BY SENDING OR STORING ONLY THE MOTION VECTOR
(AND A POSSIBLE SMALL ERROR) INSTEAD OF THE PIXEL VALUES FOR THE
ENTIRE BLOCK.
Note that the reference block can be anywhere in the image. The coded
or "predicted" blocks must form a partition or tiling of the image (frame)
being decoded. A reference block can be any 16x16 pixel block in
the reference frame (image) that most closely approximates the coded
or "predicted" block. The reference frame must be decoded prior to
the current frame being decoded.
However, the reference frame need not be PRESENTED before the current
frame being decoded. In fact, the reference frame could be a future
frame!! MPEG allows for this through so-called B (bi-directionally
predicted) frames.
In the example of the ball in front of a static background, no motion
occurs in most of the blocks. For these cases, the motion vectors
are zero. Motion compensation for these blocks is then equivalent
to frame differencing, where the difference between the block and the
same block in a previous (or future) frame is coded.
For the block or blocks containing the moving ball, the motion vectors
will be non-zero, pointing to a block in a previous (or future) frame
that contains the ball. The displaced block is subtracted from
the current block. In general, there will be some left over non-zero
values, which are then coded using the still image compression scheme
such as Vector Quantization, the Block Discrete Cosine Transform, or
the Discrete Wavelet Transform.
MPEG style motion compensation does not require recognition of the
ball. An encoder simply compares the block being coded with displaced
blocks in the reference frame (a previous or future frame). The
comparison can use mean squared error or some other metric of
differences between images. The encoder selects the displaced block
with the smallest mean squared error difference! At no point has the
encoder recognized an object in the image.
In MPEG, the motion vectors are encoded as variable length codes for
greater compression.
The encoding process is called Motion Estimation. This finds the
motion vector (or vectors) for each block.
The decoding process is called Motion Compensation.
Motion Compensation achieves greater compression than simple Frame
Differencing.
ILLUSTRATIVE EXAMPLE:
Predicted Region Reference Region
(the current frame being decoded) (a previously decoded frame)
_________ _________
| | | | | |
| * | | | | * | (moving ball)
| 4 | -4 | | | |
| | | | | |
_________ _________
| | | | | |
| 0 | 0 | | | | (no change)
| | | | | |
| | | | | |
_________ _________
The asterisk (*) represents a ball flying across the scene from right
to left.
Four blocks with associated motion vectors (4, -4, 0, and 0). The
upper left block looks like the upper right block in the reference
region (where the ball was). The upper right block looks like the
upper left region in the reference region. The lower left and
lower right blocks were unchanged. In this simple example, the
vertical displacement is zero and is ignored.
In this simple example, the region can be decoded using the
motion vectors alone. In more general cases, there is an
error between the frame predicted using motion vectors alone
and the actual frame. This error is coded using a still image
compression scheme such as the block Discrete Cosine Transform (DCT).
In this simple example, the previously decoded frame is also
previous in the presentation order. The previously decoded or
reference frame precedes the current frame in time. In general, keep
in mind the distinction between decode order and presentation order.
The reference frame could be a future frame.
<A HREF="#Top">Return to Top</A>
<A NAME="ACM">
<H3>Audio Codecs</H3>
</A>
The sound tracks in an AVI file are Microsoft Waveform Audio (WAV) files.
The Waveform Audio files can be uncompressed PCM (Pulse Code Modulated) audio
or compressed with many different audio codecs (compressor/decompressors).
The windows multimedia system uses the terms WAVE or waveform audio to
refer to audio that consists of digitally sampled sound. In contrast
to notes of music as in MIDI, another type of audio incorporated in
the Windows multimedia system.
The WAV, WAVE, or waveform audio system (different authors use all
three to refer to the Microsoft Windows audio system) predates
Video for Windows. Video for Windows was wrapped around
WAVE. Various compromises were made to insure backward compatibility
with existing WAVE applications, drivers, and files. Keep this
in mind as there are various differences between the audio
system and the video system described in other sections of this
overview.
To play a waveform audio (WAV) file or the sound track of an AVI
compressed with a codec, the codec must be installed in the Audio
Compression Manager under Windows. Windows PCM files (uncompressed)
are always supported. The Audio Compression Manager (ACM) is the
software system in Windows that manages waveform audio codecs and
filters.
Different audio codecs are identified with different waveform audio
tags, 32 bit numbers. Wave audio format tags are registered with
Microsoft.
The following list of registered wave audio formats if from the
mmreg.h file in the Win32 SDK. mmreg.h is the Registered Multimedia
Information Public Header File
/* WAVE form wFormatTag IDs */
#define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */
#define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
#define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */
#define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
#define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
#define WAVE_FORMAT_OKI_ADPCM 0x0010 /* OKI */
#define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
#define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM) /* Intel Corporation */
#define WAVE_FORMAT_MEDIASPACE_ADPCM 0x0012 /* Videologic */
#define WAVE_FORMAT_SIERRA_ADPCM 0x0013 /* Sierra Semiconductor Corp */
#define WAVE_FORMAT_G723_ADPCM 0x0014 /* Antex Electronics Corporation */
#define WAVE_FORMAT_DIGISTD 0x0015 /* DSP Solutions, Inc. */
#define WAVE_FORMAT_DIGIFIX 0x0016 /* DSP Solutions, Inc. */
#define WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017 /* Dialogic Corporation */
#define WAVE_FORMAT_YAMAHA_ADPCM 0x0020 /* Yamaha Corporation of America */
#define WAVE_FORMAT_SONARC 0x0021 /* Speech Compression */
#define WAVE_FORMAT_DSPGROUP_TRUESPEECH 0x0022 /* DSP Group, Inc */
#define WAVE_FORMAT_ECHOSC1 0x0023 /* Echo Speech Corporation */
#define WAVE_FORMAT_AUDIOFILE_AF36 0x0024 /* */
#define WAVE_FORMAT_APTX 0x0025 /* Audio Processing Technology */
#define WAVE_FORMAT_AUDIOFILE_AF10 0x0026 /* */
#define WAVE_FORMAT_DOLBY_AC2 0x0030 /* Dolby Laboratories */
#define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */
#define WAVE_FORMAT_ANTEX_ADPCME 0x0033 /* Antex Electronics Corporation */
#define WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 /* Control Resources Limited */
#define WAVE_FORMAT_DIGIREAL 0x0035 /* DSP Solutions, Inc. */
#define WAVE_FORMAT_DIGIADPCM 0x0036 /* DSP Solutions, Inc. */
#define WAVE_FORMAT_CONTROL_RES_CR10 0x0037 /* Control Resources Limited */
#define WAVE_FORMAT_NMS_VBXADPCM 0x0038 /* Natural MicroSystems */
#define WAVE_FORMAT_CS_IMAADPCM 0x0039 /* Crystal Semiconductor IMA ADPCM */
#define WAVE_FORMAT_G721_ADPCM 0x0040 /* Antex Electronics Corporation */
#define WAVE_FORMAT_MPEG 0x0050 /* Microsoft Corporation */
#define WAVE_FORMAT_CREATIVE_ADPCM 0x0200 /* Creative Labs, Inc */
#define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 /* Creative Labs, Inc */
#define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203 /* Creative Labs, Inc */
#define WAVE_FORMAT_FM_TOWNS_SND 0x0300 /* Fujitsu Corp. */
#define WAVE_FORMAT_OLIGSM 0x1000 /* Ing C. Olivetti & C., S.p.A. */
#define WAVE_FORMAT_OLIADPCM 0x1001 /* Ing C. Olivetti & C., S.p.A. */
#define WAVE_FORMAT_OLICELP 0x1002 /* Ing C. Olivetti & C., S.p.A. */
#define WAVE_FORMAT_OLISBC 0x1003 /* Ing C. Olivetti & C., S.p.A. */
#define WAVE_FORMAT_OLIOPR 0x1004 /* Ing C. Olivetti & C., S.p.A. */
//
// the WAVE_FORMAT_DEVELOPMENT format tag can be used during the
// development phase of a new wave format. Before shipping, you MUST
// acquire an official format tag from Microsoft.
//
#define WAVE_FORMAT_DEVELOPMENT (0xFFFF)
<A HREF="#Top">Return to Top</A>
<A NAME="ACMInstalled">
<H3>How to determine which Audio Codecs are Installed</H3>
</A>
View the SYSTEM.INI file. In Windows 95, 32 bit Audio Codecs are
listed in the [drivers32] section.
[drivers32]
msacm.lhacm=lhacm.acm
msacm.l3codec=l3codecb.acm
msacm.msg723=msg723.acm
msacm.msnaudio=msnaudio.acm
The string msacm stands for Microsoft Audio Compression Manager (ACM).
This is the system software component that manages audio codecs (and
other audio components) in 16 bit Windows and in Win32. The different
codecs are identified by a string of arbitrary length such as msnaudio
for Microsoft Network Audio. Note that this differs from Video for
Windows where everything is a Four Character Code.
The audio codecs in the example above were installed in Windows 95 by
Microsoft's NetShow streaming audio/video product.
The Audio Compression Manager (ACM) is in the process of being displaced by
ActiveMovie.
In Windows 95,
(1) Open the Control Panel
(2) Double Click on the Multimedia Icon
(3) Select the Advanced tab
(4) Under the Multimedia Drivers icon, double click on the Audio
Compression Codecs icon to see a list of installed audio codecs. This
information is the same as the information stored in the SYSTEM.INI
file (see above).
<A HREF="#Top">Return to Top</A>
<A NAME="ActiveMovie">
<H2>ActiveMovie</H2>
</A>
Active Movie is a new multimedia architecture for Windows 95 and
Windows NT (4.0 and after). ActiveMovie includes support for
playing AVI, Quicktime (.MOV), and MPEG files. ActiveMovie is
apparently intended to supersede Video for Windows.
ActiveMovie 1.0 ships with the OEM Service Release 2 (OSR2) of Windows 95.
It did not ship with prior releases of Windows 95 but was available
separately through the ActiveMovie SDK.
ActiveMovie 1.0 is also bundled with Microsoft's Internet Explorer for
Windows 95 and NT 4.0 Internet Explorer can be downloaded from the
Microsoft web site at:
<A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>
Active Movie 1.0 can be downloaded by itself from the Microsoft Internet
Explorer site. (6/6/97)
ActiveMovie provides at least three different programming
interfaces:
- The ActiveMovie ActiveX Control
- ActiveMovie Component Object Model (COM) interfaces
- The OM-1 MPEG MCI (Media Control Interface) command set
Amongst other things, the ActiveMovie ActiveX Control can be embedded
in HTML Web pages and programmed via VBScript or JavaScript. It can also
be programmed using Visual C++ or Visual Basic as part of applications.
The ActiveMovie COM interaces can be accessed through Visual C++ or
Visual Basic.
ActiveMovie supports a subset of the Media Control Interface (MCI)
commands familiar to Video for Windows programmers. These commands can
be accessed through the mciSendCommand(...) and mciSendString(...)
functions in C/C++.
ActiveMovie 1.0 does not provide video capture. Windows 95 with
ActiveMovie 1.0 continues to use the Video for Windows video capture system
and drivers.
ActiveMovie 2.0 will provide a new, alternative mechanism for
video capture. According to information distributed by Microsoft
at the WDM Device Driver Conference in April, 1997, ActiveMovie 2.0
will use the WDM Stream Class under Memphis (formerly Windows 97) and
Windows NT 5.0 to implement video capture. This is subject to possible
change since neither Memphis nor NT 5.0 has been released (7/27/97).
Extensive information on ActiveX and ActiveMovie is available at the
Microsoft Web site.
ActiveMovie 1.0 SDK Documentation at (6/28/97):
<A
HREF="http://www.microsoft.com/devonly/tech/amov1doc/">http://www.microsoft.com/devonly/tech/amo
v1doc/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="GUID">
GUID's and AVI
</A>
GUID stands for Global Unique IDentifier.
In Microsoft's Component Object Model (COM) morass, an object oriented
programming model that incorporates MFC (Microsoft Foundation
Classes), OLE (Object Linking Embedding), ActiveX, ActiveMovie and
everything else Microsoft is hawking lately, a GUID is a 16 byte or
128 bit number used to uniquely identify objects, data formats,
everything.
Within ActiveMovie, there are GUID's for video formats, corresponding
to the FOURCC's or Four Character Codes used in Video for Windows.
These are specified in the file uuids.h in the Active Movie Software
Developer Kit (SDK). ActiveMovie needs to pass around GUID's that
correspond to the FOURCC for the video in an AVI file.
With proper programming, this should be hidden from end users but
ActiveMovie programmers need to know about GUID's.
<A HREF="#Top">Return to Top</A>
<A NAME="DirectShow">
<H2>DirectShow</H2>
</A>
DirectShow is Microsoft's new name for ActiveMovie 2.0 Microsoft
has shifted to marketing ActiveMovie as an integral part of
DirectX.
Apparently DirectShow (ActiveMovie 2.0) will be released to the general
public as part of Direct X 5.0.
<A HREF="#Top">Return to Top</A>
<A NAME="DirectDraw">
<H2>DirectDraw</H2>
</A>
DirectDraw, one of the components of DirectX, is a new API that is
part of Windows 95. DirectDraw allows programs to directly access
video memory and other hardware features in video display cards. Direct
Draw also defines new device drivers for graphic/video display adapters.
In the Windows 3.1 Graphic Device Interface (GDI), an application
program never writes directly to the memory in a display card. It
writes to a buffer in main memory within Windows. GDI invokes a GDI
video device driver and copies the image from main memory to the video
memory of the video card. This multiple copying of the image
inevitably slows down the display.
The DirectDraw API provides a mechanism allowing appliation programs
to write directly into the video card's memory. It also provides a
mechanism to access various special features in video cards such as
color space conversion, hardware scaling, z-buffering, alpha blending,
and so forth.
Video card manufacturers must provide a DirectDraw driver for DirectDraw
to work with their card.
Microsoft's ActiveMovie uses DirectDraw to achieve faster playback of
AVI, Quicktime, and MPEG files.
There is extensive information on the DirectDraw and DirectX API's at the
Microsoft Web site.
The DirectX 3 SDK can be downloaded from the Microsoft Developer
Online Web site (6/28/97):
<A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>
Select Microsoft SDKs from the Technical Information section, or point
your browser at:
<A HREF="http://www.microsoft.com/msdn/sdk/">http://www.microsoft.com/msdn/sdk/</A>
Versions of DirectX
- DirectX 1
- DirectX 2
- DirectX 3
- DirectX 3A (latest as of 2/18/97)
- DirectX 5.0 (in development?)
- DirectX 6.0 (mentioned occasionally by Microsoft)
<A HREF="#Top">Return to Top</A>
<A NAME="GDI">
<H2>GDI Device Drivers</H2>
</A>
In Windows 3.1, and to a lesser extent Windows 95, the Graphic Device
Interface or GDI is the system that handles graphic display, including
putting bitmaps on the display monitor. Amongst other things, GDI
defines a set of GDI functions that application programs call such as
BitBlt(...) to display graphics on the screen. GDI also controls
printers and other graphic output devices.
Windows NT also provides a GDI system, but the underlying system is
different. Windows 3.1 GDI drivers won't work under NT. Application
programs written using the GDI API will often work under NT.
GDI is device independent. To achieve this, GDI uses GDI device
drivers loaded dynamically as needed.
The most commonly used GDI device driver is the DISPLAY device (for
display monitors). In Windows 3.1, this is specified by lines such
as:
display.drv=SUPERVGA.DRV
in the SYSTEM.INI file. SUPERVGA.DRV is a generic super vga graphic
display adapter driver shipped with Windows 3.1 SUPERVGA.DRV is a GDI
Device Driver
The printer driver is another common GDI device driver.
In Windows 3.1 or Windows 95 without DirectDraw, GDI handles display
of video frames on the display monitor.
GDI defines a set of standard functions exported by GDI Device
Drivers. A GDI Device Driver can also report that it does not support
a particular function.
Standard Functions for GDI Device Driver
Entry Name Description
01 BitBlt Transfer bits from src (source) to dest (destination) rect (rectangle)
02 ColorInfo Converts between logical and physical colors.
.
.
.
30 BitmapBits Sets, retrieves, copies bitmap data.
Video card manufacturers write and provide GDI Device Drivers for video cards.
When Video for Windows plays an AVI file, Video for Windows usually
uses the Media Control Interface (MCI) driver for AVI files. The MCI
driver will call GDI to display each decoded frame of video and WAVE
to output the decoded audio to the sound card.
In Windows 95, ActiveMovie 1.0 has "renderers" which can invoke GDI or
DirectDraw depending on the situation to display the decoded video
frames. There are also audio renderers to output the decoded audio
from an AVI, QuickTime, or MPEG file.
<A HREF="#Top">Return to Top</A>
<A NAME="DHAL">
<H2>Direct Draw Hardware Abstraction Layer</H2>
</A>
DirectDraw is a replacement for GDI for Windows 95 and
Windows NT. See elsewhere in this overview for sections on
GDI and DirectDraw.
The Direct Draw Hardware Abstraction Layer (HAL) defines
Direct Draw device drivers for graphics/video display
adapters. Graphics and video card manufacturers
provide DirectDraw device drivers. For Direct Draw
to work it must have these device drivers.
ActiveMovie can invoke DirectDraw for video output under
Windows 95.
<A HREF="#Top">Return to Top</A>
<A NAME="VXD">
<H2>Virtual Device Drivers</H2>
</A>
In Windows 3.x and Windows 95, Virtual Device Drivers or VXD's
are usually the hardware device drivers. They run in a privileged
mode known as Ring Zero. Video display adapters and video
capture cards usually have an associated VXD written by the
card or chip manufacturer.
Device drivers for video display adapters are rarely a single VXD.
Often the Device Driver Interface (DDI) is implemented as a Dynamic
Link Library which does not run at Ring Zero. Only parts of the
device driver that need to run at Ring Zero are in the VXD.
A full video display device driver is often built of several
files, frequently (always??) including one or more VXDs.
VXD's are usually found in the \WINDOWS\SYSTEM directory.
VXD's will not work for hardware under Windows NT 3.51 or NT 4.0
NT has its own Windows NT Driver Model.
In "Memphis", formerly Windows 97, and NT 5.0, Microsoft is attempting
to provide a common driver model known as WDM or Win32 Driver Model so
that the same drivers can be used in both Memphis and NT.
<A HREF="#Top">Return to Top</A>
<A NAME="NTDM">
<H2>Windows NT Driver Model</H2>
Windows NT (3.51, 4.0) has its own system of hardware device
drivers. While NT can often run Windows 3.x and Windows 95
applications, NT cannot use Windows 3.x or Windows 95
device drivers.
For most people working with AVI, or video in general, the main
point to remember is that different drivers are needed for
NT than Windows 95 (or Windows 3.x). Most hardware manufacturers
provide both Windows 3.x, 95, and NT drivers.
TOOLS
Programmers will need the Windows NT DDK (Device Driver Kit)
to develop Windows NT drivers. This is available in a
subscription to Microsoft Developer Network (Professional).
<A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="WDM">
<H2>Win32 Driver Model (WDM)</H2>
</A>
The Win32 Driver Model (WDM) is a new device driver system for
Memphis (formerly Windows 97) and Windows NT 5.0 The notion is that
the same device drivers will work under both Memphis and NT 5.0
WDM is largely the Windows NT Driver Model used in NT 3.51 and 4.0
It is still under development. Video display card and video capture
card companies will presumably be providing WDM drivers for
Memphis and NT 5.0 in the future.
Memphis is supposed to be backward compatible so that
Windows 95 Device Drivers will still work under Memphis.
Similarly, NT 4.0 Device Drivers will still work under
NT 5.0 A WDM Device Driver will work under both Memphis and
NT 5.0.
<A HREF="#Top">Return to Top</A>
<A NAME="INF">
<H2>Setup Information or INF Files</H2>
</A>
When a video codec or hardware device driver is installed under
Windows 3.x, Windows 95, or Windows NT, Windows uses a special
file known as a Setup Information file. This is also known as
a Device Information file in the case of device drivers. These
files have the extension .INF and are also known as INF files.
When a user installs a codec or device driver through the Control
Panel, the user points the Windows system to a directory containing
an INF file and the various files, such as VxD's or DLLs, to be
installed.
A Setup Information, Device Information, or INF file contains
directives that tell Windows how to install the new software or
hardware. These include changes to the Windows Registry, names and
locations of files to install, and other things.
If you are providing a hardware or software product, you may need to
create an INF file to install your product, driver, etc.
End users are often unaware of the INF file. Indeed, its purpose is to
hide the complexity of installing hardware or software. But it is
good to be aware that these files exist and Windows needs them to
properly install many drivers, codecs, and so forth.
Where AVI is concerned, there are frequently INF files for video
codecs, video display adapters, and video capture cards.
<A HREF="#Top">Return to Top</A>
<A NAME="MMX">
<H2>MMX</H2>
</A>
MMX or Multimedia Extensions to the Pentium instruction set are
57 new instructions that accelerate some graphics, imaging, and
multimedia operations. Multimedia often involves small data types
such as 8 bit or 16 bit pixels that can be processed in parallel.
For example, in principle, a 32 bit instruction could operate of
four 8 bit pixels in parallel.
A simple example would be adding four 8 bit pixels in parallel.
The MMX instructions add clipping for underflow and overflow
situations.
255 0 0 255 Normal addition of four 8 bit pixels backed in 32 bits
+ 0 0 0 255
-------------
255 0 1 0
255 0 0 255 MMX style clipping of overflow
+ 0 0 0 255
--------------
255 0 0 255
Intel developed the MMX instructions and added them to recent
versions of the Pentium chip known as the P55C or Pentium with MMX.
The MMX instructions were also added to the Pentium Pro. The Pentium
Pro with MMX was code named Klamath, but called the Pentium II when
actually shipped in 1997.
MMX can accelerate various graphics and multimedia operations. It can
accelerate video codecs. In particular, the block Discrete Cosine
Transform used in JPEG, Motion JPEG, H.261, H.263, H.263+, MPEG-4,
MPEG-1, and MPEG-2 can be accelerated using MMX instructions.
Initially compilers have not supported generation of MMX instructions, so
critical portions of the multimedia algorithms must be hand-coded in
Pentium assembler using the MMX instructions.
An MMX version of a codec may be able to encode and decode an AVI
file (for example) faster on a PC with MMX.
DOCUMENTATION ON MMX
Further information on MMX is available at the Intel Web site for
developers:
<A HREF="http://developer.intel.com/sites/developer">http://developer.intel.com/sites/developer</A>
Click on the Literature Center link, then select "Pentium Processor
with MMX" from the pull down list of products.
This information is dated August 1, 1997. The Intel Web site changes
from time to time.
In addition to various on-line documentation at the Web site, Intel
has some manuals on MMX:
Intel Architecture MMX Technology Developers Manual (Order No. 243013)
Intel Architecture MMX Technology Programmer's Reference Manual
(Order No. 243007)
TOOLS FOR WORKING WITH MMX
Intel provides an MMX Technology Macro Package for use with
the Microsoft Macro Assembler (MASM). This can be downloaded from:
<A HREF="http://developer.intel.com/design/perftool/mmx1mac/">http://developer.intel.com/design/perftool/mmx1mac/</A>
Intel markets an Intel C/C++ compiler plug-in for Microsoft
Visual C/C++ 4.x/5.0. This plug-in includes "special
compiler intrinsics" to support MMX. These allow a programmer
to use the call syntax of C functions instead of manually
coding in assembly language.
Example of an "instrinsic"
__m64 _m_pmaddwd(__m64 m1, __m64 m2)
<A HREF="http://developer.intel.com/design/perftool/icl24/">http://developer.intel.com/design/perftool/icl24/</A>
The Intel C/C++ compiler plug-in is available on the VTune
CD-ROM. VTune is discussed below.
Intel markets a product called VTune for profiling programs
on the Intel architecture at the machine instruction level.
VTune includes support for the MMX instructions and has been
used to profile and optimize MMX code. The VTune CD-ROM
includes a number of other Intel freebies and products such as
the Intel C/C++ compiler plug-in that may be useful developing
MMX software.
<A HREF="http://developer.intel.com/design/perftool/vtune/">http://developer.intel.com/design/perftool/vtune/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="ActiveX">
<H2>ActiveX</H2>
</A>
NOTE: ActiveX is NOT ActiveMovie. There is an ActiveMovie ActiveX
control, but ActiveX is far more than this.
ActiveX is a stripped down version of OLE (Object Linking and
Embedding) targetted for the World Wide Web. An ActiveX component or
control is a software component written in Visual Basic, Visual C++, or
Java that conforms to the ActiveX API. This API is a variant of
OLE, designed to create small objects that can be dowloaded over the
Internet.
An ActiveX object or control may reside on a Web page to be downloaded
and run when Microsoft's Internet Explorer views the page. An ActiveX
control can be the ActiveMovie ActiveX control which plays AVI and other
video formats supported by ActiveMovie. An ActiveX control can be an
entertaining animation, a game like tic tac toe, anything. In this
sense, ActiveX objects are similar to Java applets.
Unlike Java applets, once an ActiveX control has been downloaded once
it remains on the downloading machine and can be used again without
being dowloaded again.
Also unlike Java, ActiveX controls are tied to a particular
architecture, Windows 95 or Windows NT. It is not clear how much
support Microsoft will give for ActiveX on non-Windows platforms.
Java applets are compiled to a Java bytecode that will run on any
platform with a Java virtual machine implemented. Java applets will
run on Windows 3.1, Windows 95, Windows NT, PowerMacintosh, Linux,
Sun, and various other Unix platforms.
There is extensive information on ActiveX at the Microsoft Web site.
The ActiveX SDKs can be downloaded from the Microsoft Developer Online
Web Site (6/28/97):
<A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>
Select Microsoft SDKs from the Technical Information section or point your
browser at:
<A HREF="http://www.microsoft.com/msdn/sdk/">http://www.microsoft.com/msdn/sdk/</A>
Netscape Fans:
ScriptActive is a Netscape Plug-In that adds support for ActiveX to
Netscape.
<A HREF="http://www.ncompasslabs.com/">ScriptActive Web Site</A>
<A HREF="#Top">Return to Top</A>
<A NAME="AviPlay">
<H2>Playing an AVI File within a Windows Application</H2>
</A>
Programmers can play an AVI File within a Windows application by
several means. The simplest traditional way is to use the
Media Control Interface (MCI). Video for Windows includes an
MCI driver mciavi.drv for AVI files.
Within the Windows API, programmers can use two C language API
functions, mciSendString(...) and mciSendCommand(...), to communicate with
the MCI driver. mciSendString(...) sends MCI command strings such as
"play from 0 to 100" to the MCI driver. mciSendCommand(...) sends MCI
command messages, a straight C type interface, to the MCI driver.
The syntax for mciSendString is:
MCIERROR mciSendString(LPCTSTR lpszCommand, LPTSTR lpszReturnString,
UINT cchReturn, HANDLE hwndCallback);
The pointer lpszCommand points to the MCI command string such as
"play from 0 to 100". Consult the Microsoft SDK documentation for
more details.
The syntax for mciSendCommand is:
MCIERROR mciSendCommand(MCIDEVICEID IDDevice, UINT uMsg,
DWORD fdwCommand, DWORD dwParam);
where uMsg is an MCI command message such as MCI_PLAY defined in an
include file. Consult the Microsoft SDK documentation for more
details on MCI command messages.
mciSendString(...) and mciSendCommand(...) are essentially equivalent.
The MCI driver should convert the MCI command string to an MCI command
message internally. The MCI command strings provide a more English like
interface to MCI.
For C++ programmers, Microsoft provides a window class MCIWnd to wrap
the MCI operations. Quoting the Microsoft SDK documentation:
Microsoft sayeth....
MCIWnd is a window class for controlling multimedia devices. A library
of functions, messages, and macros associated with MCIWnd provides a
simple method to add multimedia playback or recording capabilities to
your applications.
Using a single function, your application can create a control that
plays devices such as video, CD audio, waveform audio, MIDI (Musical
Instrument Digital Interface), or any device that uses the Media
Control Interface (MCI). Automating playback is also quick and
easy. Using a function and two macros, an application can create an
MCIWnd window with the appropriate media device, play the device, and
close both the device and the window when the content has finished
playing.
... end Microsoft sayeth.
Consult the Microsoft documentation for more details on MCIWnd.
ActiveMovie appears intended to supersede MCI. ActiveMovie includes
a restricted subset of MCI for (partial) backward compatibility.
However, Microsoft appears to want developers to switch over to
new API's such as ActiveX and ActiveMovie, built on top of Microsoft's
Component Object Model (COM) object oriented framework.
<A HREF="#Top">Return to Top</A>
<A NAME="AviWrite">
<H2>Reading and Writing an AVI file within a Windows Application</H2>
</A>
The Microsoft Windows Win32 SDK (Windows NT and Windows 95) includes a
set of functions and macros known as AVIFile for reading, writing, and
manipulating RIFF files including AVI files within a Windows program.
These functions are contained within a Dynamic Link Library
avifile.dll.
The AVIFile functions include:
AVIFileInit(...)
AVIFileOpen(...)
AVIFileReadData(...)
AVIFileWriteData(...)
AVIFileExit(...)
and many many others. Consult Microsoft documentation for details.
<A HREF="#Top">Return to Top</A>
<A NAME="Misc">
<H2>Miscellaneous Questions about AVI and Video for Windows</H2>
</A>
What is most recent version of Video for Windows?
Most recent version of Video for Windows for Windows 3.1 appears to
be Video for Windows 1.1e. (10/2/96)
<A NAME="VfW16">
<H2>Where can I get the 16-bit Video for Windows 1.1e runtime?</H2>
</A>
This is the Video for Windows for Windows 3.x In a pinch, it will
also work under Windows 95. Windows 95 includes a version of
Video for Windows that has 32 bit video codecs and possibly other
changes specific to Windows 95. See elsewhere in this Overview
for information on re-installing Video for Windows for
Windows 95.
From Microsoft,
<A HREF="ftp://ftp.microsoft.com/softlib/mslfiles/WV1160.EXE">ftp://ftp.microsoft.com/softlib/mslfiles/WV1160.EXE</A>
(Note the file name is all upper case)
<A HREF="#Top">Return to Top</A>
<A NAME="LW">
<H3>How to import AVI files into Lightwave</H3>
</A>
Lightwave is a powerful 3D animation program from NewTek. Originally
developed for the Amiga, Lightwave has been ported to Windows 95 and
Windows NT.
BurntPixels produces a plug-in for Lightwave 5.0 called AVILoad 2.1
that enables direct importing of AVI files into Lightwave animations.
AVILoad 2.1 is available for Lightwave 5.0 for Windows 95 and NT.
See the AVILoad Web site for further details.
<A HREF="http://www.en.com/users/bforce/">http://www.en.com/users/bforce/</A>
For further information on NewTek and Lightwave, see the LightWave
Web site:
<A HREF="http://www.newtek.com/">http://www.newtek.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="Extension">
<H3>How to give AVI files a different extension in Windows 3.x</H3>
</A>
It is possible to give an AVI file a different file extension, for
example VID. Microsoft Windows can be configured so that Windows
treats this file the same as a file with the AVI extension. For
example, double clicking on a .VID file in File Manager will play the
.VID file just the same as a .AVI file.
In Windows 3.x, edit the WIN.INI file, usually in the \WINDOWS
directory. There is a section [Extensions] which associates
file extensions with applications. For example, this section
will typically include a line such as:
[Extensions]
AVI=mplayer.exe /play /close ^AVI
which causes Media Player (mplayer.exe) to be invoked when the user double
clicks on a file with extension AVI. For VID, add a line
VID=mplayer.exe /play /close ^VID
Media Player is an MCI (Media Control Interface) application. It will
attempt to play the .VID file through MCI. At this point however, MCI
would not recognize VID although Media Player would be invoked.
There is also a section [mci extensions] which contains lines such as:
[mci extensions]
AVI=AVIVideo ( tells MCI to use the MCI driver refered to as AVIVideo for files with the extension AVI)
For the VID example, add
VID=AVIVideo
to the [mci extensions] section in WIN.INI
The WIN.INI file is used mainly for configuring the higher levels
of Windows: the graphical user interface and the desktop. Many applications
install their configuration or installation information in sections within
WIN.INI
Names such as AVIVideo are defined in the [mci] section in the SYSTEM.INI
file, also usually in the \WINDOWS directory. SYSTEM.INI is used
mainly for configuring the lower levels of Windows: the device
drivers, VxD's, and so forth.
[mci]
AVIVideo=mciavi.drv ( where mciavi.drv is the AVI MCI Driver )
Thus, many file extensions can refer to AVIVideo which in turn refers to
the MCI Driver for AVI files. The MCI Driver processes MCI commands and
may in turn invoke other drivers or DLL's such as the Video for Windows
decompressors.
<A HREF="#Top">Return to Top</A>
<A NAME="AVI95">
<H3>How AVI Files are Handled in Windows 95</H3>
</A>
If a user double-clicks on an AVI file icon in Windows 95, Windows 95
will invoke an AVI player. In Windows 95 OEM Service Release 2, Windows
95 will invoke the ActiveMovie Control to play the AVI file. ActiveMovie
1.0 ships with OEM Service Release 2 which is configured to use
ActiveMovie for AVI, Quicktime, and MPEG files.
Windows 95 has file extensions and file types. .AVI is a file
extension. File extensions are mapped to file types. AVIFile is
a file type. The information on file extensions and file types
is stored in the Windows 95 System Registry. More than one file
extension can be mapped to the same file type. For example, the .AIF
and .AIFF file extensions are both mapped to AIFFFile, the file
type for the Apple AIFF audio file format.
The file type contains information on how to play the file (which
application to use) and other information. This information is
all stored in the Windows 95 Registry.
A user can view and also edit the information on file types
through the Windows Explorer applet. Select the Options...
item from the View Menu of Windows Explorer. Select the File Types
tab from the Options property sheet. This gives a list box of
registered file types. There are buttons to add, remove, or edit
a File Type. The AVIFile File Type is identified as
"Movie Clip(AVI)" in this list box of registered file types in
Windows 95 OEM Service Release 2.
In the Windows 95 Registry, "Movie Clip(AVI)" is a string in the
"AVIFile" file type "key". Windows Explorer displays the string "Movie
Clip(AVI)", not AVIFile, the name of the "key".
A user can change how Windows 95 handles an AVI file by editing
the "Movie Clip(AVI)" File Type in the File Types through Windows
Explorer. For example, a user can select an alternative AVI file
player.
In Windows 95 OEM Service Release 2, the File Type includes a
Content type (Multipurpose Internet Mail Extension or MIME type).
The Content type (MIME type) tells Microsoft Internet Explorer how
to handle a file from a Web site.
The original Windows 95 retail version did not include the Content
(MIME) type. This extra feature could be added by installing the
MS Plus! add-on to Windows 95. Some OEM versions of Windows 95 prior
to OEM Service Release 2 supported the Content (MIME) type.
The Windows 95 Registry can be viewed using REGEDIT, the Windows 95
Registry editor. The registry "keys" for file extensions and file types
are stored in the HKEY_CLASSES_ROOT "key". Although REGEDIT can also
edit the registry, the registry is rather complex and this drastic
action should be avoided. Use the Windows Explorer applet. This applet
knows how to modify the keys in the Windows 95 Registry.
The Windows 95 Registry is a binary database stored in two files:
SYSTEM.DAT and USER.DAT. Internally, the database is structured very
similarly to a hierarchical file system such as the DOS/WINDOWS file
system. A Windows 95 Registry "key" is essentially a folder that
contains other "keys" or "values". The "values" have a name and
associated data. The data are text strings such as "Movie Clip(AVI)"
or binary numbers. The Registry Editor represents keys with a folder
icon and values with different icons. The Registry Editor closely
resembles the Windows Explorer.
The registry contains a key in the top level HKEY_CLASSES_ROOT key
called .avi, for the .avi file extension. All keys contain a default
"value" with the name (Default). In the .avi key, the (Default) value
has the associated ASCII text string data "AVIFile". In Windows 95
OEM Service Release 2, there is an additional value named "Content
Type" with the associated ASCII text string data "video/avi", the MIME
type for AVI files. This additional information is used by the
Internet Explorer.
The (Default) value in the .avi key references the AVIFile key, also
in HKEY_CLASSES_ROOT. This key contains a number of other keys and
values. The (Default) value for the AVIFile key has the data
"Movie Clip(AVI)" which the Windows interface uses to identify the files
to users. The AVIFile key is an example of a file type key.
The "shell" key in the AVIFile key specifies what happens when a user
double-clicks on an AVI file. In Windows 95 OSR2, the (Default) value
for the shell key is "play". The shell key contains two subkeys:open
and play. These keys specify possible actions to perform. The
(Default) value indicates that the "play" action will be used.
The open and play keys each contain a key called command. The
(Default) value for the command subkey of play is "rundll32 amovie.ocx
RunDLL /play /close %1". rundll32 is a program that runs a 32 bit
Windows Dynamic Link Library or DLL as an Application. The command
executes amovie.ocx, the ActiveMovie Control, as an
application. Controls such as amovie.ocx are actually DLLs. /play
tells the control to play the file and /close tells the control to
close after finishing playing the file.
In versions of Windows 95 without ActiveMovie, the command keys are
configured to invoke Media Player, mplayer.exe.
<A HREF="#Top">Return to Top</A>
<A NAME="Play">
<H2>How can I play an AVI file?</H2>
</A>
<H3>MS DOS</H3>
On DOS, the shareware program QuickView by Wolfgang Hesseler can
play AVI files (including sound). QuickView 1.03 is available
through the simtel sites such as
<A HREF="ftp://info.nic.surfnet.nl/mirror-archive/software/simtel-msdos/graphics/qv103.zip">ftp://info.nic.surfnet.nl/mirror-archive/software/simtel-msdos/graphics/qv103.zip</A>
You can get the latest version of QuickView (2.13 on 7/28/97) from
<A HREF="http://www.multimediaware.com/qv/">Wolfgang Hesseler's Home Page</A>
<H3>Microsoft Windows</H3>
Windows 3.x, Windows 95, and Windows NT are usually configured so
that double clicking on the icon for an AVI file will invoke an AVI player
application. Video for Windows includes an application known as Media
Player that can play AVI files as well as other multimedia data types.
ActiveMovie 1.0 inclues an ActiveMovie ActiveX control that can play
AVI, Quicktime, and MPEG video as well as other multimedia data types.
On Windows 3.x, Media Player is MPLAYER.EXE. This is a 16 bit
Windows 3.x application. Windows 95 can run both the 16 bit Media Player
and a 32 bit Media Player. There is also a Media Player on Windows NT 4.0
This is MPLAY32.EXE
MediaPlayer can be invoked by typing mplayer.exe at the DOS command
prompt or through the Run... item in the Windows 3.x Program Manager or
the start menu for Windows 95 or Windows NT 4.0
The ActiveMovie ActiveX control on Windows 95 is amovie.ocx. This can
be executed as a standalone application using the
commands Rundll32 amovie.ocx.
ActiveMovie is only available for Windows 95. It will not work on Windows
3.x Windows NT 5.0 should add an ActiveMovie implementation. ActiveMovie 1.0
is shipped with the Windows 95 OEM Service Release 2.
<H3>Power Macintosh</H3>
On the Macintosh, Microsoft's Internet Explorer (Web Browser) can play
AVI files directly. There is also an application AVI->QuickTime that
can convert AVI files to QuickTime .MooV files on the Macintosh.
Microsoft's Internet Explorer 3.01 (on 6/4/97) for the Macintosh may
be downloaded from the Microsoft web site at:
<A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>
MacZilla is an inexpensive shareware Netscape Navigator Plug-In for
the Macintosh that plays QuickTime .MOV, Video for Windows AVI, and
MPEG-1 files. MacZilla can also play Sun Audio .AU, Microsoft
.WAV, and MPEG Layer 2 Audio .MP2 files. If you pay the
fee, MacZilla will send you a STANDALONE player (not a Netscape
Plug-In) for the Macintosh. The MacZilla URL is:
<A HREF="http://maczilla.com/">http://maczilla.com</A>
NOTE: I personally experienced a lot of crashes with MacZilla on
my Macintosh. (6/4/97)
<H3>Unix</H3>
On Unix, XAnim Revision 2.68.3 reportedly can play AVI files using
Microsoft Video 1 compression, SuperMac Cinepak compression, uncompressed
8 bit video, and run length encoded 8 bit video.
Mark Podlipec writes:
Below is some up-to-date information about XAnim, the unix X11 AVI player.
Thanks,
Mark
----
Latest revision: XAnim 2.70.6.4
Official Web sites:
http://xanim.va.pubnix.com/home.html
http://smurfland.cit.buffalo.edu/xanim/home.html
http://www.tm.informatik.uni-frankfurt.de/xanim/
AVI Video and Audio Codecs Supported:
+ AVI Video Codecs supported:
+ IBM Ultimotion (ULTI)
+ JPEG (JPEG)
+ Motion JPEG (MJPG)
+ Intergraph JPEG (IJPG)
+ Microsoft Video 1 (CRAM/WHAM/MSVC)
+ Radius Cinepak (CVID)
+ Intel Indeo R3.1 (IV31)
+ Intel Indeo R3.2 (IV32)
+ Intel RAW YUV9 (YUV9)
+ Creative CYUV (CYUV)
+ Uncompressed (RGB )
+ Run length encoded (RLE8)
+ Editable MPEG (XMPG)
+ AVI Audio Codecs supported:
+ PCM (0x0001)
+ MS ADPCM (0x0002)
+ ULAW (0x0007)
+ DVI/IMA ADPCM (0x0011)
<H3> Digital Equipment Corporation's VAX/VMS </H3>
On VAX/VMS, Xanim (see above) has been ported and works on VMS.
<H3>Amiga</H3>
TapAVI 1.5
Picasso AVI Animation Player
AVI Player for 020+ KS2.0 Picasso-II (variety of Amiga)
<A HREF="http://www.ziplink.net/~wingell/ibrowse/tapavi.html">http://www.ziplink.net/~wingell/ibrowse/tapavi.html</A>
There appears to be an Amiga version of the XAnim AVI Player. The TapAVI
documentation in fact says that in general XAnim is better but TapAVI is
better for certain uses.
xanim for the Amiga appears to be available in a file xanim6.lha from
Aminet. As of (5/16/97) have not located a URL.
<H3>OS/2</H3>
OS/2 has built-in support for AVI files ... up to a point. OS/2
has had built-in AVI support since OS/2 2.0 in 1992. However, it
cannot play all Windows style AVI files.
Practice Corporation markets an extension for OS/2 called AnPoCODEC
which adds support for playback of Windows-style AVI files, including
AVI's compressed with RLE (Microsoft RLE), CVID (Cinepak), and MSVC
(Microsoft Video 1). Practice also markets QUickMotion which adds
support for playing QuickTime video files.
<A HREF="http://www.practice.xo.com/">http://www.practice.xo.com/</A>
At least two other programs exist that are claimed to be OS/2 AVI Players.
<A HREF="ftp://uiarchive.cso.uiuc.edu/pub/systems/os2/mmedia/calliope.zip">Calliope</A>
<A HREF="ftp://uiarchive.cso.uiuc.edu/pub/systems/os2/mmedia/dmply141.zip">DMP 1.41</A>
<A HREF="#Top">Return to Top</A>
<A NAME="NetShow">
<H2>AVI and NetShow</H2>
</A>
NetShow is a relatively new product from Microsoft for distributing
streaming video over the Internet. NetShow includes a NetShow server
for Windows NT and NetShow players (both NT and Windows 95).
NetShow uses the Active Streaming Format (ASF) for video streams
over the Internet. ASF adds time stamps for synchronization, error
correction codes, and other features that AVI lacks. The NetShow
family of products includes utilities to convert AVI files to ASF
files.
Microsoft has licensed a number of low bitrate video technologies
for NetShow including Vivo's H.263, Iterated Systems/Progressive
Networks RealVideo/ClearVideo fractal codec, and VDONet's VDOWave.
Microsoft has purchased VxTreme, possibly the best wavelet based video
codec. Microsoft has used their implementation of
the uncompleted international standard MPEG-4 for NetShow.
NetShow, including the server, is available at the Microsoft web
site. NetShow will install a number of Video for Windows codecs
such as Microsoft's MPEG-4, VDOWave from VDONet, and other low
bitrate codecs. NetShow also installs a number of low bitrate
audio codecs such as MPEG-1 Layer 3 audio, G.723.1, and a voice
coding codec from Lernout and Hauspie.
NetShow tries to use a real-time Internet Protocol called MMS
to transfer video over the Internet. If it cannot use MMS, it will
use TCP (Transmission Control Protocol) or HTTP (HyperText Transport
Protocol). MMS appears to be a Microsoft proprietary real time
protocol and a competitor to RTP (Real Time Protocol) or RTCP (Real
Time Control Protocol).
The Microsoft NBC Business News channel distributes video over
the Internet using these technologies.
NetShow also claims to support multicast IP over Networks. I've
not personally seen this work. The NetShow 2.0 server administrative
user interfaces contain panels for configuring multicast channels.
<A HREF="http://www.microsoft.com/netshow/">http://www.microsoft.com/netshow/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="ToASF">
<H2>How to convert an AVI file to a Microsoft ASF File?</H2>
</A>
Microsoft has defined yet another audio/video/multimedia file
format to support streaming audio and video over the Internet.
This is Active Stream Format (ASF). These files have the
extension .asf or .asx. They are used as part of Microsoft's NetShow
video server and client over the Internet.
The NetShow authoring tools include a DOS command line utilitity:
VidToAsf
which converts AVI files to ASF files, preserving whatever compression
was used. Like AVI, ASF files support many compression schemes.
For more information including software:
<A HREF="http://www.microsoft.com/netshow/">http://www.microsoft.com/netshow/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="Content">
<H2>Sources of AVI Video Clips on the Web</H2>
</A>
What good is all this technology without something to watch?
Accordingly, some sites with AVI content.
The Official Babylon 5 Web Site has a large number of AVI files
from the popular science fiction television show.
<A HREF="http://www.babylon5.com/">http://www.babylon5.com</A>
Paul Bauer's Multimedia City contains a large list of sites with
video clips.
<A HREF="http://www.geocities.com/Broadway/2876/index.html">http://www.geocities.com/Broadway/2876/index.html</A>
<A HREF="#Top">Return to Top</A>
<A NAME="AVILBR">
<H4>Low Bit Rate AVI for the Web</H4>
</A>
A major limitation of video on the Web in general and AVI in
particular is the limited bandwidth available. Currently most users
with Plain Old Telephone Service (POTS) have 28.8 Kbits/second or 33.6
Kbits/second connections to their Internet Service Provider. The new
generation of K56Flex and X2 modems from U.S. Robotics and Rockwell
may eventually provide 50-60 Kbits/second over tradiational analog
telephone lines. A Basic Rate Interface (BRI) ISDN connection
provides 128 Kbits/second.
Although very high speeds are possible within the LAN's and WAN's of
major corporations and other well-endowed organizations, the so-called
Intranet, the actual rates achieved over the world wide Internet are
generally much less. Not necessarilly better than the rates for POTS
or ISDN.
For example, currently (7/20/97) a Web browser at NASA Ames Research
Center in Mountain View, California can attach to my web site at an
Internet Service Provider in nearby San Jose at a sustained data
transfer rate of 15 KBytes/second or 120 Kbits/second. NASA Ames
is home to the Federal Internet Exchange (FIX), the
government's main switching center for the Internet, for the West Coast
of the United States. This is the heart of the Silicon Valley. This
is probably much better performance than more outlying parts of the
Internet. This gives a sense of the current limitations of the
broader Internet.
These Internet rates are very low bitrates for video. The prevailing
block Discrete Cosine Transform (DCT) based video codecs such as MPEG-1,
H.261, and H.263 perform acceptably at 384 Kbits/second but frequently
exhibit unnatural artifacts at 128 Kbits/second for 30 frame per
second 320x240 pixel video. These block DCT based codecs match or
exceed the performance of CinePak, the reigning king of AVI codecs.
Ultimately, faster Internet connections and better codecs will combine
to resolve this problem and allow convincing, realistic video over
the Internet.
In the meantime, Web authors planning to use video must provide highly
compressed video at low bitrates. To do this, options are:
- Use smaller frame sizes (e.g. 160x120 pixels)
- Use lower frame rates (10 - 15 frames per second)
- Push the standard codecs such as CinePak as far as possbile.
- Use one of the newer codecs such as:
<A HREF="#VDOW">VDOWave</A>
<A HREF="#IV41">Indeo 4.1</A>
<A HREF="#H263">H.263</A>
This overview contains a detailed section on the many codecs available
for AVI files:
<A HREF="#Codec">Video for Windows Codec Section</A>
This overview also has a section on effective video for the Web. Note
that there are practical limits on how low resolution, frame rates, and
video quality can be pushed before the video becomes ineffective.
<A HREF="#Style">Effective Video for the Web</A>
<A HREF="#Top">Return to Top</A>
<A NAME="Limits">
<H2>Limitations of AVI and Video for Windows over Networks</H2>
</A>
AVI and Video for Windows were developed for playback of audio and
video from hard disks and CD-ROMs on personal computers. They are
also adequate for downloading a video file from a remote site on the
Internet for subsequent playback from the computer's hard drive. They
are not well suited for real-time or streaming video playback over
networks. This means videoconferencing or broadcast video over
networks.
The AVI file format lacks time stamps embedded in the audio and
video streams. There is no mechanism to resynchronize the audio and
video streams if data is lost. In a network, sometimes packets are
lost in which case the audio and video playback will lose track of the
time. With time stamps, the application can resynchronize the audio
and video playback.
Microsoft has a new generation of products in the form of the Active
Streaming Format (ASF), NetShow, NetMeeting (videoconferencing), and
ActiveMovie (DirectShow) with improved support for video over
networks. Microsoft provides utilities for converting AVI to
the new ASF format.
<A HREF="#Top">Return to Top</A>
<A NAME="ToSequence">
<H2>How can I convert an AVI file to a sequence of bitmap images?</H2>
</A>
<H3>VidEdit</H3>
Microsoft's VidEdit video editor can convert AVI files to a sequence
of Microsoft DIB files, such as test.avi --> test00.dib, test01,dib, etc.
Further information on VidEdit is available in the section of the
AVI Overview on editing AVI.
<H3>AVIRIP</H3>
There is a freeware DOS program called AVIRIP that can convert
non-compressed AVI files to a sequence of TGA (Targa), RAW, or
DIB files. AVIRIP is available with the convmpg3 freeware toolkit
for converting AVI to MPEG and MPEG to AVI. Further information
on convmpg3 is available in the section of the AVI Overview
on converting AVI to MPEG.
<H3>Jih-Shin Ho's Display</H3>
Display by Jih-Shin Ho
Available at
<A HREF="ftp://info.nic.surfnet.nl/mirror-archive/software/simtel-msdos/graphics/disp189a.zip">ftp://info.nic.surfnet.nl/mirror-archive/software/simtel-msdos/graphics/disp189a.zip</A>
or other Simtel mirror sites.
This is a 32-bit MS-DOS program that can read and write many image
and movie file formats.
<H3>DeBabelizer Pro</H3>
Equilibrium's DeBabelizer Pro for Windows 95 and NT 4.0 reads and
writes about 90 common and not-so-common image formats. DeBabelizer Pro
also reads and writes AVI files. DeBabelizer Pro can read an AVI
file and export it as a sequence of still images in the many image formats
that it supports.
DeBabelizer Pro has many other features beside file format conversions.
Equilibrium has a demonstration version of DeBabelizer Pro on its Web site.
This is definitely demonstration version. The demo version plasters the
word Equilibrium all over any images that it processes.
DeBabelizer Pro ($595 Suggested Retail Price)
Equilibrium
475 Gate Five Road, Suite 225
Sausalito, CA 94965
1-800-524-8651 or (415) 332-4343
<A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="ToSmacker">
<H2>Smacker</H2>
</A>
Smacker is a special 8-bit color video format from
RAD Game Tools used for video and computer games.
RAD Game Tools provides free Smacker Utilities at
their Web site:
<A HREF="http://www.radgametools.com/">http://www.radgametools.com/</A>
The utilities can convert an AVI file to a Smacker video file.
The Smacker utilities calculate a good 8 bit palette
for the input video.
<A HREF="#Top">Return to Top</A>
<A NAME="FromSequence">
<H2>How to convert a sequence of bitmap images to an AVI?</H2>
</A>
<H3>VidEdit</H3>
Microsoft's VidEdit software (16 bit Windows) can read in
sequences of Microsoft .DIB files and convert them to an
AVI file. More information on VidEdit is available in the
section of the AVI Overview on editing AVI files.
<H3>Video for DOS</H3>
A shareware program called Video for DOS (VFD) can convert sequences
of Targa files (.TGA) into AVI. (11/8/96) Video for DOS can be
downloaded from
<A HREF="http://www.dc.ee/Files/Graf">http://www.dc.ee/Files/Graf</A>
Thanks to John Avis for information on Video for DOS.
<H3>AVI Constructor</H3>
Michael Caracena's AVI Constructor, a shareware program, can convert
sequences of Windows .BMP files into an AVI file. AVI Constructor
can be ordered and a demonstration version downloaded from:
<A HREF="http://www.henge.com/~caracena">http://www.henge.com/~caracena</A>
<H3>MainConcept's MainActor</H3>
MainConcept's MainActor can import sequences of BMP images and export
them as an AVI video file. MainActor can import and export many other
video and still image formats as well.
<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
<H3>DeBabelizer Pro for Windows 95 and NT 4.0</H3>
Equilibrium's DeBabelizer Pro can read and write about 90 common
and not so common image file formats. DeBabelizer Pro can also
read and write AVI files. DeBabelizer Pro can read in sequences of
image files in many formats and convert to an AVI file.
Equilibrium has a demonstration version of DeBabelizer Pro on their
web site. This is a demonstration version. It adds the words Equilibrium
to any images or movies that it processes.
DeBabelizer Pro ($595 Suggested Retail Price)
Equilibrium
475 Gate Five Road, Suite 225
Sausalito, CA 94965
1(800) 525-8651 or (415) 332-4343
<A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>
<H3>Smacker Utilities</H3>
RAD Game Tools distributes free Smacker utilities
at their Web site:
<A HREF="http://www.radgametools.com/">http://www.radgametools.com/</A>
The Graphics Processor can convert a sequence of bitmap images
in several common bitmap image formats into an AVI file.
NOTE: this AVI file uses an 8 bit color palette selected by
the Smacker utilities for best picture quality.
RAD Game Tools licenses a proprietary 8 bit video format
called Smacker for use in video games. Their focus is on
compression achieved through proper selection of an 8 bit
color palette, rather than 24 bit color. Smacker is popular
in the gaming industry.
RAD Game Tools
850 South Main Street
Salt Lake City, UT 84101
Voice: (801) 322-4300
FAX: (801) 359-6169
<A HREF="#Top">Return to Top</A>
<A NAME="FromMOV">
<H2>How to convert QuickTime MOV files to AVI?</H2>
</A>
<H3>Power Macintosh:</H3>
Video for Windows (Macintosh) is a collection of utilities and
extensions for the Macintosh that add support for Windows video file
formats. One of the utilities is VfW Converter which can convert
Quicktime MooV files to AVI files playable on the PC.
VfW Converter is more powerful than Intel's smartvid PC application.
It can convert video formats. For example, VfW Converter can
convert a raw uncompressed 24 bit Quicktime Movie to a raw
uncompressed 24 bit AVI Movie (or do various compressions).
Uncompressed Quicktime and uncompressed AVI files use different
video formats. VfW Converter also converts audio from Quicktime
audio to AVI audio.
The Video for Windows (Macintosh) file is usually called:
video-for-windows-11p.hqx
Apple's Quicktime Web site contains links to sources for
Video for Windows (Macintosh) as well as other useful
video utilities.
<A HREF="http://quicktime.apple.com/">Apple's QuickTime Web Site</A>
Video for Windows (Macintosh) has the virtue of being free, unlike:
Adobe Premiere (Macintosh)
---reportedly can save QuickTime movies as AVI files.
<H3>On PC/Microsoft Windows:</H3>
TRMOOV.EXE (see below)
can translate MOV to AVI, but I found problems playing back
the AVI files on my 486 PC. It does not change the
interleaving of the audio and video streams in the conversion from
.MOV to .AVI. TRMOOV preserves the half-second
interleave of QuickTime movies which is not appropriate for AVI. AVI
wants each video frame interleaved with the audio for that frame.
With the half-second interleave of QuickTime the audio will playback for
a half-second while the video is frozen, followed by a half-second of
video with no audio, repeated for the duration of the AVI playback.
The interleave can be fixed using VidEdit. VidEdit contains algorithms
to properly interleave the audio and video. Load the offending AVI
file into VidEdit, Select File | Save As ... and give the file a new
name. This triggers the interleave algorithm. VidEdit will reorganize
the audio and video to interleave frames instead of half-seconds.
Intel's SmartVid (see below) can convert .MOV to .AVI It appears to
convert the audio video interleave from one format to another, something
TRMOOV seems to have problems with.
<A HREF="#Top">Return to Top</A>
<A NAME="FromAutodesk">
<H2>Converting Autodesk Animation Files (FLI or FLC) to AVI</H2>
</A>
<H3>VidEdit:</H3>
Use Microsoft's VidEdit editor. This editor can read FLI or FLC files.
Then save the files as AVI files.
Launch VidEdit. Select File | Open ...
This brings up the Open Video File dialog box. Under List Files of Type,
select Autodesk Animation from the pulldown list.
Then, choose File | Save As ...
VidEdit will save the file as an AVI file.
Further information on VidEdit is available in the section on editing
AVI files, including where to get VidEdit.
<H3>MainActor</H3>
MainConcept's MainActor for Windows 95 and OS/2 Version 1.00
can load Autodesk Animator FLI and FLC files and save in AVI
format. For further information on MainActor, a shareware
program that converts many video and animation formats, see:
<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
or e-mail
<A HREF="mailto:info@mainconcept.com">info@mainconcept.de</A>
<A HREF="#Top">Return to Top</A>
<A NAME="FromMPEG">
<H2>Converting MPEG to AVI</H2>
</A>
Ulead's MPEG Converter can convert MPEG-1 to AVI.
Ulead is:
Ulead
970 West 190th Street, Suite 20
Torrance, CA 90502
Voice: (800) 858-5323
FAX: (310) 523-9399
<A HREF="http://www.ulead.com/">http://www.ulead.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="FromGIF89a">
<H2>Converting Animated GIF (GIF89a) to AVI</H2>
</A>
MainConcept's MainActor for Windows can load animated GIF
files (GIF89a) and then save these files as AVI files.
MainActor is available in a shareware version or as a fully
functional paid-for version.
On the Web:
<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
By E-Mail:
<A HREF="mailto:info@mainconcept.de">info@mainconcept.de</A>
<A HREF="#Top">Return to Top</A>
<A NAME="Bitmaps">
<H2>How to Convert a Sequence of Still Images in One Format to a Sequence in Another Format</H2>
</A>
At this time, there are hundreds of different graphic file formats
for still images, such as Windows BMP, Windows DIB, Targa, GIF, JPEG,
Unix Portable Pixmap (PPM), and many others. In creating an AVI (or
MPEG or MOV for that matter), some authoring programs may create a
video as a sequence of still images in some graphic file format
which is not supported by the graphic file sequence to AVI
conversion utilities listed elsewhere in this Overview.
Fortunately, there are freeware, shareware, and commercial programs
which provide batch conversion of sequences of still images from one
file format to sequences in another file format. For example, you
might generate a sequence of Unix PPM format files with one
utilitity and need to convert to a sequence of Windows BMP files.
<H3>PC/Windows</H3>
WinJPEG is a shareware Windows utilitity from Pixel Vision.
WinJPEG reads and writes most graphic file formats. It has a
batch conversion feature.
Pixel Vision Software Home Page (WinJPEG):
<A HREF="http://www.pixvision.com/">http://www.pixvision.com/</A>
<H3>Power Macintosh</H3>
GraphicConverter is a shareware Power Macintosh utility with
very extensive support for graphic file formats and some video
formats. It can read and write roughly a hundred different
file formats including some pretty obscure formats. It has a
batch conversion feature.
GraphicConverter Web Site:
<A HREF="http://www.lemkesoft.de/">http://www.lemkesoft.de/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="ToMOV">
<H2>How to convert AVI to QuickTime files?</H2>
</A>
<H3>Microsoft Windows</H3>
Intel's SmartVID, a DOS and Windows application, can convert
.AVI to .MOV files. SmartVID is codec independent. This means
that SmartVid preserves the video compression scheme from the
source .AVI file.
<A HREF="http://www.intel.com/pc-supp/multimed/indeo/smartvid.htm">
http://www.intel.com/pc-supp/multimed/indeo/smartvid.htm</A>
TRMOOV.EXE
Windows 3.1 Program
Converts AVI to QuickTime for Windows movie.
The QTW movie will play on a Macintosh with QuickTime 1.5 or later.
Note: My experiments converting some .MOV files to .AVI seem to
playback ok, unlike the .AVI to .MOV conversion.
Source: Found on CD-ROM with the "How to Digitize Video" book
(see below).
On Net: <A
HREF="ftp://ftp.rahul.net/pub/jfm/avi/trmoov.exe">ftp://ftp.rahul.net/pub/jfm/avi/trmoov.exe</A>
Please Note: TRMOOV and SmartVid preserve the compressor used in the
source file. For example, if the AVI file was compressed with
CinePak, the MOV file will be compressed with CinePak. Since CinePak
is supported by both Video for Windows and QuickTime this is not
a problem. However, if the compressor exists only in Video for Windows
or only QuickTime, then there will be a problem.
Mainconcept's Main Actor can load many video and animation formats.
It can also save many video and animation formats. The Windows version
of Main Actor can load AVI and save the file as Quicktime.
<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de</A>
<H3>PowerMacintosh</H3>
On the PowerMacintosh, the program AVI->QuickTime can convert AVI to
QuickTime. At least, it can convert the video successfully for
subsequent playback with Apple's MoviePlayer. I have seen problems
with the audio. This application is available at various Web and ftp
sites in the file avi-to-qt-converter.hqx
One site with AVI->QuickTime is:
<A HREF="ftp://mirrors.aol.com/pub/info-mac/gst/mov/avi-to-qt-
converter.hqx">ftp://mirrors.aol.com/pub/info-mac/gst/mov/avi-to-qt-converter.hqx</A>
<A HREF="#Top">Return to Top</A>
<A NAME="ToGIF89a">
<H2>How to convert AVI to animated GIF?</H2>
</A>
Gif Construction Set from Alchemy Mindworks reportedly can convert
an AVI file to an animated GIF file.
Alchemy Mindworks, Inc.
Web <A HREF="http://www.mindworkshop.com/alchemy/alchemy.html">http://www.mindworks.com/alchemy/alchemy.html</A>
E-Mail: alchemy@mail.north.net
FTP: ftp://ftp.mindworkshop.com/pub/alchemy
Microsoft's GIF Animator for Windows 95
product can reportedly convert AVI to animated
GIFs (GIF89a format). Information on GIF Animator
including a dowloadable version is available at
the Microsoft Web site (11/7/96) on the Microsoft
Image Composer page.
Web <A HREF="http://www.microsoft.com/imagecomposer/">http://www.microsoft.com/imagecomposer</A>
MainActor, a shareware software product for Windows 95, Windows NT, and
OS/2 reportedly can convert AVI to animated GIF.
<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
Ulead reports that is has added AVI to GIF to
Ulead's PhotoImpact GIF Animator 1.2 Beta (11/16/96)
<A HREF="http://www.ulead.com/products/framens.htm">http://www.ulead.com/products/framens.htm</A>
Ulead Toll Free Number: 1-800-858-5323
<A HREF="#Top">Return to Top</A>
<A NAME="ToMPEG">
<H2>How to convert AVI to MPEG?</H2>
</A>
AVI to MPEG Conversion at a Glance
Company/Author(s) Product Price URL
---------------------------------------------------------------------
Corel PhotoPaint $500? http://www.corel.com/
Ulead MPEG Converter $249 http://www.ulead.com/
Xing Technologies XingMPEG Encoder $89 http://www.xingtech.com/
XingMPEG Encoder 2 (May 6, 1997 release)
CeQuadrat PixelShrink $199 http://www.cequadrat.com/
Vitec MPEG Maker $125 http://glimmer.com/vitec
MainConcept MainActor shareware http://www.mainconcept.de/
avi2mpg1 Unknown freeware http://www.mnsi.net/~jschlic1/
Stefan Eckhart and others CONVMPG3 freeware kit http://www.powerweb.de/mpeg/msdos.html
-------------------
Further information, reviews, and live links follow:
The following posting from the comp.graphics.animation USENET
newsgroup provides a good answer to this question. I have retained
the header to insure proper credit to the author.
Note: LW refers to the Lightwave 3D animation software package.
From comp.graphics.animation Wed Oct 30 18:16:34 1996
Path:
samba.rahul.net!rahul.net!a2i!news.PBI.net!news.mathworks.com!howland.erols.net!surfnet.nl!tudelft.nl!ne
ws
From: Valery <V.V.Kritchallo@twi.tudelft.nl>
Newsgroups: comp.graphics.animation
Subject: Re: AVI to Mpeg converter
Date: Mon, 28 Oct 1996 15:15:14 +0100
Organization: Technical University, Delft
Lines: 58
Message-ID: <3274BFF2.2EDD@twi.tudelft.nl>
References: <01bbc33f$05021880$d73d93cf@cube176a>
Reply-To: V.V.Kritchallo@twi.tudelft.nl
NNTP-Posting-Host: duti504b.twi.tudelft.nl
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 3.0 (Win95; I)
Mariusz Jesmanowicz wrote:
>
> Hi, I use LW to do animation, and basically I am not happy with any of the
> compression engines aviable for avi. Those codes suck. So what I want to do
> is make an UNCOMPRESSED AVI and then translate it to MPEG. anyone know of
> any good converters to MPEG or hoe about plug-in for LW to be able to do
> MPEG files from the start.
>
> Thank You
Hi,
you're right, every single AVI compression codec is lame.
5 years of the AVI format existance and zero progress so far.
If you're talking about freeware or budget-priced MPEG codecs,
it's a tough task, to find the damn thing. I'm busy in this area
quite for a while already, and here are my findings:
1. XING's MPEG encoder is a classical name on the scene. Had
compatibility problems before, not anymore, I believe. Can cost
you $150 or more, not sure. Scan for 'XING' on the Net, you'll
definitely find some tracks (www.xing.com doesn't show up).
2. Stefan Eckart's CMPEG (DOS) encoder is FREE and GOOD, and stays
so for a couple of years already. Can have troubles converting
some particular streams, but generally not worse than many
commercial programs. (You need to make a TGA sequence first out
of your AVI, though). Again, scan for CMPEG, or use my bookmarks
found on the site Im introducing below.
3. To my surprise, Corel Photopaint 6 has got very decent built-in
MPEG compression option. Open an AVI, Save As an MPEG, and see what
happens (get some coffie, as it'll take a while ;) I checked it out
on a stream where CMPEG gave up and the Corel's conversion did make
a wonder. (If you like to see the result, download my 'Liquid Beatles'
morph clip, 1 Mb: http://www.proteon.nl/synth_art/movies/cross.mpg).
4. Ulead's MPEG converter (www.ulead.com) seems to be the major
player (priced below $250) on the Windows arena. I've heard good
references about their MPEG's quality, but I feel that their
biggest advantage is good integration with Windows and AVI format.
If I'm not mistaken, a very slow codec.
5. Don't mess with DARIM Vision's codec (Korea). I've tried their
demo, it produces low-quality crap. Though fast and cheap (you bet :-).
See my MPEG clips, fractals, morphs, and in general lots of
advanced graphics at
http://www.proteon.nl/synth_art/
Hope this helps,
Valery
http://www.proteon.nl/synth_art/movies.html
---------------------------------------------------------------
In addition to the above, there is <EM>MPEG Maker</EM> from
VITEC-HTS (formerly Vitec Multimedia). Vitec is:
Vitec
4366 Independence Court, Suite C
Sarasota, FL 34234
Voice: (941) 351-9344
FAX: (941) 351-9423
<A HREF="http://vitechts.com">http://vitechts.com</A>
CeQuadrat makes a software-only AVI to MPEG converter called
PixelShrink. CeQuadrat is:
CeQuadrat
1804 Embarcadero Road, Suite 101
Palo Alto, CA 94303
Voice: (415) 843-3780
FAX: (415) 843-3799
<A HREF="http://www.cequadrat.com/">http://www.cequadrat.com/</A>
And the freeware kit CONVMPG3, a collection of MS-DOS
utilities that can be used to convert AVI to MPEG-1 or
MPEG-1 to AVI. CONVMPG3 includes Stefan
Eckhardt's CMPEG MPEG-1 encoder mentioned above
but also includes utilities to generate the sequence
of Targa files required by CMPEG. The URL for CONVMPG3 is:
<A HREF="http://www.powerweb.de/mpeg/msdos.html">http://www.powerweb.de/mpeg/msdos.html</A>
avi2mpg1 is a freeware command line application for Windows 95/NT
that can convert AVI to MPEG-1, supports audio, video, and
interleaved audio/video.
<A HREF="http://www.mnsi.net/~jschlic1/">http://www.mnsi.net/~jschlic1/</A>
MainConcept's MainActor product now (March 1997) includes
add-on modules to output MPEG-1 and MPEG-2. With these add-on
modules, MainActor can convert AVI to MPEG-1 or MPEG-2.
Marcus Moenig at MainConcept provided an evaluation copy of the
MPEG-1/2 modules. In tests, these modules could convert AVI files
to MPEG-1 that could be played using the ActiveMovie software
MPEG player shipping with Microsoft's Windows 95 OSR2.
MainConcept is:
MainConcept
<A HREF="http://www.mainconcept.de/">http://www.mainconcept.de</A>
The URL for Ulead is:
Ulead MPEG Converter
<A HREF="http://www.ulead.com/">http://www.ulead.com/</A>
On May 6, 1997, Xing announce a new product, the Xing MPEG Encoder 2
which accelerates MPEG encoding using Intel MMX instructions on PC's.
The original Xing MPEG Encoder did not use MMX instructions.
The Xing MPEG Encoder 2 can convert AVI and WAV files to MPEG-1.
The URL for Xing is:
Xing Technology Corporation
<A HREF="http://www.xingtech.com">http://www.xingtech.com/</A>
For further information on the MPEG digital audio and video
format see Tristan Savatier's comprehensive MPEG site:
<A HREF="http://www.mpeg.org/">http://www.mpeg.org/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="ScreenCapture">
<H2>How to capture screen to AVI Files</H2>
</A>
<H3>Microsoft Camcorder</H3>
Microsoft distributes a free screen capture utility called
Microsoft Camcorder (sometimes abbreviated MSCamcorder). Camcorder
can save screen captures as AVI files or a .EXE file.
<A HREF="http://www.microsoft.com/msoffice/office97/camcorder/default.htm">http://www.microsoft.com/msoffice/office97/camcorder/default.htm</A>
<H3>HyperCam</H3>
See the following posting from Greg Kochaniak dated 5/10/97 from the
comp.archives.ms-windows.announce newsgroup.
I have uploaded to Simtel.Net:
http://www.simtel.net/pub/simtelnet/win95/mmedia/hycam119.zip
ftp://ftp.simtel.net/pub/simtelnet/win95/mmedia/hycam119.zip 251872 bytes
hycam119.zip HyperCam v1.19 AVI screen capture for Win95,NT
HyperCam v1.19 captures the action from Windown 95 or NT screen in any
graphics mode, including cursor movements and sound, and saves it to
standard AVI movie files. Perfect for demonstrations, presentations
and tutorials.
Special requirements: Windows 95 or Windows NT.
Changes: Fixed two problems: starting recording in 256 color mode would
produce sometimes invalid AVI files (when, upon minimizing HyperCam
window for recording, another window with a different palette would come
to front and realize its palette). The other problem: selecting AVI file
name with Browse button would not always work correctly.
hycam119.zip has replaced hycam118.zip.
Shareware. Uploaded by the author.
Greg Kochaniak, Hyperionics
gregko@hyperionics.com
http://www.hyperionics.com/
<A HREF="#Top">Return to Top</A>
<A NAME="AuthorAVI">
<H2>Authoring Tools to Create AVI Files</H2>
A wide variety of 2D and 3D animation applications as well as other
multimedia authoring tools generate AVI files directly. This is
especially true for Windows versions of applications, since Microsoft
provides an API for creating AVI files. A list of applications
that can create AVI files follows.
<H3>LightWave 3D 5.5 for Windows 95 and Windows NT</H3>
LightWave is a popular 3D modeling and animation program
widely used in broadcast television. LightWave can do almost
anything and supports third party plug-ins to add features that
it lacks.
NewTek
Note: According to product literature on the NewTek Web site.
<A HREF="http://www.newtek.com/">http://www.newtek.com/</A>
<H3>Caligari Truespace 1,2, and 3 for Windows</H3>
Caligari TrueSpace is a popular low-end 3D modeling and animation
program. Traditionally, TrueSpace has been polygon based limiting
its usefulness for modeling organic forms. TrueSpace 3.0 adds
some organic features.
Caligari Corporation
Note: Confirmed from personal use of Caligari TrueSpace.
<A HREF="http://www.caligari.com/">http://www.caligari.com/</A>
<H3>Fractal Design Ray Dream Studio for Windows </H3>
Ray Dream Studio is a suite of 3D modeling, animation, and rendering
tools.
Fractal Design
Note: According to product literature on web site.
<A HREF="http://www.fractal.com/">http://www.fractal.com/</A>
<H3>Macromedia Director 6.0 for Windows</H3>
Macromedia Director is a widely used authoring tool for creating
interactive 2D animations such as presentations, multimedia for
kiosks, prototypes of user interfaces, and similar uses. Director
can also produce straight 2D animations appropriate for AVI files.
Macromedia
Note: According to product literature on the Macromedia Web site.
<A HREF="http://www.macromedia.com/">http://www.macromedia.com/</A>
<H3>CorelMOVE</H3>
Corel's CorelMOVE animation software can export AVI files.
<A HREF="#Top">Return to Top</A>
<A NAME="Capture">
<H2>How to create AVI files from analog video:</H2>
</A>
<H3>Video Capture Cards</H3>
On Intel based PC's, use a video capture card to convert analog video
from video tapes or video cameras to AVI files. A PC video capture card
is typically either a 16 bit ISA bus card or a 32-bit PCI bus card that
plugs into the 16 bit ISA or 32-bit PCI slots in your PC motherboard.
32-bit PCI bus cards are steadily replacing 16-bit ISA bus cards.
Most video capture cards have either a composite video connector or
both a composite video and an S-Video connector. Most video capture
cards perform compression of the video in hardware or firmware on the
video capture card before tranferring the compressed video over the ISA
or PCI bus to the PC hard drive.
Composite video signals are analog signals that combine luminance and
chrominance (color) information in a single analog signal that can be
transmitted over a single wire or stored in a single track on an
analog magnetic tape. The NTSC video signals used by commercial
television sets in the United States and Japan are an example of
composite signals. Composite video is particularly prone to errors in
reproducing exact colors due to the overlap of the color and luminance
signals. Video professionals jokingly refer to NTSC as Never The Same
Color.
S-Video video signals separate the luminance and chrominance
information into two separate analog signals that can be transmitted
over two separate wires or stored in two separate tracks on an analog
tape. S-Video is generally superior to composite video in reproducing
colors correctly. The S-VHS and Hi8 video tape standards use S-Video.
Ordinary VHS video tape uses composite NTSC signals. Thus, in
general, using an S-VHS or Hi8 video camera with S-Video output to
provide the analog video signal to the S-Video input of a PC video
capture card will provide better video quality.
A third type of video signal is component video. In component video, the
luminance (Y) and two color difference signals (U and V or I and Q) are
separated into three separate analog signals that can be transmitted
over three separate wires or stored in three separate tracks on an
analog tape, or digitized separately. Component video is used in
professional video production and provides the best quality and the
most accurate reproduction of colors. The professional Betacam SP video
cameras use component video. The current generation of widely used
PC video capture cards do not provide component video inputs.
Typical PC video capture cards store the digitized compressed video as
an AVI file using Motion JPEG compression. Motion JPEG is used
instead of other compression schemes because each frame is compressed
separately. This allows frame accurate editing of the AVI file after
capture. If a compression scheme that uses frame differencing - where
a frame is stored as the differences between the frame and a previous
frame (such as MPEG) - is used, it is difficult to edit the video.
Typical PC video capture cards are bundled with non-linear video editing
software such as Adobe Premiere which can be used to edit the Motion JPEG
compressed AVI file and ultimately compress the edited AVI file using
compression such as CinePak using frame differencing for maximum
compression.
PC video capture cards usually compress the video using a lossy
compression scheme such as Motion JPEG or MPEG because uncompressed
video places very high demands on the bandwidth of the ISA or PCI bus
and on the bandwidth to the hard drive. In addition, uncompressed
video can fill even very large hard drives very quickly.
PC video capture cards are usually bundled with application software and
drivers to perform video capture such as Microsoft's VIDCAP.EXE or
Intel's SMARTCAP.EXE or other similar software.
NOTE: Windows 95 and Windows NT require different device drivers.
Most video capture cards have drivers for Windows 95. Only some
have Windows NT drivers. Video capture cards that have Windows NT
device drivers and therefore can be used under Windows NT are listed
at the end of this section.
Some current (1/11/97) popular PC video capture cards that generate
AVI files are:
Digital Processing Systems (DPS) makes high end video capture cards
for the broadcast and studio markets. Some of these cards can
capture video on the PC. Some of these cards are designed for
Windows NT and include Windows NT device drivers.
<A HREF="http://www.dps.com/">http://www.dps.com/</A>
FAST AV Master PCI 60 field/60fps with Motion JPEG, Includes Ulead's
Media Studio Pro digital video editing application.
<A HREF="http://www.fast-multimedia.com">FAST Web Page</A>
Truevision Bravado 1000 50/60fps 32-bit PCI video capture board with Motion JPEG, Includes Adobe
Premiere 4.2 Full Version
<A HREF="http://www.truevision.com/">Truevision Web Page</A>
MiroVideo DC30 PCI, complete non-linear video and audio editing for
Windows 95, Includes Adobe Premiere 4.2 Full Version
<A HREF="http://www.miro.com/">miro Web Page</A>
Azeena Vision 500 640x480 30 fps Motion JPEG PCI Capture Card
Up to 3:1 compression.
<A HREF="http://www.azeena.com/">Azeena Web Page</A>
Winnov Videum AV, Half size ISA card, composite and S-Video
input, claims to capture 352x240, 24 bit, AVI videos at 30
frames per second (must be compressed to fit across ISA bus - JFM)
<A HREF="http://www.winnov.com">Winnov Web Page</A>
Intel Smart Video Recorder III, a 32-bit PCI card that uses Indeo
video compression. Includes a composite (NTSC) video input and an
S-Video input, RCA and S-Video cables, Asymetrix Digital Video
Producer and Asymetrix WebPublisher.
<A HREF="http://www.intel.com/imaging">Intel Page</A>
U.S. Robotics markets the Bigpicture Video capture card and NTSC
camera for about $249.99 (7/22/97). The video capture card is a PCI
half card with a single RCA jack for the NTSC composite video in and a
+5 Volt, 1 Amp power output jack for the NTSC camera. The video
capture card uses the single Brooktree Bt848 chip, a complete video
capture system on a single chip.
Personally, I was impressed that they could get the entire video
capture system on a single chip. More information on the Bt848
can be found at:
<A HREF="http://www.brooktree.com/brooktree/html/pr_bt848.html">Brooktree Bt848 Press Release</A>
Bigpicture can capture NTSC composite video at 30 frames per second at 320x240
or 160x120 resolution.
Bigpicture also comes in versions with U.S. Robotics modems. The idea
is that this can be a PC video phone.
Bundled software includes Kai's Power GOO Special Edition, Asymetrix
Digital Video Producer to capture and edit video, VDONet's VDOPhone (trial
edition), and VDONet's VDOLive player.
MINI-REVIEW
I intalled the Bigpicture video capture system under Windows 95b (OEM
Service Release 2) on a 200 MHz Pentium with MMX, 32 MB RAM, two
Western Digital IDE hard drives (2GB and 5 GB), and a 12x CD-ROM.
The installation was difficult due to resource conflicts. At first
the video capture card appeared to conflict with the SupraExpress 336i
PnP modem in my PC. After reinstalling a few times, the video
capture card started to work, but the modem stopped working. A conflict
between the modem (an ISA card modem) and the COM1 serial port was
reported in the Windows 95 Device Manager (Control Panel | System |
Device Manager tab). I fixed this by disabling the automatic
settings on the modem and changing the IO address. I left the COM1
port (which I don't use) and the modem using the same IRQ (Interrupt
Request).
While the documentation provides some pointers on these conflicts, I found
the problem frustrating and difficult to fix although I am moderately
familiar with PC installation and configuration.
Once fixed, the camera and video capture card worked fine. My modem
seems to work fine. I can capture video and use the modem at the same
time.
U.S. Robotics
7770 North Frontage Road
Skokie, IL 60077-2690
<A HREF="http://www.usr.com/">http://www.usr.com/</A>
<A NAME="HDCapture">
<H3>Hard Drive Video Capture Issues</H3>
</A>
Digital video capture requires writing data to the PC hard disk
at sustained very high data rates. The higher the resolution and
quality of the digital video, the higher the data rate the hard disk
must handle.
1. Defragment the hard disk. This allows the PC to write the
digital video (the AVI file) to contiguous disk sectors without
stopping to skip the drive head over used regions.
2. Scan the disk and fix any bad sectors if possible.
3. Conventional hard drives pause the drive heads for thermal
recalibration which slows their ability to write data to the
hard disk. Special AV (Audio/Video) hard drives (which cost
more) disable the thermal recalibration during data writing.
This supposedly allows an AV hard drive to capture higher video
data rates. Note that you can capture video onto conventional
hard drives. People do this all the time. But for very high
end video capture, you may need a special AV drive.
<A NAME="NTCapture">
<H3>Video Capture Cards with Windows NT Drivers</H3>
</A>
The DPS (Digital Processing Systems) Perception ISA video capture card.
The DPS PVR-2500 Perception Video Recorder (PCI-bus)
for Intel and DEC Alpha Windows NT workstations. An optional
AD-2500 real time video capture daughter card adds component,
S-Video, and composite video inputs to this high-end product.
The AD-2500 is the actual capture card in this product which is
a "digital video disk recorder system".
The DPS HVR-2800 Hollywood Video Recorder (PCI and ISA). The PCI
version is available for both Intel and DEC Alpha Windows NT
workstations. The Hollywood is also a "digital video disk
recorder system", more than a simple video capture card.
DPS makes PC video products aimed at the studio and broadcast
production markets.
<A HREF="http://www.dps.com/">http://www.dps.com/</A>
The Truevision Targa 2000 video capture card.
<A HREF="http://www.truevision.com/">http://www.truevision.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="TV">
<H2>How to Create AVI Files from Television</H2>
</A>
To create an AVI file from your favorite television program, there
are two approaches.
Television is transmitted over radio frequency (RF) waves.
The NTSC, PAL, or SECAM composite analog television signals
are modulated onto high frequency radio waves to create the
familiar television channels. In the United States, television
channels 2 through 69 cover the range from 54 MHz to
806 MHz. An NTSC channel uses about 4 MHz of frequency
range.
Traditional analog Cable Television (CATV) works much the
same except that the RF is sent over coaxial cables instead of
the open air.
A device usually referred to as a tuner can demodulate the
television radio frequency signal and extract the NTSC, PAL, or
SECAM composite analog signal. Television sets, Video
Casette Recorders (VCR) and cable television set top boxes contain a tuner.
The easy way to turn your favorite television show into an
AVI is to record the show to a videotape using a VCR. The VCR
can output the composite analog video signal to a video
capture card in your PC (see the section on creating AVI from
composite analog video).
A number of companies market TV tuner cards for PC's. In this
case you can feed the television radio frequency (RF) signal
into the TV tuner card which will demodulate the NTSC, PAL, or
SECAM signal. Use an associated video capture card to convert
the demodulated composite analog video to an AVI files.
ATI Technologies, for example, markets a PC TV Tuner.
It is probably simpler to use a VCR than a PC TV Tuner card.
A VCR circumvents the often painful installation problems
with PC hardware.
<A HREF="#Top">Return to Top</A>
<A NAME="Win95">
<H2>Reinstalling Microsoft's Video for Windows in Windows 95</H2>
</A>
This requires the Windows 95 CD-ROM. One can either reinstall
Windows 95 (probably not what you want to do) or manually remove
Video for Windows and manually reinstall the files that make up
Video for Windows under Windows 95.
Truevision's Technical Support has a good note on how to do this.
Although it does not appear to be copyrighted, I felt uncomfortable
cutting and pasting it into the AVI Overview. The URL is
<A HREF="http://www.truevision.com/Support/vfwwin95.html">http://www.truevision.com/Support/vfwwin95.html</A>
<A HREF="#Top">Return to Top</A>
<A NAME="GETAM">
<H2>How to get Microsoft ActiveMovie 1.0</H2>
</A>
ActiveMovie is Microsoft's successor to Video for Windows.
ActiveMovie 1.0 is shipped with OEM Service Release 2 of Windows 95.
ActiveMovie 1.0 is also bundled with Microsoft Internet Explorer for
Windows 95 and Windows NT 4.0. ActiveMovie 1.0 is available for Windows
95 and Windows NT.
ActiveMovie 1.0 plays AVI, QuickTime, and MPEG files.
IF YOU DON'T HAVE OEM SERVICE RELEASE 2 of 95!
ActiveMovie 1.0 is incorporated in Internet Explorer. A full
install of Internet Explorer can be downloaded from Microsoft's
web site. Microsoft also provides a free download of just
ActiveMovie 1.0. Both can be downloaded from the Microsoft
Internet Explorer web site as described below:
<A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>
Click on Internet Explorer for 95 and NT 4.0 link to get to the
download area. There is a pulldown list of products. (6/6/97).
Select "Active Movie 1.0 for Windows 95 and NT 4.0" to get just
ActiveMovie 1.0
Click the "Next" button.
This brings up a page to select the language from another pulldown
list. Pick your language (e.g. U.S. English).
Click the "Next" button.
This brings up a list of links to download sites for amov4ie.exe
Dowload this executable and run. It installs Active Movie 1.0
<A HREF="#Top">Return to Top</A>
<A NAME="NT40">
<H2>Installing and Configuring AVI Codecs in NT 4.0</H2>
</A>
The Microsoft Windows NT 4.0 applications and operating systems
are configured through the NT Registry, which is similar to the
Windows 95 Registry. Although Windows NT 4.0 and Windows 95 share
a desktop user interface, there are some significant differences
between the NT 4.0 Registry and the Windows 95 Registry.
In NT 4.0, the 32 bit video codecs do not appear to be listed
in a [drivers32] section in the SYTEM.INI file. This differs from
Windows 95. The Video for Windows configuration information appears
to be stored almost exclusively in the NT Registry in NT 4.0.
The NT Registry can be viewed and modified through the Control
Panel or through the REGEDT32 Registry Editor. Use the Control
Panel unless you really know what you are doing.
You can view and change which audio and video codecs are installed
through the Multimedia icon in the Windows NT 4.0 Control Panel (in My
Computer). This works much the same as the Multimedia icon in the
Windows 95 Control Panel (in My Computer).
Double click on the Multimedia icon to launch the Multimedia applet.
Select the Devices tab within the Multimedia applet. This tab gives a
list of installed multimedia drivers including hardware device
drivers, MCI drivers, and audio and video codecs. It includes two
sections:
(cute icon)Video Compression Codecs
(cute icon)Audio Compression Codecs
Double-click on these to view the installed audio and video codecs.
There are buttons to Add.. or Remove... multimedia devices
including the audio and video codecs.
To Add a video codec, click the Add... button. This gives an Add
dialog box with a List of Drivers. You may select from a list of
drivers that the system knows about, such as "Cinepak", or select
"Unlisted or Updated Driver". If you need to use "Unlisted or Updated
Driver" you will need a directory on a floppy disk, CD-ROM, or your
hard drive containing the needed drivers and an INF (Setup Information
) file. Depending on what you are doing, the needed directory may be
on a floppy provided with a product, on the Windows NT installation
CD-ROM, or constructed manually by you or someone else. The INF file
provides directives for installing the driver including changes to the
Registry. Windows read the INF file and follows the directives.
You may need a different (NT specific) INF file to install under
Windows NT 4.0 than Windows 95.
The 32 bit video codecs are installed in the \WINNT\SYSTEM32
directory used for 32 bit drivers, analogous to the \WINDOWS\SYSTEM
directory in Windows 3.x
NOTE: Using the Remove... button to remove a codec does not
remove the codec files from the hard drive. Nor does the
codec disappear from the list of codecs displayed when
Add... is selected. Remove... appears to simply disable
the video codec so that it is not invoked. Use Add... to
enable the codec after Remove...
The other option to install a codec is to use an installation
program that will appropriately update the NT Registry and copy
the needed files to the correct directories in the NT file
system (such as \WINNT\SYSTEM32). In many cases, you can get
an install program from a Web site or other convenient source.
In this case, you do not need to use the NT Control Panel. The
install program does all of the work.
NT 4.0 appears to be able to use the same 32 bit video codecs as
Windows 95, for example Cinepak for Windows 32. Keep in mind that
device drivers for hardware are different between Windows 95 (which
uses VxD's) and NT 4.0. Only some parts of Windows 95 and NT 4.0 can
use the same code.
<A HREF="#Top">Return to Top</A>
<A NAME="FPS">
<H2>How to change frame rate of AVI files</H2>
</A>
You may want to change the frame rate of an AVI. For example, you
may want to convert a video captured at 30 frames per second (NTSC)
to 15 or 10 frames per second to reduce the size of the file. This
type of conversion throws away frames; it does not play the AVI in
slow motion.
Video editors usually contain this function.
For example, the free VidEdit video editor can convert the frame rate
of AVI files.
Select
Video | Convert Frame Rate ...
in VidEdit
For more on video editors, see <A HREF="#Edit">Video Editors</A>
<A HREF="#Top">Return to Top</A>
<A NAME="Edit">
<H2>How to edit AVI files:</H2>
</A>
Several applications exist to edit (cut, paste, etc.) AVI files.
Such applications are known as video editors. Sometimes such
digital video editors are called non-linear editors, in contrast to
traditional videotape or film based editing.
Video editors range from very simple applications to very sophisticated
applications.
<H3>Video Editor Features</H3>
Common video editor features include:
* cut, paste, and deleting video sequences
* selecting video codec and compression settings
* selecting audio codec and compression settings
* converting video frame rate
* converting audio sampling rate
* adjusting synchronization of audio and video
* converting color depth of video (24, 16, or 8 bit usually)
* converting to NTSC or PAL safe colors
* adding transitions and other special effects
* applying image processing filters to video
* adding text and subtitling
* much more in high end video editors....
<H3>VidEdit</H3>
The full 16 bit (Windows 3.x) Video for Windows from Microsoft (not
the "Run Time") shipped with a simple video editing program VidEdit.
VidEdit can cut, paste, concatenate, add sound, and do many other
things to AVI files. VidEdit can be downloaded from a number of
sites on the Internet.
WARNING: While VidEdit, a 16 bit Windows application, works under
Windows NT and Windows 95, I found that it cannot see the Video for
Windows codecs distributed with Microsoft NetShow 2.0 (such as the
Microsoft MPEG-4 codec, Vivo H.263, etc.). Other editors such as
Asymetrix Digital Video Producer (DVP) CAN see these compressors.
By "see", I mean that none of the NetShow specific codecs is in the
list of codecs under Video | Compression Options... in VidEdit.
This means that you cannot create an AVI using the NetShow codecs from
within VidEdit; you need to use another video editor.
VidEdit does recognize the following 32 bit Video for Windows codecs:
Intel Indeo (R) Video Interactive [32]
Intel Indeo (R) Video R3.2 [32]
Intel Indeo Raw R1.2 [32]
Microsoft Video 1 [32]
Cinepak Codec by Radius [32]
Indeo video 5.0 [32]
As far as I can tell Microsoft is not currently distributing VidEdit.
However, a file winvid.zip is bouncing around the Net. This file
includes the Video for Windows run time along with a number of Video Tools
including VidEdit and VidCap (Microsoft's video capture tool).
Disclaimer: I am not certain what the legal restrictions on
VidEdit or winvid.zip are.
<H4>Greg Hughes Home Page </H4>
winvid.zip is available from Greg Hughes home page:
<A HREF="http://www.public.iastate.edu/~gregngng/">http://www.public.iastate.edu/~gregngng/</A>
Note that I found this site hard to connect to although I was eventually able
to download winvid.zip
<H4>EarthStation 1 Archive of Windows Freeware and Shareware</H4>
Microsoft's VidEdit Video Editor is also available at:
EarthStation1: Recommended Shareware and Freeware Page
<A HREF="http://www.attention.net/wandarer/software.html">http://www.attention.net/wandarer/software.html</A>
The preceding link now contains links to mirror sites for the EarthStation 1
archive.
The LaJolla Earthstation 1 mirror site is:
<A HREF="http://earthstation1.simplenet.com/software.html">http://earthstation1.simplenet.com/software.com</A>
Once you have reached the EarthStation 1 page, click on the Graphics
link to jump to the Graphics Editors section. VidEdit is in this
section. Scroll down a few pages to find VidEdit or use the find string
on this page feature of your Web browser.
Click to download VidEdit.
<H4>Alchemedia Inc. Shareware Page</H4>
The Alchemedia Inc. shareware page contains a file videdit.zip with
VidEdit.
<A HREF="http://www.alchemediainc.com/sharewar.html">http://www.alchemediainc.com/sharewar.html</A>
<H3>Personal AVI Editor</H3>
FlickerFree markets an inexpensive/shareware avi editor for
Windows called Personal AVI Editor.
Personal AVI Editor ($49.95 + Shipping and Handling)
<A HREF="http://www.flickerfree.com/index.html">http://www.flickerfree.com/index.html</A>
<H3>Corel Lumiere Suite for 32-bit Windows</H3>
Lumiere is a new contestant in the PC video editing game. (May, 1997)
Corel Lumiere Suite for 32-bit Windows
List Price on Corel Web Site: $89 (US)
Corel Corp.
Ottawa, Ontario, Canada
(800) 772-6735
(613) 723-3733
FAX: (613) 728-9790
<A HREF="http://www.corel.com/">http://www.corel.com/</A>
<A HREF="http://www.corel.com/products/lumiere/index.htm">Corel's Lumiere Web Page</A>
<H3>Ulead Media Studio Pro</H3>
Ulead's Media Studio Pro ( around $300 )
<A HREF="http://www.ulead.com/">http://www.ulead.com/</A>
<H3>Asymetrix Digital Video Producer</H3>
Asymetrix's Digital Video Producer (DVP)
Typical Retail Price: $69.95 (Sept. 1997)
A simple digital video capture and editing program for Windows 95 and
Windows NT. DVP is bundled with many video capture cards and is
also available retail. More information is available at the Asymetrix
Web site.
<A HREF="http://www.asymetrix.com/">http://www.asymetrix.com/</A>
<H3>Adobe Premiere</H3>
Adobe Premiere is the reigning king of desktop video editing
programs. Versions exist for both the PC/Windows and the
Macintosh.
Adobe Systems Premiere ( around $500 )
<A HREF="http://www.adobe.com/">http://www.adobe.com/</A>
<H3>SpeedRazor</H3>
in:sync produces SpeedRazor Mach 3.51 (5/16/97), a professional
non-linear editing (NLE) video editor for Windows NT for the
Broadcast industry. This can handle AVI as well as other formats.
Speed Razor (not cheap)
<A HREF="http://www.in-sync.com/">http://www.in-sync.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="Wave">
<H2>Editing and Converting WAV files</H2>
</A>
AVI and WAV files are closely related. WAV files are the sound file
format, and frequently provide the source for the sound tracks in an
AVI file.
<H3>CoolEdit (PC) </H3>
A good shareware sound editor and sound file format converter is
Syntrillium Software's CoolEdit (Cool96) for Windows 3.1 and Windows
95. This supports many common sound file formats such as Apple's
.aiff and Next/Sun .au files.
<A HREF="http://www.syntrillium.com/10/index.htm">http://www.syntrillium.com/10/index.htm</A>
<H3>Macromedia's SoundEdit16 (Macintosh)</H3>
Macromedia markets a sound editor for the Macintosh called
SoundEdit16 + Deck II. SoundEdit can open and save in WAV
format. For further information on SoundEdit, see the
Macromedia Web site:
<A HREF="http://www.macromedia.com/">http://www.macromedia.com/</A>
<H3>Sound Forge</H3>
Sonic Foundry markets a digital sound editor for Windows called
Sound Forge 4.0 (5/16/97) Sound Forge includes support for importing
AVI video and editing the sound to synchronize with specific frames in
the AVI file.
<A HREF="http://www.dg.co.il/Forge/forge.htm">http://www.dg.co.il/Forge/forge.htm</A>
<H3>SpeedRazor (Windows NT 3.51 and 4.0) </H3>
in:sync produces SpeedRazor Mach 3.51 (5/16/97), a professional
non-linear editing (NLE) video editor for Windows NT for the
Broadcast industry. SpeedRazor can read and write WAV audio files.
It has sophisticated multi-track stereo audio editing and mixing
features.
Speed Razor (not cheap)
<A HREF="http://www.in-sync.com/">http://www.in-sync.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="Output">
<H2>How to output an AVI file to videotape:</H2>
</A>
AVI files generated with a video editor such as Premiere or a 3D
Animation program such as Caligari TrueSpace can be output to
videotape (e.g. a VHS tape) using a hardware device known as a scan
converter. A scan converter converts the VGA signal intended for
the computer monitor into an video signal, typically NTSC or S-Video.
The video signal can then be input into a videotape recorder such as a
VHS VCR.
A scan converter may be a small box which resides between the computer
and the monitor. It may be integrated into a video card. For example, ATI's
new 3D XPRESSION+PC2TV video card includes NTSC and S-Video output as well
as output to a conventional computer monitor.
Configure the PC graphics in one of the modes supported by the scan conversion
hardware and play the AVI file in full screen mode.
Some manufacturers of scan converter (or similar) hardware:
<A HREF="http://www.atitech.com/">ATI Web Page</A>
<A HREF="http://www.videologic.com/">VideoLogic Web Page</A>
PC Video Conversion claims to make a high quality scan converter
called HyperConverter that converts from SuperVGA to broadcast quality
NTSC/PAL video. Less than $5000.
<A HREF="http://www.pcvideo.com/">PC Video Conversion</A>
<A HREF="#Top">Return to Top</A>
<A NAME="VideoChips">
<H2>PC Video Chips and Cards</H2>
The current (6/21/97) generation of graphics controllers for PC's
incorporate a number of hardware features to improve playback of
video, including AVI. Video acceleration features have become
standard in most chips. As a consequence video chip and card
marketing has increasingly emphasized 3D graphics acceleration
features in an effort to differentiate chips and cards from different
manufacturers. These video acceleration features include hardware
color space conversion and hardware scaling of video.
<H3>Color Space Conversion</H3>
Many video standards such as Indeo, CinePak, and MPEG operate in
a luminance - chrominance color space such as YUV, YCbCr, etc. Computer
monitors use RGB (Red/Green/Blue). The decoded video signals must
be converted from YUV to RGB for display. Most video chips now provide
dedicated hardware for this color space conversion.
<H3>Hardware Scaling</H3>
Displaying a video in a windows larger (or smaller) than the encoded
aspect ratio involves duplication of pixels. Complex filtering
operations can reduce or remove blocking artifacts when a video is
scaled up in size. If scaling is performed in software using the
PC's CPU, the scaling will absorb many CPU cycles, possibly resulting
in degraded video playback depending on the speed of the CPU. Most
video chips now provide dedicated hardware for scaling video.
<H3>Video Cards</H3>
PC video cards are printed circuit boards. Today (6/23/97), virtually
all video cards are PCI cards, with a PCI bus connector along one side
of the circuit board. The video card will have at least a DB-15
connector for the VGA cable to the computer monitor. Video cards have
a chip variously known as a graphics controller, graphics accelerator,
video chip, video controller, or something similar. The graphic
controller is the heart and the brain of the video card.
The card has one or more memory chips forming the video memory where
the images are stored. The video memory is known as a framebuffer.
Video cards have a RAMDAC (Random Access Memory Digital to Analog
Converter) which convertes the digital image stored in the framebuffer
into an analog signal for the RGB monitor. PC video cards have a ROM
(Read Only Memory) with the VGA BIOS used during the PC boot process.
There is also a clock that provides the timing signals for the entire
board.
Many video cards have a feature connector allowing an
auxiliary card to be added to the main video card. The auxiliary
card adds additional features such as hardware MPEG decoding.
Although AVI should be independent of the video chips and cards used in
a PC, there can sometimes be problems or technical issues specific
to a particular chip. By far the most common PROBLEM is a subtle
bug in a video chip driver or a subtle conflict between a video
chip driver and another driver or piece of software on the PC. Downloading
and installing the latest video driver from the chip or card maker's
Web site is a frequently successful fix for these problems.
ALSO, Windows 3.x and Windows 95 use different Device Drivers than
Windows NT 3.51 or Windows NT 4.0 Windows 3.x and 95 use Device
Drivers known as VxD's for low-level hardware access. NT uses its
own device drivers. If you use a video card or other hardware
on an NT machine, you need to be sure to use the NT drivers!
A number of video card companies such as Diamond Multimedia and
STB that buy or license the controller chips from other companies such
as S3 frequently write video card/chip device drivers with additional
features or better quality than the device drivers provided by the
chip company.
Links to video chip and video card makers follow:
<A HREF="http://www.atitech.com/">ATI Technologies</A>
<A HREF="http://www.diamondmm.com/">Diamond Multimedia</A>
<A HREF="http://www.stb.com/">STB Systems Inc.</A>
<A HREF="http://www.s3.com/">S3 Incorporated</A>
<A HREF="http://www.tseng.com/">Tseng Laboratories</A>
<A HREF="http://www.trid.com/">Trident Microsystems</A>
<A HREF="http://www.matrox.com/">Matrox</A>
<A HREF="http://www.nine.com/">Number Nine</A>
<A HREF="http://www.cirrus.com/">Cirrus Logic</A>
<A HREF="http://www.rendition.com/">Rendition</A>
<A HREF="http://www.nvidia.com/">nVidia</A>
<A HREF="http://www.3dfx.com/">3dFX</A>
<A HREF="http://www.3dlabs.com/">3dLabs</A>
A fairly comprehensive list of video chipsets, video cards, and
miscellaneous other information may be found at:
<A
HREF="http://www.heartlab.rri.uwo.ca/vidfaq/chipset.txt">http://www.heartlab.rri.uwo.ca/vidfaq/chipset.tx
t</A>
<A NAME="NTVideo">
<H3>Video (Display) Cards with Windows NT Drivers</H3>
</A>
Unfortunately, Windows 95 and Windows NT use different
device drivers for the same hardware. While Windows 95
drivers are available for the vast majority of PC hardware, Windows
NT drivers are harder to come by. Video cards with
NT drivers are listed below:
Number Nine Revolution 3D (Windows NT 4.0 Drivers)
<A HREF="http://www.nine.com/">http://www.nine.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="ToNTSC">
<H2>How to make AVI NTSC (or PAL) Safe</H2>
</A>
AVI files can represent colors that are not supported by the NTSC or
PAL analog video standards. These colors correspond to
synchronization and control signals in the NTSC or PAL video. Such
AVI files cause problems if translated to NTSC or PAL video.
Equilibrium's DeBabelizer Pro for Windows 95 and NT 4.0 reads and
writes about 90 common and not so common image file formats as well
as AVI files. In addition to translating between all of these formats,
DeBabelizer Pro has a number of image processing functions.
DeBabelizer Pro can remove colors from AVI files that are excluded by
NTSC or PAL to create an NTSC or PAL safe AVI file.
Equilibrium has a demonstration version of DeBabelizer Pro on its
Web site. This is a demonstration version. The demonstration version
adds the words Equilibrium (very large words) to all images and video that
it processes.
DeBabelizer Pro ($595 Suggested Retail Price)
Equilibrium
475 Gate Five Road, Suite 225
Sausalito, CA 94965
1(800)524-8651 or (415) 332-4343
<A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="BinEd">
<H2>Binary File Editors for Viewing and Editing AVI Files</H2>
</A>
Occasionally, you may need to view or edit an AVI file at the
down and dirty byte level. Use a binary file editor for this.
Many binary file editors, including quite a number of free
ones, exist.
<H3>HexEdit</H3>
Harmony Systems offers HexEdit, a free binary editor for Windows NT
and 95, that can be downloaded from their web site:
<A HREF="http://www.hsys.com/hex.htm">http://www.hsys.com/hex.htm</A>
<H3>SimTel Archives</H3>
The SimTel collection of ms-dos software includes a section with
many binary file editors. There are many mirrors of the SimTel
site. One is:
<A HREF="http://oak.oakland.edu/simtel.net/msdos/binaryed.html">http://oak.oakland.edu/simtel.net/msdos/binaryed.html</A>
<H3>HEdit 2.1</H3>
Trial versions of HEdit, a binary file editor, both for Windows 95/NT and
Windows 3.1 are available at:
<A HREF="http://www.yurisw.com/hedit/">http://www.yurisw.com/hedit/</A>
<H3>GNU Emacs (Unix)</H3>
The GNU Emacs editor from the Free Software Foundation has a hexadecimal
mode. The GNU Emacs command to invoke this mode is hexl-mode.
In GNU Emacs, type the META Key (ESC-x)
Type: hexl-mode at the command prompt.
The current buffer will switch into (Hexl) mode.
On my Unix system (Sun), I found the Hexl mode a little sluggish
at times. Sometimes I had to wait several seconds to get a response
to scrolling or jumping to the start of the AVI file. Emacs modes
are usually implemented in interpreted LISP; this may be the reason.
<A HREF="#Top">Return to Top</A>
<A NAME="Style">
<H2>Effective Use of Video on a Web Page</H2>
</A>
The limited bandwidth of the Internet is the bane of effective
use of video on a Web page. Video clips on a web page need to
be small. Even then downloading a video clip can take several
minutes, hours over a 28.8 modem to someone's home. The longer
the wait, the better the video should be!
FIRST AND FOREMOST, tell a story!!! A video clip without a
story is usually boring. A story can be told in 30
seconds, the duration of many television advertisements. Some
stories can be told in less time. Because of the bandwidth
limitations of the Internet, even 30 seconds is a big file, several
megabytes.
Characters, human personalities, sell. Sex sells. Violence
sells. Talking heads (your company's CEO saying "Welcome to our
great Website") tend to be boring.
USE AUDIO! Sound makes a world of difference. Use base, lower
frequencies in the soundtrack. Human beings are more sensitive to
low frequency sound. A soundtrack with more base tends to sound "better" to
most people. Most computer speakers are very cheap and don't
reproduce high frequencies well anyway. You will likely cheat
on higher frequencies to reduce bandwidth use by the audio as well.
TECHNICAL ISSUES
For widest distribution and ease of viewing:
Provide video clips as AVI using the CinePak codec. For maximum
distribution, also provide flattened QuickTime files again using
the CinePak codec; these can be played on both PC's with QuickTime
for Windows and on Macs. Provide MPEG-1 clips as well.
Give the size of the video file in KBytes or MBytes in text as part of
the link to the video file. This way the viewer can estimate how long
it will take to download the file if they wish to.
If you use less standard codecs or file formats to get smaller file
sizes, provide links to download the needed viewers or codecs.
Provide the AVI's with less standard codecs (e.g. VDOWave from VDONet)
in addition to CinePak versions. Don't omit the CinePak versions.
Video encoded at less than 15 frames per second usually looks very
jerky to human viewers, like a slide show rather than smooth motion.
The transition to smooth motion occurs somewhere in the range
15-17 frames per second. If motion is limited, frame rates below
15 may look acceptable, although often not.
Image resolutions should be 320x240 or larger. In some cases, smaller
sizes such as 160x120 may work. In general, most viewers find sizes
smaller than 320x240 too small.
DO NOT COMPRESS the video so much that unnatural artifacts such as
blocking occur. In general loss of fine details appears natural
to human viewers. This corresponds to changes in natural viewing
conditions such as viewing an object at a distance or in poor lighting.
Unnatural artifacts such as visible 4x4 pixel blocks or 8x8 pixel
blocks jump out at most viewers and destroy the illusion of a natural
image.
For AVI, sound codecs aren't very standard. Avoid using audio compression,
especially more exotic codecs. ADPCM may be ok. Again, if you use
an audio codec, make sure to include a link on your website to
download the codec. If possible, provide a version of the AVI without
special audio codecs (and CinePak video).
Uncompressed audio takes space. You ALMOST NEVER need to use the
44 KHz sampling rate. At most, use 22 KHz sample rate. Many people
cannot hear the frequencies above 22 KHz. People who can are
not very sensitive to these frequencies.
See if the soundtrack works ok at 11 KHz 8 bit Mono (not Stereo).
Use this low quality setting if you can get away with it (often this
won't work).
NOTE: You can select audio and video codecs, convert the frame rate,
convert the audio sampling rate, and resize the video using video
editor applications such as Adobe Premiere or VidEdit. See the
section on video editors:
<A HREF="#Edit">Video Editors</A>
TO REPEAT:
TELL A STORY!!! Many video clips in current (7/20/97) use on Web
sites are very short, a few seconds, and really don't tell a story.
These clips are boring! So are most talking heads (I have one on
my Web site and it IS boring). Movie trailers, short television
advertisements, etc. illustrate what is needed. If you don't have
a story, think seriously about dropping the video.
See elsewhere in this overview for information on authoring AVI files
and converting to QuickTime and MPEG-1.
<A HREF="#Top">Return to Top</A>
<A NAME="Web">
<H2>How to embed an AVI file in a Web Page:</H2>
</A>
<H3>A Simple Hypertext Link</H3>
The simplest approach is to use the anchor tag
< A HREF="http://www.somplace.com/movie.avi" > A Movie </A>
In this instance, clicking on the link will cause the AVI file
to be downloaded. The browser recognizes that the AVI file is
not an HTML document. Typically, the browser invokes a helper
application that can play the AVI file, such as Media Player under
Windows 3.1. The movie will appear in a separate window. The browser
may have a plug-in that provides support for AVI, in which case the
video window will appear embedded in the HTML page.
Web browsers such as Netscape and Internet Explorer know how to handle
a file through a Content (MIME) type reported by the Web server. For
example, the MIME type for AVI files is video/avi. The browser may
contain a built-in decoder for this MIME type. For example, JPEG and
GIF still image compression decoding and viewing is built into
Internet Explorer and Netscape. The browser can be configured to
invoke a helper application such as Media Player. Helper applications
are invoked as separate applications with their own windows.
The browser can be configured to use a "plug-in" instead of a helper
application. A "plug-in" is a software component that extends the
capabilities of the browser. The "plug-in" handles input and presents
output embedded within the page. For example, a video plug-in's
decoded video appears within the page, not as a floating window.
In the case of a simple hypertext link, a browser with an AVI
plugin will jump to a blank page with the AVI video appearing in
a rectangle in the upper left corner of the blank page. The video
is not embedded in the page with the hypertext link. It is
necessary to use the Netscape EMBED HTML tag (see below) to produce a video
embedded in the page. Using the EMBED tag is different from using
a simple anchor A tag (hyptertext link).
If the browser is unable to handle a MIME type (no built-in capability
exists and no helper application or plug-in is specified), the browser
will present a dialog box asking the user to select an application,
save the file to disk, or cancel the operation.
In both Internet Explorer and Netscape, the user can configure the browser
to use helper applications or plug-ins as desired.
Netscape now provides a Netscape plug-in known as LiveVideo to play
AVI files. This plug-in should be installed in the \NETSCAPE\PLUGINS
directory. For the Windows 3.1 (16 bit) version of Netscape this
plug-in is named NPAVI16.DLL.
Digigami provides a plug-in for Netscape Navigator (Windows) called
CineWeb that adds playback of AVI, QuickTime .MOV, and MPEG files.
The URL is:
<A HREF="http://www.digigami.com/CineWebPress.html">http://www.digigami.com/CineWebPress.html</A>
<H3>Microsoft Internet Explorer HTML Syntax</H3>
Microsoft's Internet Explorer 2.0 added attributes to the IMG tag that
allow for inline video (an AVI file actually embedded in the page
rendered by the Web browser). These are the DYNSRC, CONTROLS, START, and
LOOP attributes. For example,
< IMG DYNSRC="movies/movie.avi" CONTROLS SRC="movies/movie.gif" >
This will embed the movie in the page with some simple playback controls
for the user to select. Browsers that do not support the DYNSRC attribute
will use the SRC attribute and display the image movie.gif instead.
Internet Explorer will ignore the SRC attribute.
In the Microsoft spirit of a new API every week, Microsoft has added
some new tags in Internet Explorer 3.0 and is discouraging use of the
IMG tag and DYNSRC attribute.
In Internet Explorer 3.0, Microsoft has added support for the Netscape
EMBED tag, see the section on HTML for Netscape's LiveVideo below.
Microsoft has also added a Microsoft specific OBJECT tag which does
essentially the same things as EMBED and is overtly linked with
Microsoft's OLE/COM/ActiveX environment. Naturally Microsoft
recommends using the OBJECT tag.
Unlike Netscape Navigator, Internet Explorer on Windows does not use
plug-ins, either from Micrsoft or 3rd parties, to view AVI. Rather it
invokes either the Video for Windows media player or the ActiveMovie
ActiveX control. If necessary, Internet Explorer is able to effectively
embed the applications in the Web page.
Microsoft has a copyrighted white paper "File References on HTML
Pages" on their Web site that provides a detailed description of
referencing AVI files on HTML pages for viewing with Internet Explorer.
<A HREF="http://www.microsoft.com/devonly/tech/amov1doc/amsdk008.htm">
http://www.microsoft.com/devonly/tech/amov1doc/amsdk008.htm</A>
Since Microsoft reportedly has $9 billion in cash for acquisitions,
lawyers, and other fun - and I don't, I will refrain from simply
incorporating the document here.
<H3>Netscape LiveVideo HTML Syntax</H3>
If you hunt around the Netscape Web site you will find the following
detailed specification of the HTML syntax for embedding an AVI file
in a Web page for use with the LiveVideo Plug-in.
LIVEVIDEO SYNTAX
DESCRIPTION
LiveVideo plays video files in AVI format. (Currently for Windows 95 and
NT only.)
HTML SYNTAX
<EMBED SRC=[URL] AUTOSTART=[TRUE|FALSE] LOOP=[TRUE|FALSE] WIDTH=[# PIXELS]
HEIGHT=[# PIXELS] ALIGN=[TOP|BOTTOM|CENTER|BASELINE|LEFT|RIGHT|TEXTTOP
MIDDLE|ABSMIDDLE|ABSBOTTOM]...>
EMBED - Use this tag to place AVI movies into your Web document.
SRC=[URL] - The URL of the source AVI file.
AUTOSTART=[TRUE|FALSE] - Setting the value to TRUE allows the AVI movie to begin
playing automatically when the Web page is loaded. The default is FALSE.
LOOP=[TRUE|FALSE] - Setting the value to TRUE allows the AVI movie to play
continuously until the user clicks on the movie to stop it from playing or goes to
another page. The default is FALSE.
WIDTH=[# PIXELS] - Use this attribute to display the width of the AVI movie.
HEIGHT=[# PIXELS] - Use this attribute to display the height of the AVI movie.
Standard sizes for movies are 90x120, 120x160, 180x240, and 240x320 (all size
references are HEIGHT x WIDTH). These are all standard sizes using the 4:3 aspect
ratio.
ALIGN=[TOP|BOTTOM|CENTER|BASELINE|LEFT|RIGHT|TEXTTOP|MIDDLE|ABSMIDDLE|ABSB
OTTOM]
- This attribute tells Netscape Navigator how you want to align text as it flows
around the AVI movie. It acts similarly to the IMG tag.
JAVA AND JAVASCRIPT FUNCTIONS
play() - Starts playing the source file at the current location.
stop() - Stops the currently playing video.
rewind() - Rewinds the currently loaded video.
seek(frame-number) - Sets the current frame of the video to the given frame
number.
<A HREF="#Top">Return to Top</A>
<A NAME="Mail">
<H2>Sending AVI by E-Mail</H2>
The original Internet e-mail system was designed for sending
purely text messages using 7-bit ASCII codes (byte values from
0 to 127). Binary files such as AVI can include non-printing
7-bit ASCII control codes and values higher than 127. These
cause problems.
There are two main ways to transfer binary files such as AVI
by e-mail (and also the Network News system which is derived
from e-mail). The older method is UUENCODE. UUENCODE is
a utility that translates binary files into printing 7-bit
ASCII codes that can be sent safely by e-mail. Simply
include the uuencoded file in the body of the e-mail
message.
The modern method is to use MIME, the Mulipurpose Internet
Mail Extensions. This is a standard for adding attachments
to Internet e-mail, including binary files such as AVI.
See the section on <A HREF="#MIME">MIME</A> for more information.
More modern e-mail software include built in support for
uuencode and MIME.
<H3>Microsoft Internet Mail</H3>
In Microsoft's Internet Mail (included in Windows 95 OSR2 for
example), click New Message to generate a new e-mail message.
Select Insert | File Attachment to add an attachment, for example
an AVI file.
Select Format | Settings... to choose UUENCODE or MIME. Internet
Mail defaults to MIME. One can also select UUENCODE.
Internet Mail automates the binary file attachment process.
<A HREF="#Top">Return to Top</A>
<A NAME="MIME">
<H2>MIME types of AVI</H2>
</A>
MIME stands for Multipurpose Internet Mail Extension. This is a
mechanism that was developed to support multimedia and other file type
attachments to Internet e-mail. MIME defines MIME types that identify
the data type of the attachment. The World Wide Web uses MIME types
to identify the data type of files on Web sites.
A MIME type consists of a type/subtype, for example
image/jpeg
for JPEG images.
The MIME specification (IETF RFC 2046) specifies a type of video for
video images. The specification defines video/mpeg as the MIME type
for MPEG video. Beyond this, the MIME specification (IETF RFC 2048)
specifies a mechanism for registering MIME types with the Internet
Assigned Number Authority (IANA). As of 5/16/97, the following
video subtypes were registered with IANA:
video/mpeg
video/quicktime
video/vnd.vivo
video/vnd.motorola.video
video/vnd.motorola.videop
Thus, AVI has never been officially registered with IANA. To view
the complete list of registered MIME types:
<A HREF="http://www.isi.edu/in-notes/iana/assignments/media-types/media-types">http://www.isi.edu/in-notes/iana/assignments/media-types/media-types</A>
More than one MIME type appears to be used in practice for AVI files.
MIME types used for AVI:
video/avi
video/msvideo
video/x-msvideo
Note that according to the MIME specification the prefix "x-" indicates
an unregistered, experimental MIME type.
For extensive information on MIME, visit The MIME Information Page at:
<A
HREF="http://www.fwb.gulf.net/~dwsauder/mime.html">http://www.fwb.gulf.net/~dwsauder/mime.html</
A>
<A HREF="#Top">Return to Top</A>
<A NAME="HTTPD">
<H2>Configuring Web Servers to Handle AVI Files</H2>
</A>
Web servers are configured to send a MIME type to Web browsers to indicate
what to do with a file on the Web site that the browser is viewing.
For example, the MIME type image/gif indicates to a browser that it
is viewing a GIF file. Web servers must send the AVI MIME type(s) to
Web browsers for files installed on the Web site.
There are many Web servers. Probably many are automatically configured
to send a MIME type for AVI files (files with the extension .avi).
The folowing explains how this configuration is done for some of the
more popular Web servers.
<H3>Apache httpd</H3>
The free Apache httpd Web server is one of the most popular (perhaps the
most popular) Web server in use (May, 1997). This is a free implementation
of the httpd daemon for Unix machines. Apache is frequently run on
Sun workstations used as Web servers.
By default, Apache httpd looks in a configuration file httpd.conf for
directives that configure Apache. One of these directives is
AddType
AddType video/avi .avi
The example above would configure the Apache Web server (the httpd Unix
daemon) to send the MIME type video/avi to a Web browser for files with
the file extension .avi on the Web site.
The Apache httpd daemon includes a command line option -f <file-spec>
to override the default httpd.conf file name and file location. The Web
administrator can use this to set up an alternative configuration file.
Apache allows users to add a file .htaccess in the root directory of
their Web site which contains directives such as AddType. In this way
individual users may add or override the configuration of the Web
server. For example, my Web site did not send the x-world/x-vrml MIME
type for .wrl (VRML) files. Netscape with Live3D expected to see this
MIME type for VRML "worlds". I created a .htaccess file with
addtype x-world/x-vrml .wrl
With this, my browser would correctly view VRML files. The same could be
done with AVI files.
For further information on Apache, see the Apache Web site:
<A HREF="http://www.apache.org/">http://www.apache.org/</A>
<H3>CERN (or W3C) httpd</H3>
The CERN httpd is similar to Apache. The CERN httpd defaults
to looking in a configuration file /etc/httpd.conf The configuration
file contains configuration directives. One of these is
AddType
AddType .suffix representation encoding [quality]
For example:
AddType .html text/html 8bit 1.0
Extensive information on the CERN httpd web server, including a
user manual, is available at:
<A HREF="http://www.w3.org/Daemon/">http://www.w3.org/Daemon/</A>
<H3>NCSA HTTPd</H3>
The NCSA (National Center for Supercomputer Applications at my
alma mater, the University of Illinois at Urbana-Champaign) HTTPd
web server is similar to Apache and CERN.
NCSA HTTPd looks in a resource configuration file
conf/srm.conf (srm for Server Resource Map)
You can add AddType configuration directives to this configuration
file to add new MIME types or override the default MIME types
used by NCSA HTTPd.
AddType type/subtype ext1 ext2 ... extn
For example:
AddType text/plain txt doc
or
AddType video/avi avi
Extensive information on NCSA HTTPd is available at:
<A HREF="http://hoohoo.ncsa.uiuc.edu/">http://hoohoo.ncsa.uiuc.edu</A>
<H3>Microsoft Internet Information Server</H3>
Microsoft Internet Information Server is a server providing
HTTP (WWW), FTP, and Gopher services for Windows NT 4.0
Server. IIS handles the mapping from file extensions to
MIME types through the Windows NT System Registry.
To view and modify the MIME map:
1. Run the Windows NT Registry Editor Regedt32.exe
2. Look in the Windows NT Registry Key (Folder):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters\MimeMap
3. The MimeMap Key contains a series of Registry Values (entries) of form:
< mime type > , < filename extension > ,, < gopher type >
4. On my IIS server, the sole Registry Value (entry) for avi is:
video/x-msvideo,avi,,>:REG_SZ:
:REG_SZ: identifies a text string in the Registry editor.
The IIS server will send the MIME type video/x-msvideo for
files with the extension AVI.
IIS also uses the entries:
video/x-ms-asf,asf,,5:REG_SZ:
video/x-ms-asf,asx,,5:REG_SZ:
for the Microsoft Active Streaming Format files.
5. IIS defaults to treating files as vanilla binary files if they
are not explicitly listed in the MIME Map.
6. To add a new MIME type, in the Registry Editor
- Select Add Value ... from the Edit menu.
- Create a Registry Value of type REG_SZ (for a string)
- Enter the MIME type information as above as the
NAME of the Registry Value.
- Leave the string blank.
<H3>Netscape Enterprise Server 3.0</H3>
Edit the mime.types file in the server's config directory.
This will contains lines of the form:
type=video/x-msvideo exts=avi
These can also be of the form:
type=video/x-msvideo exts=avi,vid,vvv
when multiple file extensions map to the same MIME type.
The server reads this file to associate the MIME type video/x-msvideo
with files with the file extension avi.
The Netscape help site is:
<A HREF="http://help.netscape.com/">http://help.netscape.com/</A>
This includes many articles on the Netscape server including a
discussion of MIME types and the mime.types file.
<A HREF="#Top">Return to Top</A>
<A NAME="Java">
<H2>AVI and Java</H2>
</A>
Plans for Java include a collection of Java Media and Communications
API's (Application Programmer's Interfaces). These include the Java
Media Framework (JMF for short). The first part of JMF is the Java
Media Player, an API for synchronization, control, processing and
presentation of compressed streaming and stored timed media including
video and audio. A public specification for the Java Media Player has
been released. According to this the Java Media Players will be
designed to support many media types including AVI. A beta release of
the JMF software is scheduled for the second quarter of 1997 and may
be happening as of 5/15/97 (some rumors at least although I have not
seen the software).
For further information on Java Media Framework, see:
<A HREF="http://java.sun.com/products/java-media/jmf/index.html">
http://java.sun.com/products/java-media/jmf/index.html</A>
For further information on Java, see the Java site:
<A HREF="http://java.sun.com/">http://java.sun.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="VRML">
<H2>AVI and VRML</H2>
</A>
The Virtual Reality Modeling Language (VRML, often pronounced
'vermal') is the file format standard for 3D multimedia and shared
virtual worlds on the Internet.
VRML supports a "node" known as a MovieTexture. This allows a video (or
movie) to be mapped onto the surface of an object. A MovieTexture node
is referenced by the texture field of an Appearance node. Each object has
an Appearance node.
The VRML MovieTexture node includes a url field. The url field, as the
name suggests, is the URL (Uniform Resource Locator) of a video file
to map onto the surface of the VRML object. The VRML 2.0 specification
requires that this video file must be in either MPEG-1 Systems (audio and
video) or MPEG-1 video only format. AVI is not directly supported.
It is necessary to convert an AVI file to MPEG-1 format to use the AVI file
with VRML. This is VRML 2.0 VRML 97 may be different.
For further information on VRML, see the VRML Consortium Web Site.
<A HREF="http://www.vrml.org/">http://www.vrml.org/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="NS">
<H2>Configuring Netscape Navigator 3.01 to Display AVI Files</H2>
</A>
The following remarks apply to Netscape Navigator 3.01 for
Windows 3.1, Windows 95, and Windows NT 4.0.
Netscape Navigator displays .AVI files either through a helper application
such as the Microsoft Media Player or a Netscape Plugin that supports
AVI playback, such as the Netscape npavi16.dll and npavi32.dll plugins.
A helper application is a separate application, executable, that is
invoked by the Web browser. The helper application runs as a separate
process with its own window or windows. The helper application is not
tied to the Web page.
A Netscape plugin is a dynamic link library that extends the
capabilities of the Netscape Navigator. Typically the plugin will
receive control over a region of the Web page displayed by the
browser and display its output in that region. The output appears to
be embedded in the Web page.
To view and configure helper applications, select the General Preferences
item from the Options menu of Netscape Navigator. Select the Helpers tab
of the General Preferences. Helpers lists registered File types (MIME
types), associated actions, and file extensions.
Options | General Preferences | Helpers
A File Type is a MIME type such as image/gif or video/avi. MIME
stands for Multipurpose Internet Mail Extensions. MIME types are
a mechanism to identify the data type of multimedia attachments to
Internet e-mail messages. MIME types are also used by Web servers
to identify to Web browsers the data type of multimedia files such as
AVI files on Web sites.
An action can be blank, Ask User, Browser, or a helper application such
as Media Player (mplayer.exe). The blank action appears to be used
in cases where a Plugin is installed and may be used for other cases as
well. The Ask User action indicates to pop up a dialog asking the user
what to do: save to disk, select an application, or cancel. Browser
indicates that the File Type is supported by the browser. For example
gif and jpeg decoding is built directly into Netscape Navigator.
To view installed plugins, select About Plugins from the Help menu. This
produces a listing of installed Plugins. The list has an
entry for each currently installed Netscape Plugin. For example:
NPAVI32 Dynamic Link Library
MIME Type
video/msvideo ... other information ...
video/x-msvideo ... other information ...
is the information presented for Netscape's npavi32.dll plugin in
Netscape Navigator 3.0 on Windows NT 4.0 Server (Service Pack 2).
Netscape Plugins are dynamic link libraries stored in a plugins
directory. For example, \Program Files\Netscape\Navigator\Program\plugins\
Many Netscape plugins including the Netscape AVI plugins (npavi16.dll for
16 bit Windows and npavi32.dll for 32 bit Windows) can be dowloaded from
the Netscape Web site.
<A HREF="http://home.netscape.com/">http://home.netscape.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="Plug-ins">
<H2>Netscape Navigator Plug-ins to Play AVI Files</H2>
</A>
<H3>Netscape LiveVideo</H3>
Netscape Navigator 3.0 includes LiveVideo which supports playback of
AVI files on Windows 3.x, Windows 95, and Windows NT platforms. This is
implemented through the dynamic link libraries npavi.dll, npavi16.dll, and
npavi32.dll.
<A HREF="http://home.netscape.com/">http://home.netscape.com/</A>
You can download the latest Navigator 3.0 with LiveVideo from Netscape.
Netscape also maintains pages with Netscape Plug-Ins, mostly from other
companies. These include CineWeb by Digigami and MacZilla by Knowledge
Engineering which provide AVI playback.
To get to the Audio/Video Plug-Ins page (as of May 15, 1997), go to the
Netscape Home Page. There is a graphical text
"Get the latest Netscape Software".
Underneath this text there is pulldown list of the many Netscape products.
This initially reads "Pulldown to select products".
Click on this to show the pulldown list (it is very long).
Choose "Navigator Plug-Ins".
Click on the Product Info icon under the pulldown list.
This presents a page for Inline Plug-Ins. Select the Audio/Video option.
This brings up a page of audio/video plugins that add support for various
audio and video formats.
CineWeb by Digigami and MacZilla by Knowledge Engineering are both in
this list. These plug-ins are also available directly from their
makers.
<H3>CineWeb by DigiGami</H3>
Digigami produces a Netscape Navigator Plug-in for Windows 95 and Windows
NT called CineWeb that provides playback of AVI, QuickTime, and MPEG files.
<A HREF="http://www.digigami.com/cineweb/">http://www.digigami.com/cineweb/</A>
<H3>MacZilla by Knowledge Engineering</H3>
MacZilla is a Netscape Plug-in for the Power Macintosh that adds AVI,
Quicktime, and MPEG playback.
<A HREF="http://maczilla.com/">http://maczilla.com/</A>
<A HREF="#Top">Return to Top</A>
<A NAME="IE">
<H2>Configuring Internet Explorer 3.0x to Display AVI Files</H2>
</A>
The following applies to Internet Explorer on Windows 95 and Windows
NT 4.0. The information may also work for Windows 3.1
Select the Options item from the View menu of Internet Explorer. Select
the Programs tab. Within the Programs sheet, click on the "File Types ..."
button.
View (menu) | Options (item in menu) | Programs (tab) | File Types ... (button)
Internet Explorer 3.0x uses the Windows 95 System Registry or
Windows NT System Registry to determine what to do with a file. This is
the same mechanism that the Windows 95 or NT 4.0 Desktop uses to
determine which application to use when a user double clicks on a file
icon. This is achieved through a Content or MIME type "value" (name
and data pair) in the registry. See the section on how AVI is handled
in Windows 95 for more details.
The "File Types ..." brings up a list of file types and associated
actions. This can be used to edit and modify the actions.
<A HREF="#Top">Return to Top</A>
<A NAME="Word"><H2>How to embed an AVI file in a Microsoft Word Document?</H2></A>
Media Player acts as an OLE (Object Linking and Embedding) server. This means
that application such as Microsoft Word that support OLE can embed
a movie.
With Word 6.0 (Microsoft seems to keep changing the user interface for
Microsoft Word so I need to qualify which version of Microsoft Word),
1. Select Insert from the menu bar. This pulls down a long menu.
2. Select Object... from the pulldown menu. This pops up a dialog box.
3. Select the Create from File tab.
4. Select the AVI file from the file browser.
5. Select OK
This inserts a link to the AVI file at the current location within the
Microsoft Word document that you are editing. The first frame of the
AVI file is displayed. Double click on the first frame of the AVI
file to start playback.
NOTE: With Word 6.0, this sequence of Word commands embeds a graphic
of the first frame of the AVI file along with instructions to invoke
Media Player on an external file in the Word document. The binary AVI
file remains separate. Only the file specification and a graphic
image of the first frame are actually inserted in the Word document.
The on-line help documentation with Word 6.0 is misleading or outright
false on this point.
Other Windows applications that act as OLE clients will be able to do
similar things with AVI files.
<A HREF="#Top">Return to Top</A>
<A NAME="Size">
<H2>Size limits on AVI files</H2>
</A>
An AVI file cannot be larger than the disk partition that
contains it. Different filesystems have different maximum sizes
for disk partitions.
Under the 16 bit FAT (File Allocation Table) filesystem used by DOS,
disk partitions are limited to a maximum size of 2GB (Gigabytes). In
DOS, a hard disk is divided into 512 byte sectors. DOS Version 4
added support for 32 bit sector numbers. 2 raised to the 32 is roughly 4
billion, multiply this times 512 bytes in a sector to get the 2GB
limit. FAT16 partitions are limited to 2GB, necessarilly limiting AVI
files to a maximum size of 2GB as well.
DOS versions prior to DOS 4 limited disk partitions to 32MB (Megabytes).
These earlier versions of DOS used 16 bit sector numbers in all I/O
routines. 2 raised to the 16th power is 64K, multiply this by 512 bytes
in a sector to get the 32MB limit.
Partitions using other filesystems such as the Windows NT File Systems (NTFS)
may not be subject to the 2GB limit.
The new FAT32 filesystem available with Windows 95 permits partitions larger
than 2GB. Unfortunately, a 1 or 2 GB file size limit is hard wired
into some of the code for the Microsoft Video for Windows. In
particular, the RIFF parser code and MCIAVI (the MCI driver for
AVI files) contain a 1 GB or 2 GB limit hard wired into them.
Microsoft's Active Movie, which replaces Video for Windows, contains
fixes for the 1-2 GB size limits hard wired into Video for Windows.
Microsoft's OEM Service Release 2 (OSR2) incorporates FAT32. Earlier
OEM releases and the retail version of Windows 95 (as of 2/15/97) do
not include FAT32. Microsoft sayeth: "Neither MS-DOS 6.x nor retail
versions of Windows 95 will recognize a FAT32 volume". To see if you
have OSR2, go to the Control Panel, select the System icon, and click
the General tab. It will say "4.00.950b". If there is no trailing
letter or "4.00.950a", then you do not have OSR2.
OEM versions of Windows 95 cannot be purchased separately as off the
shelf software. They are bundled on systems created by companies
like Dell, Compaq, and so forth. The retail version(s?) of Windows 95
can be purchased at software stores or through software resellers.
I believe that there was some sort of beta release of FAT32 prior to
OSR2, either a special version of Windows 95 or a way to install FAT32
in versions of Windows 95 that did not come with FAT32.
OSR2 and FAT32 seem to have some problems. Some applications
such as Corel's Paradox 7 fail on FAT32 volumes. See:
<A HREF="http://www.bugnet.com/">Bug Net Web Site</A>
or search the Microsoft Knowledge Base for the keyword OSR2.
The header for an AVI file includes a 32 bit AVI file length, imposing
a restriction of 4GB on the AVI file size.
The Open Digital Media (OpenDML) Consortium has defined
OpenDML AVI File Format Extensions to add support for
professional video functionalities to AVI. This includes
a fix for the 4 GB limit. Microsoft has incorporated this
extended version of AVI into ActiveMovie 1.0 from
Microsoft.
<A HREF="#Top">Return to Top</A>
<A NAME="Corel">
<H2>How to Fix Problem with CorelMove4.0 AVI Files</H2>
</A>
CorelMove 4.0 exports AVI files that cannot be played using
Video for Windows 1.1 or the Windows 95 Video for Windows or
ActiveMovie 1.0.
Corel has a fix file that can be downloaded from their software
library. The file is called "cmvfix.exe."
The URL is...
<A HREF="http://www.corel.com/products/graphicsandpublishing/draw4/library.htm">http://www.corel.com/products/graphicsandpublishing/draw4/library.htm</A>
Description text from the web page...
Title: CMVFIX.EXE For CorelMOVE 4.0 AVI export correction
CMVFIX.EXE by Corel Corporation 1994 contains these
compressed files: CMV4FIX.EXE is a compressed file that
contains fixes for CorelMOVE 4.0's AVI file exports. These
are new replacement .DLLs. AVI4FIX.EXE is a Windows
application that will allow you to correct older CorelMOVE
4.0 AVI files to work with MS-Video For Windows 1.1. If you
create an AVI file AFTER installing the CMV4FIX update that
accompanies this fix, then you will NOT be required to run
this application. This will change the RLE compression in
the CorelMOVE AVI files.
<A HREF="#Top">Return to Top</A>
<A NAME="Biblio">
<H2>Sources of Information on AVI:</H2>
</A>
How to Digitize Video
by Nels Johnson
with Fred Gault and Mark Florence
John Wiley and Sons, New York, 1994
Article
"Digital Video File Formats"
by Mark Florence
Dr. Dobbs Sourcebook of Multimedia Programming, Winter 1994
Windows Multimedia Programmer's Guide
- includes overview of RIFF
Video for Windows Development Kit Programmer's Guide
- includes overview of AVI
RIFF Specification is available on World Wide Web at (11/7/96):
<A HREF="http://www.seanet.com/HTML/Users/matts/riffmci/riffmci.htm">
http://www.seanet.com/HTML/Users/matts/riffmci/riffmci.htm</A>
<A HREF="#Top">Return to Top</A>
<A NAME="News">
<H2>Internet Newsgroups with Information on AVI and Video</H2>
Internet or USENET Newsgroups are a good source of current
information on AVI and video. Some useful newsgroups are:
VIDEO SPECIFIC NEWSGROUPS
<A HREF="news:rec.video.desktop">rec.video.desktop</A>
<A HREF="news:comp.os.ms-windows.video">comp.os.ms-windows.video</A>
<A HREF="news:comp.sys.ibm.pc.hardware.video">comp.sys.ibm.pc.hardware.video</A>
<A HREF="news:comp.dcom.videoconf">comp.dcom.videoconf</A> Videoconferencing
OTHER USEFUL NEWSGROUPS
<A HREF="news:comp.multimedia">comp.multimedia</A>
Broad coverage of multimedia including video.
<A HREF="news:comp.compression">comp.compression</A>
Both technical discussions of compression algorithms and
codecs, as well as end user issues such as utilities and
configuration issues.
<A HREF="#Top">Return to Top</A>
<A NAME="Credits">
<H2>Credits</H2>
</A>
The following people have contributed ideas, suggestions,
criticisms, and information to the AVI Overview:
Jens Mutschke Q-Team Dr. Knabe GmbH
John Whelan Dublin City University
Victor Rutman Netvision
Wolfgang Hesseler
Marcus Moenig MainConcept
Dave Wilson Rockwell/Brooktree
Steve P. (no full last name, information on CorelMove 4.0)
Dennis Strauch
Tom Harding Practice Corporation
Special thanks to:
Desktop Video Expert Center/NASA Ames Research Center
<A HREF="#Top">Return to Top</A>
NOTE: Suggestions, additions, and corrections are welcome. Please
send to
<P>
<ADDRESS>
<A HREF="mailto:jfm@rahul.net">jfm@rahul.net</A>
</ADDRESS>
<!--
About the author:
John F. McGowan is a software engineer with experience in digital
video and computer generated imagery. He has developed commercial
MPEG-1 and MPEG-2 players for PC/Windows, Unix, and Power Macintosh
platforms. He has a B.S. in Physics from the California Institute
of Technology and a Ph.D. in Physics from the University of Illinois
at Urbana-Champaign.
-->
</PRE>
</BODY>
</HTML>
--