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 >
Text File  |  1997-10-01  |  219KB  |  5,777 lines

  1. 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
  2. From: jfm@rahul.net
  3. Newsgroups: rec.video.desktop,comp.graphics.animation,comp.multimedia,comp.os.ms-windows.video,news.answers,rec.answers,comp.answers
  4. Subject: AVI Graphics Format Overview
  5. Followup-To: rec.video.desktop,comp.graphics.animation,comp.multimedia,comp.os.ms-windows.video
  6. Date: 30 Sep 1997 17:44:55 GMT
  7. Organization: a2i network
  8. Lines: 5761
  9. Approved: news-answers-request@MIT.EDU
  10. Message-ID: <60rdqn$mal$1@samba.rahul.net>
  11. NNTP-Posting-Host: foxtrot.rahul.net
  12. NNTP-Posting-User: jfm
  13. 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.
  14. 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
  15.  
  16. Archive-name: graphics/avi-faq
  17. Posting-Frequency: monthly
  18. Last-modified: 1997/09/30
  19. Version: 1.132
  20. URL: http://www.rahul.net/jfm/avi.html
  21. Copyright: (c) 1996-1997 John F. McGowan, Ph.D.
  22. Maintainer: John F. McGowan, Ph.D. <jfm@rahul.net>
  23.  
  24. <HTML>
  25. <HEAD><TITLE>John McGowan's AVI Overview</TITLE></HEAD>
  26. <BODY BGCOLOR="#FFFFFF">
  27. <PRE>
  28.                  AVI Overview
  29.               by John F. McGowan, Ph.D.
  30.                       (c) 1996-1997, John F. McGowan
  31.               http://www.rahul.net/jfm/
  32.  
  33. ----------------------------------------------------------------------------
  34. <!-- This document is best viewed using an HTML browser.  However, -->
  35. <!-- it has been composed with limited use of HTML so that it can -->
  36. <!-- be used as a plain text file as well. -->
  37. <!-- Release $Id: avi.html,v 1.132 1997/09/29 17:21:32 jfm Exp $ -->
  38.  
  39. <!-- Permission to copy and distribute this document is granted -->
  40. <!-- so long as the title, author's name, and URL are retained -->
  41. <!-- Any additions or modifications made to the original should be -->
  42. <!-- clearly marked as such. -->
  43. <!-- The author welcomes and encourages suggested changes and -->
  44. <!-- additions to the overview.  Contributors will be credited. -->
  45.  
  46. <A NAME="Top">
  47. What is in this Overview?
  48. </A>
  49.  
  50.                - Overview of Video for Windows, ActiveMovie, and AVI
  51.  
  52.                <A HREF="#Definition">What is AVI?</A>
  53.  
  54.                <A HREF="#Disclaimer">Disclaimer</A>
  55.  
  56.                <A HREF="#New">WHAT'S NEW</A>
  57.  
  58.                UTILITIES, SYSTEM ADMINISTRATION, AUTHORING, ETC.
  59.                - <A HREF="#Play">How to play an AVI file?</A>
  60.                              - DOS
  61.                              - Windows
  62.                              - Macintosh
  63.                              - Unix
  64.                              - VAX/VMS
  65.                              - Amiga
  66.                              - OS/2
  67.  
  68.  
  69.                - How to convert AVI to various audio/video formats.
  70.                         - <A HREF="#ToMPEG">MPEG</A>
  71.                         - <A HREF="#ToMOV">QuickTime .MOV (.MooV)</A>
  72.                         - <A HREF="#ToGIF89a">Animated GIFs (GIF89a)</A>
  73.                         - <A HREF="#ToASF">Microsoft ASF (Active Streaming Format)</A>
  74.                         - <A HREF="#ToSequence">Sequence of Still Images in Separate Files</A>
  75.                         - <A HREF="#ToSmacker">Smacker</A>
  76.  
  77.                - How to convert other audio/video formats to AVI
  78.                         - <A HREF="#FromMOV">QuickTime .MOV (.MooV)</A>
  79.                         - <A HREF="#FromSequence">Sequence of Still Images in Separate Files</A>
  80.                         - <A HREF="#FromAutodesk">Autodesk Animation (FLI or FLC)</A>
  81.                         - <A HREF="#FromMPEG">MPEG</A>
  82.                         - <A HREF="#FromGIF89a">Animated GIF</A>
  83.  
  84.  
  85.                - <A HREF="#Bitmaps">How to Convert a Sequence of Still Images in One Format to a Sequence in Another Format</A>
  86.  
  87.                - Authoring AVI Files
  88.  
  89.                         - <A HREF="#ScreenCapture">How to capture screen to AVI files</A>
  90.                         - <A HREF="#AuthorAVI">Multimedia Authoring Tools to Create AVI Files</A>
  91.                         - <A HREF="#LW">How to import AVI files into Lightwave</A>               
  92.                         - <A HREF="#Capture">How to create AVI files from analog video (Video Capture Cards)</A>
  93.                                      - From VHS tapes and video cameras
  94.                                      - From Hi8 tapes and video cameras
  95.                                      - <A HREF="#HDCapture">Hard Drive Video Capture Issues</A>
  96.                                      - <A HREF="#NTCapture">Video Capture Cards with Windows NT Drivers</A>
  97.                         - <A HREF="#TV">How to create AVI files from Television</A>
  98.                         - <A HREF="#FPS">How to change frame rate of AVI files</A>
  99.                         - <A HREF="#Edit">How to edit AVI files</A>
  100.                                     - VidEdit
  101.                                     - Personal AVI Editor
  102.                                     - Corel Lumiere Suite for 32-bit Windows
  103.                                     - Ulead Media Studio Pro
  104.                                     - Adobe Premiere
  105.                                     - in:sync SpeedRazor
  106.                                     - Asymetrix Digital Video Producer (DVP)
  107.                         - <A HREF="#Wave">Editing and converting WAV files</A>
  108.                         - <A HREF="#Output">How to output AVI files to videotape</A>
  109.                         - <A HREF="#ToNTSC">How to create NTSC (or PAL) Safe AVI</A>
  110.                         - <A HREF="#BinEd">Binary File Editors for Viewing and Editing AVI</A>
  111.                         - <A HREF="#Size">Size limits on AVI files</A>
  112.                         - <A HREF="#Corel">How to Fix Problem with AVI files from CorelMove 4.0</A>
  113.  
  114.  
  115.                Installation, Configuration, and Other Issues
  116.  
  117.                        - <A HREF="#VfW16">Where to get the 16-bit Video for Windows for Windows 3.x</A>
  118.                        - <A HREF="#Win95">Reinstalling Microsoft's Video-for-Windows in Windows 95</A>
  119.                        - <A HREF="#GETAM">How to get ActiveMovie 1.0</A>
  120.                        - <A HREF="#NT40">Installing and configuring AVI Codecs in Windows NT 4.0</A>
  121.                        - <A HREF="#VideoChips">PC Video Card and Video Chips</A>
  122.                                          - <A HREF="#NTVideo">Video Cards with Windows NT Drivers</A>
  123.                        - <A HREF="#Extension">How to give AVI files a different extension in Windows 3.1</A>
  124.                        - <A HREF="#AVI95">How AVI Files are Handled in Windows 95</A>
  125.                        - <A HREF="#Word">How to embed an AVI file in a Microsoft Word Document</A>
  126.                        - <A HREF="#Biblio">Bibliography of sources of information on Video for Windows and AVI</A>
  127.                        - <A HREF="#News">Internet Newsgroups with Information on AVI and Video </A>
  128.                        - <A HREF="#Misc">Answers to miscellaneous other frequently asked questions about AVI </A>
  129.  
  130.                AVI and the WORLDWIDE WEB
  131.                - <A HREF="#Style">Effective use of video on a Web page</A>
  132.                - <A HREF="#Web">How to embed an AVI file in a Web page</A>
  133.                - <A HREF="#NS">Configuring Netscape Navigator 3.0x to Display AVI Files</A>
  134.            - <A HREF="#Plug-ins">Netscape Navigator Plug-ins to play AVI</A>
  135.                - <A HREF="#IE">Configuring Internet Explorer 3.0x to Display AVI Files</A>
  136.                - <A HREF="#Mail">Sending AVI by E-Mail</A>
  137.                - <A HREF="#MIME">MIME types of AVI</A>
  138.                - <A HREF="#HTTPD">Configuring Web Servers to Handle AVI Files</A>
  139.                          - Apache
  140.                          - CERN (or W3C)
  141.                          - NCSA HTTPd
  142.                          - Microsoft Internet Information Server 3.0
  143.                          - Netscape Enterprise Server 3.0
  144.                - <A HREF="#Java">AVI and Java</A>
  145.                - <A HREF="#VRML">AVI and VRML</A>
  146.                - <A HREF="#NetShow">AVI and NetShow</A>
  147.                - <A HREF="#ToASF">Converting AVI to Microsoft Active Streaming Format (ASF) Files</A>
  148.                - <A HREF="#Content">Sources of AVI Video Clips on the Web</A>
  149.                - <A HREF="#AVILBR">Low Bit Rate AVI for the Web</A>
  150.  
  151.                REAL-TIME OR STREAMING VIDEO OVER IP NETWORKS
  152.                     - <A HREF="#Limits">Limitations of AVI and Video for Windows over Networks</A>
  153.                     - <A HREF="#NetShow">NetShow</A>
  154.  
  155.                AUDIO and VIDEO CODECS
  156.                - <A HREF="#Codec">Video for Windows compressors and decompressors</A>
  157.                 WHAT THEY ARE, WHERE TO GET THEM, WHICH WORK BEST!
  158.                                - The Old Guard
  159.                                     - <A HREF="#DIB">Full Frames (Uncompressed)</A>
  160.                                     - <A HREF="#IV32">Indeo 3.2/3.1</A>
  161.                                     - <A HREF="#MRLE">Microsoft Run Length Encoding</A>
  162.                                     - <A HREF="#MSVC">Microsoft Video 1</A>
  163.                                     - <A HREF="#CVID">CinePak</A>
  164.                                                 - <A HREF="#MJPG">Motion JPEG</A>
  165.                                                 - <A HREF="#XMPG">Editable MPEG</A>
  166.                                 - The New Wave 
  167.                         - <A HREF="#VDOW">VDOWave (VDOLive)</A>
  168.                         - <A HREF="#IV41">Indeo Video Interactive (Indeo 4.1)</A>
  169.                                                 - <A HREF="#IV50">Indeo Video Interactive (Indeo 5.0)</A>
  170.                                                 - <A HREF="#UCOD">ClearVideo (aka RealVideo)</A>
  171.                         - <A HREF="#SFMC">SFM (Surface Fitting Method)</A>
  172.                                                 - <A HREF="#QPEG">QPEG</A>
  173.                         - <A HREF="#H261">H.261</A>
  174.                         - <A HREF="#H263">H.263</A>
  175.                                                            - Microsoft H.263
  176.                                                            - Vivo Software H.263
  177.                                                 - <A HREF="#MPG4">MPEG-4</A>
  178.                                                 - <A HREF="#VxTreme">VxTreme</A>
  179.  
  180.                - <A HREF="#BestCodec">Which codec is best?</A>
  181.                - <A HREF="#VfWInstalled">How to determine which codecs are installed</A>
  182.                - <A HREF="#WhichAVICodec">How to determine which codec was used to compress an AVI file</A>
  183.                - <A HREF="#FourCC">Microsoft Four Character Codes (FOURCC)</A>
  184.                - <A HREF="#ALGO">Video Compression Technologies</A>
  185.                                 <A HREF="#RLE">Run Length Encoding</A>
  186.                 <A HREF="#VQ">Vector Quantization</A>
  187.                                 <A HREF="#DCT">Discrete Cosine Transform</A>
  188.                                 <A HREF="#FD">Frame Differencing</A>
  189.                                 <A HREF="#Motion">Motion Compensation</A>
  190.  
  191.                - <A HREF="#ACM">Audio Codecs</A>
  192.                - <A HREF="#ACMInstalled">How to determine which Audio Codecs are Installed</A>
  193.  
  194.  
  195.                PROGRAMMING/TECHNICAL TOPICS
  196.                - <A HREF="#VFW">Video for Windows</A>
  197.                - <A HREF="#WAVE">Wave (Waveform Audio)</A>
  198.                - <A HREF="#Format">AVI file format</A>
  199.                            - RIFF Files
  200.                            - Original AVI File Format
  201.                            - <A HREF="#OpenDML">OpenDML AVI File Format Extensions</A>
  202.                - <A HREF
  203.                - <A HREF="#ActiveMovie">ActiveMovie</A>
  204.                - <A HREF="#GUID">GUID's and AVI</A>
  205.                - <A HREF="#DirectShow">DirectShow (ActiveMovie 2.0)</A>
  206.                - <A HREF="#DirectDraw">DirectDraw</A>
  207.                - <A HREF="#MMX">MMX</A>
  208.                - <A HREF="#ActiveX">ActiveX</A>
  209.                - <A HREF="#AviPlay">Playing an AVI file within a Windows Application</A>
  210.                - <A HREF="#AviWrite">Reading and Writing an AVI file within a Windows Application</A>
  211.  
  212.                 DEVICE DRIVERS AND VIDEO
  213.                                 - <A HREF="#GDI">GDI Device Drivers</A>
  214.                                 - <A HREF="#DHAL">DirectDraw Hardware Abstraction Layer</A>
  215.                                 - <A HREF="#VXD">Virtual Device Drivers</A>
  216.                                 - <A HREF="#NTDM">Windows NT Driver Model</A>
  217.                                 - <A HREF="#WDM">Win32 Driver Model (WDM)</A>
  218.                                 - <A HREF="#INF">Setup Information Files</A>
  219.  
  220.  
  221.                <A HREF="#Credits">Credits</A>
  222.  
  223.  
  224.                ABOUT THE AUTHOR
  225.  
  226.                - John McGowan is a software engineer with experience
  227. in digital audio and video on PC/Windows, Unix/X Windows, and
  228. PowerMacintosh platforms.  He has developed commercial MPEG-1 and
  229. MPEG-2 player software.  His experience includes development,
  230. optimization, and implementation of audio, video, and still image
  231. compression and decompression algorithms in C/C++ on Intel, MIPS,
  232. SPARC, and PowerPC based platforms.  He has also developed Microsoft
  233. Windows user interface software.  He has a Ph.D. in physics from the
  234. University of Illinois at Urbana-Champaign and a B.S. in physics from
  235. the California Institute of Technology.
  236.  
  237.                - <A HREF="http://www.rahul.net/jfm/index.html">John McGowan's Home Page</A>
  238.  
  239. <A NAME="Disclaimer">
  240. <H2>Disclaimer</H2>
  241.  
  242. In no event shall John McGowan or other contributors be liable for
  243. direct, indirect, special, incidental or consequential damages 
  244. arising out of the use or inability to use information, softwares,
  245. bitstreams and other data found on or referenced by the AVI Graphics
  246. Overview.
  247.  
  248. Permission to copy and distribute this document is granted so long as
  249. the title, author's name, URL, and this disclaimer are retained.  Any
  250. additions or modifications made to the original should be clearly
  251. marked as such.  The author welcomes and encourages suggested changes
  252. and additions to the overview.  Contributors will be credited.
  253.  
  254. <A HREF="#Top">Return to Top</A>
  255.  
  256.  
  257. <A NAME="New">
  258. <H2>What's New</H2>               
  259. </A>
  260.  
  261. (September 8, 1997) Microsoft distributes Advanced Streaming
  262. Format (ASF) Specification for a "Public Design Review".
  263. <A HREF="http://www.microsoft.com/asf/">Microsoft ASF Page</A>
  264.  
  265. (September, 1997) avi2mpg1 released.  A Windows 95/NT console
  266. application to convert AVI to MPEG-1.
  267.  
  268. (August 5, 1997) Microsoft acquires VxTreme (wavelet based
  269. streaming video) for its NetShow product line.
  270.  
  271. <A HREF="http://www.vxtreme.com/">VxTreme Inc.</A>
  272.  
  273. Intel's Indeo Video Interactive 5.0 software is
  274. now available on Intel web site.
  275.  
  276. Wolfgang Hesseler announces version 2.13 of QuickView, an AVI
  277. player for DOS (July 28, 1997)
  278.  
  279. MainConcept announces version 1.1 of MainActor shareware.
  280. MainActor can convert between AVI and many video, animation,
  281. and image formats.  (July 9, 1997)
  282.  
  283. Marcus Moenig of MainConcept writes:
  284.  
  285. John,
  286.  
  287. well here comes the press release of v1.1 We now support full MPEG-I and
  288. MPEG-II without audio. So you can now convert MPEG into AVI and vice versa.
  289.  
  290. I dont want to get on your nerves on what MainActor can and cannot do but
  291. we also support full Motion JPEG for AVIs. Even interlaced JPEG from Miro
  292. and FAST hardware can now be read and written by MainActor.
  293.  
  294. ---End---
  295.  
  296. RAD Game Tools announces a new version of their Smacker
  297. utilities, including the ability to read and write AVI 
  298. files with optimized 8 bit color palettes. (June 27, 1997)
  299.  
  300.  
  301.  
  302. <A HREF="#Top">Return to Top</A>
  303.  
  304. <A NAME="Definition">
  305. <H2>What is AVI?</H2>
  306. </A>
  307.  
  308.     AVI stands for Audio Video Interleave.  It is a special case
  309. of the RIFF (Resource Interchange File Format).  AVI is defined by
  310. Microsoft.  AVI is the most common format for audio/video data on the
  311. PC.
  312.  
  313. <A HREF="#Top">Return to Top</A>
  314.  
  315. <A NAME="VFW">
  316. <H2>Video for Windows</H2>
  317. </A>
  318.  
  319. Video for Windows is an entire system for handling video 
  320. in Microsoft Windows.  It was part of MS Windows 3.1  The
  321. original Video for Windows is a collection of 16 bit
  322. windows utilities, dynamic link libraries, and other
  323. components. 
  324.  
  325. The AVI file and file format is a central part of Video 
  326. for Windows.
  327.  
  328. Microsoft released a Video for Windows 1.0 for
  329. Windows 3.1 in November 1992, followed by Video for Windows 1.1.  There
  330. have been several versions of Video for Windows 1.1
  331. identified by a trailing alphabetical character such as
  332. 1.1e   The last and most recent version of Video for
  333. Windows 1.1 for Windows 3.x is Video for Windows 1.1e
  334. This is available by ftp from Microsoft. 
  335.  
  336.  
  337. Microsoft has provided a 32 bit version of Video for Windows
  338. for Windows 95, while threatening to replace Video for Windows with
  339. ActiveMovie.  This version has 32 bit versions of the Video
  340. for Windows codecs such as CinePak.  It is not entirely clear
  341. that it is entirely 32 bit code.
  342.  
  343. Windows NT 3.5, 3.51 and Windows NT 4.0 include a Video for Windows for
  344. NT.  Presumably this is strictly 32 bit.  It is not clear how
  345. much code is shared between the NT Video for Windows and the
  346. Windows 95 Video for Windows.  Note that hardware device
  347. drivers are different between Windows 95 and NT 3.5/3.51/4.0.
  348.  
  349. ActiveMovie 1.0 and DirectShow (formerly ActiveMovie 2.0) are
  350. 32 bit successors to Video for Windows for both Windows 95
  351. and Windows NT.  These support AVI files.
  352.  
  353. SUMMARY
  354.  
  355. Video for Windows 1.0 (Windows 3.x)
  356. Video for Windows 1.1 (a-e) (Windows 3.x)
  357. Video for Windows (Windows 95 - has 32 bit codecs, other 32 bit?)
  358. Video for Windows (Windows NT 3.5, 3.51, and 4.0)
  359.  
  360. ActiveMovie 1.0
  361. ActiveMovie 2.0 (DirectShow)
  362.  
  363. <A HREF="#Top">Return to Top</A>
  364.  
  365. <A NAME="WAVE">
  366. <H2>WAVE</H2>
  367. </A>
  368.  
  369. The Microsoft Windows audio (sound) input/output system, commonly
  370. referred to as Wave or WAVE, predates Video for Windows, which is
  371. wrapped around WAVE in various ways.  The audio tracks in AVI files
  372. are simply waveform audio (or WAV) data used by the wave system.
  373. Video for Windows parses the AVI files, extracts the WAV data, and
  374. pipes the WAV data to the WAVE system.  Video for Windows handles the
  375. video track if present.
  376.  
  377. Traditionally, audio input and output devices such as Sound Blaster
  378. Cards have a WAVE audio input/output driver to play WAV (waveform
  379. audio) files.
  380.  
  381. The simplest waveform audio files consists of a header followed by
  382. Pulse Coded Modulation (PCM) sound data, usually uncompressed 8 or 16
  383. bit sound samples.  WAVE also provides a mechanism for audio codecs.
  384. See elsewhere in the AVI Overview for further information on audio
  385. codecs and audio compression.
  386.  
  387. WAVE is present in Windows 3.1 and Windows 95.  A different WAVE
  388. system is present in Windows NT 3.5, 3.51, and 4.0 At least the
  389. hardware device drivers for sound cards must be different in NT.
  390.  
  391. ActiveMovie appears to be replacing WAVE.
  392.  
  393. <A HREF="#Top">Return to Top</A>
  394.  
  395.  
  396. <A NAME="Format">
  397. <H2>What is the AVI File Format?</H2>
  398. </A>
  399.  
  400.    AVI Files are a special case of RIFF files.  RIFF is
  401. the Resource Interchange File Format.  This is a general
  402. purpose format for exchanging multimedia data types
  403. that was created by Microsoft and IBM during their
  404. long forgotten alliance.
  405.  
  406. <H3>RIFF Files</H3>
  407.  
  408.    RIFF files are built from 
  409.  
  410.     (1) RIFF Form Header
  411.  
  412.               'RIFF' (4 byte file size) 'xxxx' (data)
  413.  
  414.                   where 'xxxx' identifies the specialization (or form)
  415.                   of RIFF.  'AVI ' for AVI files.
  416.  
  417.                   where the data is the rest of the file.  The 
  418.                   data is comprised of chunks and lists.  Chunks
  419.                   and lists are defined immediately below.
  420.  
  421.     (2) A Chunk
  422.  
  423.         (4 byte identifier) (4 byte chunk size) (data)
  424.  
  425.                 The 4 byte identifier is a human readable sequence
  426.                 of four characters such as 'JUNK' or 'idx1'
  427.  
  428.     (3) A List
  429.  
  430.         'LIST' (4 byte list size) (4 byte list identifier) (data)
  431.  
  432.                         where the 4 byte identifier is a human readable
  433.                         sequence of four characters such as 'rec ' or
  434.                         'movi'
  435.             
  436.             where the data is comprised of LISTS or CHUNKS.
  437.  
  438. <H3>AVI File Format</H3>
  439.  
  440.     AVI is a specialization or "form" of RIFF, described below:
  441.  
  442.  
  443. 'RIFF' (4 byte file length) 'AVI '   // file header (a RIFF form)
  444.  
  445. 'LIST' (4 byte list length) 'hdrl'   // list of headers for AVI file
  446.  
  447. The 'hdrl' list contains:
  448.  
  449. 'avih' (4 byte chunk size)  (data)   // the AVI header  (a chunk)
  450.  
  451. 'strl' lists of stream headers for each stream (audio, video, etc.) in
  452. the AVI file.  An AVI file can contain zero or one video stream and
  453. zero, one, or many audio streams.  For an AVI file with one video and
  454. one audio stream:
  455.  
  456. 'LIST' (4 byte list length) 'strl'   // video stream list (a list)
  457.  
  458. The video 'strl' list contains:
  459.  
  460. 'strh' (4 byte chunk size)  (data)   // video stream header (a chunk)
  461. 'strf' (4 byte chunk size)  (data)   // video stream format (a chunk)
  462.  
  463. 'LIST' (4 byte list length) 'strl'   // audio stream list (a list)
  464.  
  465. The audio 'strl' list contains:
  466.  
  467. 'strh' (4 byte chunk size)  (data)   // audio stream header (a chunk)
  468. 'strf' (4 byte chunk size)  (data)   // audio stream format (a chunk)
  469.  
  470. 'JUNK' (4 byte chunk size) (data - usually all zeros) // an OPTIONAL junk chunk to align on 2K byte boundary
  471.  
  472. 'LIST' (4 byte list length) 'movi'   // list of movie data (a list)
  473.  
  474. The 'movi' list contains the actual audio and video data.   
  475.  
  476. This 'movi' list contains one or more ...
  477.  'LIST' (4 byte list length) 'rec '  // list of movie records (a list)
  478.  '##wb' (4 byte chunk size) (data)   // sound data (a chunk)
  479.  '##dc' (4 byte chunk size) (data)   // video data (a chunk)
  480.  '##db' (4 byte chunk size) (data)   // video data (a chunk)
  481.  
  482. A 'rec ' list (a record) contains the audio and video data for a single frame.
  483.  '##wb' (4 byte chunk size)  (data)  // sound data (a chunk)
  484.  '##dc' (4 byte chunk size)  (data)  // video data (a chunk)
  485.  '##db' (4 byte chunk size)  (data)  // video data (a chunk)
  486.  
  487. The 'rec ' list may not be used for AVI files with only audio or only
  488. video data.  I have seen video only uncompressed AVI files that did
  489. not use the 'rec ' list, only '00db' chunks.  The 'rec ' list is used
  490. for AVI files with interleaved audio and video streams.  The 'rec '
  491. list may be used for AVI file with only video.
  492.  
  493.  ## in '##dc' refers to the stream number.  For example, video data chunks
  494. belonging to stream 0 would use the identifier '00dc'.  A chunk of
  495. video data contains a single video frame.
  496.  
  497.  I suspect that '##db' is used for uncompressed video frames. '##dc' is
  498. used for compressed video frames. '##wb' for uncompressed audio (WAVE)
  499. data.
  500.  
  501.  The 'movi' list may be followed by:
  502.  
  503.  'idx1' (4 byte chunk size) (index data) // an optional index into movie (a chunk)
  504.  
  505.   The optional index contains a table of memory offsets to each
  506. chunk within the 'movi' list.  The 'idx1' index supports rapid
  507. seeking to frames within the video file.  
  508.  
  509.   The 'avih' (AVI Header) chunk contains the following information:
  510.  
  511.       Total Frames   (for example, 1500 frames in an AVI)
  512.       Streams   (for example, 2 for audio and video together)
  513.       InitialFrames
  514.       MaxBytes
  515.       BufferSize
  516.       Microseconds Per Frame
  517.       Frames Per Second   (for example, 15 fps)
  518.       Size  (for example 320x240 pixels)
  519.       Flags
  520.  
  521.   The 'strh' (Stream Header) chunk contains the following information:
  522.  
  523.       Stream Type  (for example, 'vids' for video  'auds' for audio)
  524.       Stream Handler  (for example, 'cvid' for CinePak)
  525.       Samples Per Second  (for example 15 frames per second for video)
  526.       Priority
  527.       InitialFrames
  528.       Start
  529.       Length  (for example, 1500 frames for video)
  530.       Length (sec)   (for example 100 seconds for video)
  531.       Flags
  532.       BufferSize
  533.       Quality
  534.       SampleSize
  535.  
  536.    For video, the 'strf' (Stream Format) chunk contains the following 
  537. information:
  538.  
  539.       Size  (for example 320x240 pixels)
  540.       Bit Depth (for example 24 bit color)
  541.       Colors Used  (for example 236 for palettized color)
  542.       Compression  (for example 'cvid' for CinePak)
  543.  
  544.    For audio, the 'strf' (Stream Format) chunk contains the following
  545. information:
  546.  
  547.       wFormatTag           (for example, WAVE_FORMAT_PCM)
  548.       Number of Channels   (for example 2 for stereo sound)
  549.       Samples Per Second   (for example 11025)
  550.       Average Bytes Per Second   (for example 11025 for 8 bit sound)
  551.       nBlockAlign
  552.       Bits Per Sample      (for example 8 or 16 bits)
  553.  
  554.   Each 'rec ' list contains the sound data and video data for a single
  555. frame in the sound data chunk and the video data chunk.  
  556.  
  557.   Other chunks are allowed within the AVI file.  For example, I have
  558. seen info lists such as
  559.  
  560.     'LIST' (4 byte list size) 'INFO' (chunks with information on video)
  561.  
  562.   These chunks that are not part of the AVI standard are simply
  563. ignored by the AVI parser.  AVI can be and has been extended by adding
  564. lists and chunks not in the standard.  The INFO list in the example
  565. above is part of the OpenDML AVI File Format Extensions.
  566.  
  567.   The sound data is typically 8 or 16 bit PCM, stereo or mono,
  568. sampled at 11, 22, or 44.1 KHz.  Traditionally, the sound has
  569. typically been uncompressed Windows PCM.  With the advent of
  570. the WorldWide Web and the severe bandwidth limitations of the
  571. Internet, there has been increasing use of audio codecs.  The
  572. wFormatTag field in the audio 'strf' (Stream Format) chunk
  573. identifies the audio format and codec.
  574.  
  575. <A NAME="OpenDML">
  576. <H3>OpenDML AVI File Format Extensions</H3>
  577. </A>
  578.  
  579.   The Open Digital Media (OpenDML) Consortium has defined an
  580. OpenDML AVI File Format Extensions which extend AVI to support
  581. a variety of features required for professional video production.
  582. These include support for fields (not just frames), file sizes
  583. larger than 1 GB, timecodes, and many other features.  Microsoft
  584. has incorporated this extended version of AVI into Microsoft's
  585. Active Movie 1.0.  It is also used by various professional
  586. video applications for the PC.
  587.  
  588.   The Open Digital Media Consortium AVI File Format Extensions 
  589. add new lists and chunks to the AVI file which contain extra
  590. data such as timecodes not incorporated in the original AVI
  591. standard.  
  592.  
  593. <A HREF="#Top">Return to Top</A>
  594.    
  595.  
  596. <A NAME="Codec">
  597. <H2>Meet the Codecs</H2>
  598. </A>
  599.  
  600. The video data in an AVI file can be formatted and compressed in
  601. a variety of ways.  Video for Windows 1.1e comes with several 
  602. compressors:
  603.  
  604. Intel Indeo (version 3.2)
  605.  
  606. Microsoft Video 1
  607.  
  608. Microsoft RLE (Run Length Encoding)
  609.  
  610. CinePak
  611.  
  612.  
  613. AVI is not restricted to these compressors.  They
  614. are the compressors provided with Video for Windows.
  615.  
  616. These compressors are the Old Guard, the video codecs
  617. from the early days of Video for Windows and Quicktime (CinePak originated
  618. with the Macintosh and Quicktime).  During this period the
  619. focus of video was playback from hard drives and CD-ROM's.
  620.  
  621. The advent of the WorldWide Web and Internet Mania
  622. has created a New Wave of audio and video codecs, trying to
  623. apply "advanced" technologies such as sophisticated motion
  624. estimation and compensation, wavelets, fractals, and other
  625. techniques to achieve extremely low bitrates (such as 
  626. 28.8 Kbits/second for phone lines) for the Internet.
  627.  
  628. <H3>The Old Guard</H3>
  629.  
  630. <A NAME="DIB">
  631. <H4>Full Frames (Uncompressed)</H4>
  632. </A>
  633.  
  634. Users can store AVI files with uncompressed frames.  No codec is
  635. required for this.
  636.  
  637. The Four Character Code (FOURCC) for this is 'DIB ', DIB for
  638. the Microsoft Device Independent Bitmap.
  639.  
  640. <A HREF="#Top">Return to Top</A>
  641.  
  642.  
  643. <A NAME="MRLE">
  644. <H4>Microsoft Run Length Encoding</H4>
  645. </A>
  646.  
  647. Microsoft Run Length Encoding uses the Four Character Code MRLE
  648.  
  649. [drivers32]
  650. VIDC.MRLE=MSRLE32.DLL
  651.  
  652. in Windows 95
  653.  
  654. [drivers]
  655. VIDC.MRLE=MSRLE.DLL
  656.  
  657. in Windows 3.x
  658.  
  659. <A HREF="#Top">Return to Top</A>
  660.  
  661. <A NAME="MSVC">
  662. <H4>Microsoft Video 1</H4>
  663. </A>
  664.  
  665. Microsoft Video uses the Four Character Code MSVC
  666.  
  667. [drivers32]
  668. VIDC.MSVC=MSVIDC32.DLL
  669.  
  670. in Windows 95
  671.  
  672. [drivers]
  673. VIDC.MSVC=MSVIDC.DLL
  674.  
  675. in Windows 3.x
  676.  
  677. <B>NOTE:</B>  The Four Character Code CRAM is also used for Microsoft Video 1.
  678.  
  679. <A HREF="#Top">Return to Top</A>
  680.  
  681. <A NAME="IV32">
  682. <H4>Intel Indeo 3.1/3.2</H4>
  683. </A>
  684.  
  685. Indeo uses the Microsoft Four Character Codes IV31 and IV32,
  686. originally for Indeo 3.1 and Indeo 3.2, but these are usually now
  687. mapped to Indeo 3.2
  688.  
  689. [drivers32]
  690. VIDC.IV31=IR32_32.DLL
  691. VIDC.IV32=IR32_32.DLL
  692.  
  693. in Windows 95
  694.  
  695. [drivers]
  696. VIDC.IV31=IR32.DLL
  697. VIDC.IV32=IR32.DLL
  698.  
  699. in Windows 3.x
  700.  
  701. Indeo 3.x uses Vector Quantization based image compression.
  702.  
  703. <A HREF="#Top">Return to Top</A>
  704.  
  705. <A NAME="CVID">
  706. <H4>Cinepak</H4>
  707. </A>
  708.  
  709. CinePak is the most widely used Video for Windows codec.  CinePak
  710. reportedly provides the fastest playback of video.  While Indeo 3.2
  711. provides similar or slightly superior image quality for same
  712. compression, Indeo decompression is much more CPU intensive than
  713. CinePak.  CinePak was originally developed for the Mac and licensed to
  714. Apple by SuperMac.  It is now free with Video for Windows.  It is also
  715. free with Apple's QuickTime.
  716.  
  717. There are at least three CinePak codecs in existence:
  718.  
  719.              CinePak by SuperMac    (the original, 16 bit)
  720.              CinePak by Radius      (newer, better?, 16 bit)
  721.              CinePak by Radius[32]  (32 bit version of Radius CinePak, shipped with Windows 95)
  722.  
  723. Peter Plantec's Caligari TrueSpace2 Bible strongly recommends using the Radius
  724. codec for superior results when generating AVI files from TrueSpace.
  725.  
  726. Cinepak uses the Microsoft Four Character Code CVID
  727.  
  728. [drivers32]
  729. VIDC.CVID=ICCVID.DLL
  730.  
  731. in Windows 95
  732.  
  733. [drivers]
  734. VIDC.CVID=ICCVID.DRV
  735.  
  736. in Windows 3.x
  737.  
  738. Cinepak uses Vector Quantization based image compression and frame
  739. differencing.
  740.  
  741.  
  742. <A HREF="#VQ">Vector Quantization</A>
  743.  
  744. <A HREF="#Top">Return to Top</A>
  745.  
  746. <A NAME="MJPG">
  747. <H4>Motion JPEG</H4>
  748. </A>
  749.  
  750. Most PC video capture and editing systems capture video to AVI
  751. files using Motion JPEG video compression.  In Motion JPEG, each
  752. video frame is compressed separately using the JPEG still image
  753. compression standard.  No frame differencing or motion estimation
  754. is used to compress the images.  This makes frame accurate 
  755. editing without any loss of image quality during the editing
  756. possible.
  757.  
  758. The standards situation for Motion JPEG is complicated since
  759. at one time there was no industry standard for Motion JPEG.  
  760. Microsoft has a Microsoft Motion JPEG Codec and a JPEG DIB
  761. Format.  The OpenDML Avi File Format Extensions (another
  762. standard for extending AVI to support professional video
  763. features) includes Motion JPEG support.  See the Paradigm
  764. Matrix site below for more information on these standards.
  765.  
  766. Motion JPEG codecs usually use the Four Character Code 'MJPG'.
  767.  
  768. Motion JPEG is used for editing and authoring, but rarely for 
  769. distribution.  Usually, once the video has been edited, it is
  770. compressed further using CinePak or another codec for distribution.
  771. Because Motion JPEG does not use frame differencing or motion
  772. estimation, better compression is possible with other codecs.
  773.  
  774. A software Motion JPEG codec for Windows NT and Windows 95 is available 
  775. from Paradigm Matrix at:
  776.  
  777. <A HREF="http://www.pmatrix.com/Goodies.htm">http://www.pmatrix.com/Goodies.htm</A>
  778.  
  779. The Paradigm Matrix Motion JPEG codec uses the Four Character Code
  780. MJPG.
  781.  
  782. Motion JPEG uses the Block Discrete Cosine Transform (DCT) for
  783. image compression.
  784.  
  785. <A HREF="#Top">Return to Top</A>
  786.  
  787. <A NAME="XMPG">
  788. <H4>Editable MPEG</H4>
  789. </A>
  790.  
  791. At least two companies defined schmes to wrap editable MPEG (I frames
  792. only MPEG) in AVI files.  Xing Technology's editable MPEG AVI uses
  793. the Four Character Code XMPG.  Sigma Designs defined an AVI format
  794. using the Four Character Code MPGI.
  795.  
  796. Editable MPEG consists of only MPEG I frames.  This omits the MPEG
  797. motion estimation.  It is very similar to Motion JPEG.  By wrapping
  798. I frames only MPEG in AVI, editable MPEG works with standard Video for
  799. Windows editing and authoring applications such as Adobe Premiere.
  800.  
  801. Xing Technologies
  802. <A HREF="http://www.xingtech.com/">http://www.xingtech.com/</A>
  803.  
  804. Sigma Designs
  805. <A HREF="http://www.graphcomp.com/info/specs/ms/editmpeg.htm">MPEG Extensions to AVI File 
  806. Format (Draft 1.1 by Sigma Designs)</A>
  807.  
  808. <A HREF="#Top">Return to Top</A>
  809.  
  810. <H3>The New Wave</H3>
  811.  
  812. Recently (5/18/97), there has been a proliferation of new Video for
  813. Windows codecs.  A few like H.261 have been around for a while, but
  814. most represent implementations of new or improved technologies such as
  815. wavelets.  Many are targetted toward low bitrate video over the
  816. Internet.  For lack of better terminology, I refer to these as the New
  817. Wave to differentiate them from the older codecs like Cinepak included
  818. with Video for Windows 1.1e (the last release prior to Windows 95).
  819.  
  820. Microsoft appears to be developing or licensing some of these codecs as part of
  821. NetShow, NetMeeting, and other Microsoft initiatives.
  822.  
  823. <A NAME="VDOW">
  824. <H4>VDOWave or VDOLive from VDONet</H4>
  825. </A>
  826.  
  827. VDONet <A HREF="http://www.vdonet.com/">http://www.vdonet.com/</A>
  828. 4009 Miranda Ave., Suite 250
  829. Palo Alto, CA  94304
  830. Voice: (415) 846-7730
  831. FAX: (415) 846-7900
  832.  
  833. markets a wavelet based video codec which includes a Video for Windows
  834. (32 bit) implementation.  Microsoft appears to have licensed VDOWave as
  835. part of the NetShow product.  This codec uses the Microsoft Four
  836. Character Code (FOURCC) VDOW and adds the line
  837.  
  838. [drivers32]
  839. VIDC.VDOW=vdowave.drv
  840.  
  841. to the Windows 95 SYSTEM.INI files.
  842.  
  843. The driver from NetShow includes both encoding and decoding
  844. capabilities.  In some of my tests, VDOWave appears significantly
  845. superior to MPEG-1 and the other block Discrete Cosine Transform based
  846. codecs at low bitrates.
  847.  
  848. VDONet uses the trademark VDOWave for its wavelet based video codec.
  849. VDONet uses the trademark VDOLive for its VDOLive On-Demand Product
  850. Line.  This includes the VDOLive On-Demand Server, the VDOLive tools
  851. including VDOCapture and VDOClip, and the VDOLive Player.  Sometimes
  852. VDOLive and VDOWave are used interchangably by users and in some company
  853. literature.
  854.  
  855. VDONet also has a VDOPhone product for real-time videoconferencing.
  856.  
  857. Based on the company documentation, published reports, and viewing the
  858. technology, VDOWave appears to be a combination of wavelet based image
  859. compression and motion compensation or frame differencing.
  860.  
  861. <A HREF="#Top">Return to Top</A>
  862.  
  863. <A NAME="IV41">
  864. <H4>What is Indeo Video Interactive?</H4>
  865. </A>
  866.  
  867. Indeo Video Interactive, Indeo 4.1, is a new version of Indeo
  868. from Intel based on a "hybrid wavelet algorithm" 
  869. according to Intel.  This is a different compression algorithm than Indeo 3.2 
  870. which is included with Video for Windows.  Indeo 3.2 uses Vector Quantization.
  871.  
  872. Indeo Video Interactive can be installed as a Video for Windows
  873. codec or in the new ActiveMovie environment from Microsoft.
  874.  
  875. For further information on Indeo Video Interactive
  876.  
  877. <A HREF="http://www.intel.com/pc-supp/multimed/indeo/index.htm">
  878. http://www.intel.com/pc-supp/multimed/indeo/index.htm</A>
  879.  
  880.  
  881. How to identify an AVI file that uses Indeo Video Interactive
  882. for the video compressor?
  883.  
  884. Video for Windows identifies different video compressors through
  885. four character codes.  For example, 'cvid' is the four character
  886. code for the widely used CinePak compressor.  The four character
  887. code is found in the video stream header 'strh' in the AVI file.
  888.  
  889. Indeo Video Interactive (Indeo 4.1) uses the four character code
  890. 'iv41'
  891.  
  892. If Indeo Video Interactive is not installed installed Video for
  893. Windows will report an error, indicating that it cannot find the
  894. compressor for 'iv41'.  The specific message appears to be:
  895.  
  896. "Video not available, cannot find 'vids:iv41' decompressor."
  897.  
  898. <B>NOTE:</B> Indeo 4.1 claims to implement a hybrid wavelet transform.
  899. Some of the behavior of the codec at low bitrates differs from other
  900. wavelet based image and video compressors such as VDOWave, Infinop's
  901. Lightning Strike, and some public domain wavelet compression software.
  902. In particular, at low bitrates, I have seen the characteristic checkerboard
  903. pattern of 8x8 pixel blocks seen in block based transform coding methods such
  904. as MPEG-1.  I'm not sure what Intel means by hybrid wavelet transform.
  905.  
  906. In general, at low bitrates, image and video compression schemes using the
  907. Discrete Wavelet Transform (DWT) exhibit a blurring at the edges of objects and
  908. also "ringing" artifacts near edges.  They do not exhibit the blocking 
  909. artifacts, checkerboard pattern in extreme cases, seen in block Discrete Cosine
  910. Transform based image and video compression.
  911.  
  912. <A HREF="#Top">Return to Top</A>
  913.  
  914. <A NAME="IV50">
  915. <H4>Indeo Video Interactive 5.0</H4>
  916.  
  917. Intel is now (8/1/97) distributing an Indeo Video Interactive 5.0
  918. Beta software on their web site.  Indeo 5.0 claims to use a new
  919. better wavelet compression algorithm for improvied video quality.
  920.  
  921. <A HREF="http://developer.intel.com/ial/indeo/video/beta/index.htm">http://developer.intel.com/ial/indeo/video/beta/index.htm</A>
  922.  
  923. <A HREF="#Top">Return to Top</A>
  924.  
  925. <A NAME="UCOD">
  926. <H4>ClearVideo (aka RealVideo)</H4>
  927. </A>
  928.  
  929. ClearVideo is a video codec from Iterated Systems(<A
  930. HREF="http://www.iterated.com/"> http://www.iterated.com</A>
  931.  
  932. Iterated has also licensed the ClearVideo technology to Progressive
  933. Networks, makers of RealAudio, under the name RealVideo.
  934.  
  935. You can (or could at one time) download a Video for Windows demo of
  936. ClearVideo from the Iterated Web site.  This includes a demo Video for
  937. Windows codec that allows both encoding and decoding The video can
  938. only be played on the same machine with the demo encoder.  This codec
  939. works with Video for Windows applications such as Media Player and
  940. VidEdit.
  941.  
  942. Fractal video encoding appears to be very slow (computationally 
  943. intensive).  The video is similar or somewhat
  944. superior to MPEG-1 in quality.
  945.  
  946. ClearVideo uses Fractal Image Compression.  Iterated is the main
  947. (only?) producer of commercial fractal image and video compression
  948. technology.
  949.  
  950. The Video for Windows evaluation version of ClearVideo
  951. installs
  952.  
  953. [drivers32]
  954. VIDC.UCOD=CLRVIDCD.DLL
  955.  
  956. in SYSTEM.INI in Windows 95.
  957.  
  958. <A HREF="#Top">Return to Top</A>
  959.  
  960. <A NAME="SFMC">
  961. <H4>SFM (Surface Fitting Method)</H4>
  962. </A>
  963.  
  964. Crystal Net Corporation (<A
  965. HREF="http://www.crystalnet.com/">http://www.crystalnet.com/</A> seeks
  966. to license a technology called SFM or Surface Fitting Method.  This is
  967. supposed to be a low bitrate video technology for ISDN and POTS (Plain
  968. Old Television Service) bitrates.  They have a Video for Windows demo
  969. to download from their Web site.
  970.  
  971. SFM used the Microsoft Four Character Code (FOURCC)  SFMC.
  972.  
  973. The demo installs (actually the instructions tell you to manually install):
  974.  
  975. [drivers32]
  976. VIDC.SFMC=SFMdemo.dll
  977.  
  978. in Windows 95.
  979.  
  980. The demo does not include an encoder which presents problems in evaluating 
  981. the technology.  However, SFM appears to be some sort of edge detection based
  982. encoding technology.  
  983.  
  984. <A HREF="#Top">Return to Top</A>
  985.  
  986. <A NAME="QPEG">
  987. <H4>QPEG</H4>
  988. </A>
  989.  
  990. Q-Team Dr. Knabe produces a Video for Windows codec known as QPEG.
  991. Currently (6/27/97), QPEG supports 8 bit color.  Q-Team plans 16 and
  992. 24 bit color, MMX support, and other additional features in the
  993. future.
  994.  
  995. Sample AVI/QPEG files and Video for Windows QPEG codecs for
  996. Windows 3.x and Windows 95/NT are available at the Q-Team
  997. web site.
  998.  
  999. <A HREF="http://www.q-team.de/">http://www.q-team.de/</A>
  1000.  
  1001. Q-Team is also working on MPEG-4 for the PC.
  1002.  
  1003. <A HREF="#Top">Return to Top</A>
  1004.  
  1005. <A NAME="H261">
  1006. <H4>H.261</H4>
  1007. </A>
  1008.  
  1009. H.261 is an international standard, widely used for video conferencing
  1010. in the 128 Kbits/second to 384 Kbits/second range.  This is a block
  1011. Discrete Cosine Transform method.  Actually, H.261 was the first
  1012. international standard developed using the block Discrete Cosine
  1013. Transform and motion compensation.  MPEG-1, which is probably better
  1014. known, followed the H.261 effort.
  1015.  
  1016. Intel's ProShare videoconferencing product installs a Video for Windows H.261 codec.
  1017.  
  1018. <B>NOTE:</B>  I've never generated an AVI files with Intel's H.261, so it
  1019. may only be used for Intel ProShare videoconferencing and not with AVI.
  1020.  
  1021. Microsoft has a Microsoft H.261 Video for Windows 32 bit codec.
  1022.  
  1023. [drivers32]
  1024. VIDC.M261=MSH261.DRV
  1025.  
  1026. in Windows 95.
  1027.  
  1028. <A HREF="#Top">Return to Top</A>
  1029.  
  1030. <A NAME="H263">
  1031. <H4>H.263</H4>
  1032. </A>
  1033.  
  1034. H.263 is another international standard, based on the Block Discrete
  1035. Cosine Transform (DCT) and motion compensation.  H.263 has a number of
  1036. improvements, mostly in the area of motion compensation, over the
  1037. earlier H.261 standard.  It is targeted toward very low bitrate video
  1038. compression.
  1039.  
  1040. Microsoft's NetShow appears to install a Microsoft H.263 video codec.
  1041. Microsoft H.263 uses the Four Character Code M263.
  1042.  
  1043. [drivers32]
  1044. VIDC.M263=msh263.drv
  1045.  
  1046. in Windows 95.
  1047.  
  1048. <B>NOTE:</B> I've never been able to generate an AVI files with
  1049. Microsoft H.263, so it may only be used for videoconferencing such as
  1050. Microsoft's NetMeeting and not with AVI.  Actually, I managed to crash
  1051. Windows 95 by trying to compress an AVI file using the Microsoft H.263
  1052. selection with VidEdit.
  1053.  
  1054. Vivo Software Inc. markets streaming H.263 and G.723 audio for the
  1055. Web under the brand name VivoActive.  Vivo has its own file format
  1056. called .VIV which can be embedded in web pages.  Vivo provides
  1057. a player called VivoActive player and an authoring tool for
  1058. creating .VIV files called VivoActive Producer. 
  1059.  
  1060. There is also a codec that identifies itself as Vivo H.263
  1061. Video Codec[32] which installs
  1062.  
  1063. [drivers32]
  1064. VIDC.VIVO=IVVIDEO.DLL
  1065.  
  1066. in Windows 95.
  1067.  
  1068. The Vivo Software Web Site:
  1069.  
  1070. <A HREF="http://www.vivo.com/">http://www.vivo.com/</A>
  1071.  
  1072. <A HREF="#Top">Return to Top</A>
  1073.  
  1074. <A NAME="MPG4">
  1075. <H4>MPEG-4</H4>
  1076. </A>
  1077.  
  1078. Microsoft's NetShow installs a Video for Windows codec for
  1079. MPEG-4.   MPEG-4 is a new international standard that has not
  1080. been officially released as yet.  Microsoft is deeply involved in
  1081. the MPEG-4 standardization effort.  Microsoft has been using
  1082. its MPEG-4 for the Microsoft NBC Business Video broadcasting over
  1083. the Internet.
  1084.  
  1085. MPEG-4 uses the Microsoft Four Character Code (FOURCC) MPG4.
  1086.  
  1087. [drivers32]
  1088. VIDC.MPG4=msscrc32.dll
  1089.  
  1090. <A HREF="#Top">Return to Top</A>
  1091.  
  1092. <A NAME="VxTreme">
  1093. <H4>VxTreme</H4>
  1094. </A>
  1095.  
  1096. Although I have not seen a Video for Windows implementation of VxTreme
  1097. (5/18/97), I thought that I should include this codec.  Undoubtedly,
  1098. it will be ported to Video for Windows and/or ActiveMovie if this has
  1099. not already happened.
  1100.  
  1101. VxTreme(<A HREF="http://www.vxtreme.com/">http://www.vxtreme.com/</A>
  1102. markets a video codec that is usually identified as a wavelet based
  1103. codec.
  1104.  
  1105. A VxTreme player, a Plug-In for Internet Explorer and Netscape, is
  1106. available at the VxTreme Web site.
  1107.  
  1108. VxTreme has some very impressive demos of QCIF (160x120) talking heads
  1109. material on their Web sites.  The subjective image quality during
  1110. scenes with small changes is quite good, much superior to the block
  1111. Discrete Cosine Transform based codecs and probably VDONet's VDOWave.
  1112. Text such as movie titles and credits appears to encode very well.
  1113. Preserving the sharp edges of text is a major problem in block
  1114. Discrete Cosine Transform based encoders such as the JPEG still image
  1115. compression standard and the MPEG video compression standard.  In
  1116. general, wavelet image compression encounters problems with sharp
  1117. edges as well.
  1118.  
  1119. VxTreme clearly uses some sort of motion compensation or frame
  1120. differencing.  Image quality drops dramatically during periods with
  1121. rapid changes.  I viewed a number of movie trailers encoded with
  1122. VxTreme for 28.8 Kbits/second such as the trailer for "Goldeneye".
  1123. These trailers contain many scene changes and motion.  Video quality
  1124. is poor, hardly superior to competitors such as H.261 or Microsoft's
  1125. MPEG-4.  The talking heads material at 28.8 looks almost natural.
  1126.  
  1127. VxTreme may be a combination of the Discrete Wavelet Transform (??)
  1128. and motion compensation.  The preservation of sharp edges suggests
  1129. something beyond the vanilla Discrete Wavelet Transforms described in
  1130. the technical literature on wavelet based image and video compression.
  1131.  
  1132. <A HREF="#Top">Return to Top</A>
  1133.  
  1134. <A NAME="VfWInstalled">
  1135. <H2>How to determine which Video for Windows decompressors are installed on a PC?</H2>
  1136. </A>
  1137.  
  1138. In the SYSTEM.INI file, there is a section [drivers] which will contain
  1139. some lines as follows:
  1140.  
  1141. [drivers]
  1142. VIDC.MSVC=msvidc.drv
  1143. VIDC.YVU9=isvy.drv
  1144. VIDC.IV31=indeor3.drv
  1145. VIDC.RT21=indeo.drv
  1146. VIDC.CVID=iccvid.drv
  1147. VIDC.MRLE=msrle.drv
  1148.  
  1149. AVI files contain a four character code (such as 'IV31' or 'CVID')
  1150. in the stream header for the video stream.  This four character
  1151. code identifies the video compressor used for the video stream.
  1152. For example, 'CVID' is the identifier for CinePak (formerly Compact
  1153. Video) compression.
  1154.  
  1155. Video for Windows prefixes the four character code with VIDC. and
  1156. uses it to look up the video decompressor driver in SYSTEM.INI
  1157. iccvid.drv is the driver for CinePak in the example above.
  1158.  
  1159. Note: These are 16-bit drivers.  Windows 95 adds a section [drivers32]
  1160. for 32 bit drivers.  There are 32 bit versions of the Video for
  1161. Windows drivers.  See below (and notice that the 32 bit drivers have
  1162. different names from the 16 bit drivers).
  1163.  
  1164. [drivers32]
  1165. vidc.cvid=iccvid.dll          ; Cinepak for Windows 32
  1166. vidc.iv31=ir32_32.dll
  1167. vidc.iv32=ir32_32.dll
  1168. vidc.msvc=msvidc32.dll
  1169. vidc.mrle=msrle32.dll
  1170.  
  1171. WINDOWS 95
  1172.  
  1173. In Windows 95:
  1174.  
  1175. (1) Open the Control Panel
  1176.  
  1177. (2) Double click on the Multimedia Icon (applet)
  1178.  
  1179. (3) Select the "Advanced" Tab
  1180.  
  1181. (4) Under the Multimedia Drivers icon, double click on the Video Compression Codecs icon
  1182. to open it.  This gives a list of installed video codecs.
  1183.  
  1184. <A HREF="#Top">Return to Top</A>
  1185.  
  1186. <A NAME="WhichAVICodec">
  1187. <H3>How to determine which codec was used to compress an AVI file</H3>
  1188. </A>
  1189.  
  1190. LOW LEVEL WAY THAT WORKS ON ANY OPERATING SYSTEM WITH A FILE EDITOR!
  1191.  
  1192. A low level way to find out is to view the avi file with an editor, for example the
  1193. standard EDIT command in DOS will work.  Search for the four character code vids (usually
  1194. lower case).  vids indicates a VIDeo Stream.  vids is immediately followed by the
  1195. four character code for the compressor used for the AVI file.  For example, a full
  1196. frames (uncompressed) AVI will contain the string:
  1197.  
  1198. vidsDIB
  1199.  
  1200. An AVI compressed using Microsoft Video 1 will contain the string:
  1201.  
  1202. vidsmsvc
  1203.  
  1204. And so forth.
  1205.  
  1206. See elswhere in this overview for information on the Microsoft Four Character Codes.
  1207.  
  1208.  
  1209. WINDOWS 95
  1210.  
  1211. In Windows 95 (or Windows NT 4.0):
  1212.  
  1213. Left click on the avi file's icon.
  1214.  
  1215. This brings up a menu of items.
  1216.  
  1217. Select Properties.
  1218.  
  1219. Click on the Details tab in the Properties sheet.
  1220.  
  1221. Look under Video Format in the Details.  This will list the compression used.
  1222.  
  1223. <A HREF="#Top">Return to Top</A>
  1224.  
  1225. <A NAME="BestCodec">
  1226. <H3>Which compressor is best?</H3>
  1227. </A>
  1228.  
  1229. CinePak is the most widely used.  CinePak reportedly provides the fastest
  1230. playback of video.  While Indeo 3.2 provides similar or slightly
  1231. superior image quality for same compression, Indeo decompression is
  1232. much more CPU intensive than CinePak.  CinePak was originally
  1233. developed for the Mac and licensed to Apple by SuperMac.  It is now
  1234. free with Video for Windows.  It is also free with Apple's QuickTime.
  1235.  
  1236. There are at least three CinePak codecs in existence:
  1237.  
  1238.              CinePak by SuperMac    (the original, 16 bit)
  1239.              CinePak by Radius      (newer, better?, 16 bit)
  1240.              CinePak by Radius[32]  (32 bit version of Radius CinePak, shipped with Windows 95)
  1241.  
  1242. Peter Plantec's Caligari TrueSpace2 Bible strongly recommends using the Radius
  1243. codec for superior results when generating AVI files from TrueSpace.
  1244.  
  1245. CinePak is the best codec to use to insure ease of playback.  Few people
  1246. will have problems or need to install special codecs or software
  1247. to play an AVI compressed with CinePak.
  1248.  
  1249. CinePak is based on Vector Quantization and Frame Differencing to
  1250. achieve video compression.  Other technologies such as the
  1251. Block Discrete Cosine Transform and Motion Compensation can achieve
  1252. superior compression (smaller files for the same subjective visual
  1253. quality).
  1254.  
  1255. Codecs that beat CinePak
  1256.  
  1257. H.263 (probably H.261)              Block DCT/Motion Compensation
  1258. MPEG-4 Video Verification Model     Block DCT/Motion Compensation
  1259. Indeo Video Interactive (Indeo 4.x) "hybrid wavelet"
  1260. VDONet's VDOWave                    Discrete Wavelet Transform/Motion Compensation
  1261.  
  1262. Iterated System's RealVideo or ClearVideo   Fractal Compression
  1263.  
  1264. Although not integrated into AVI, the MPEG-1 digital video standard
  1265. with IPB frames outperforms CinePak.
  1266.  
  1267. The block DCT/Motion Compensation based codecs seem to perform 1.5 - 2.0
  1268. times better than CinePak.  VDOWave, a wavelet based codec, seems somewhat
  1269. better than this.
  1270.  
  1271. <A HREF="#Top">Return to Top</A>
  1272.  
  1273. <A NAME="FourCC">
  1274. <H2>Microsoft Four Character Codes (FOURCC)</H2>
  1275. </A>
  1276. A Four Character Code or FOURCC is a four byte code defined by
  1277. Microsoft as part of Video for Windows to identify various types
  1278. of video data.
  1279.  
  1280. Microsoft defined FOURCC's to uniquely identify pixel layouts and
  1281. video compressor types in Video for Windows.  For example, the FOURCC
  1282. 'CVID' identifies the CinePak (formerly Compact Video) video
  1283. compressor.  AVI files contain the FOURCC for the video compressor in the
  1284. video stream header.  
  1285.  
  1286. In addition to codecs, Four Character Codes identify the pixel layouts
  1287. used in uncompressed images and video.  For example, codes such as
  1288. 'YUY2' identify layouts of pixels in YUV space (as opposed to RGB).
  1289. These codes are used in interfacing with graphics cards.  For example,
  1290. the S3 ViRGE/VX chip supports the YUY2 pixel layout. YUY2 is popular
  1291. because it refers to the 4:2:2 format used in CCIR-601 (D1) digital
  1292. video.
  1293.  
  1294. Video for Windows, Display Control Interface (DCI), and Direct Draw 
  1295. all use FOURCC's.  
  1296.  
  1297. Incomplete List of Four Character Codes for Video for Windows Codecs
  1298.  
  1299. DIB           Full Frames (Uncompressed)
  1300. MSVC or CRAM  Microsoft Video 1
  1301. MRLE          Microsoft Run Length Encoding
  1302. IV31          Indeo 3.1/3.2
  1303. IV32          Indeo 3.1/3.2
  1304. CVID          CinePak (Radius)
  1305. ULTI          Ultimotion (IBM)
  1306. MJPG          Motion JPEG  (Microsoft, Paradigm Matrix, video capture companies)
  1307. IJPG          Intergraph JPEG
  1308. CYUV          Creative YUV
  1309. YVU9          Intel Indeo Raw YUV9
  1310. XMPG          Editable (I frames only) MPEG  (Xing)
  1311. MPGI          Editable MPEG (Sigma Designs)
  1312.  
  1313. IV41  Indeo Interactive (Indeo 4.1 from Intel)
  1314. UCOD  ClearVideo (Iterated Systems)
  1315. VDOW  VDOWave (VDONet)
  1316. SFMC  Surface Fitting Method (CrystalNet)
  1317. QPEG  Q-Team Dr.Knabe 's QPEG video compressor
  1318. H261  H.261
  1319. M261  Microsoft H.261
  1320. VIVO  Vivo H.263
  1321. M263  Microsoft H.263
  1322. MPG4  Microsoft MPEG-4
  1323.  
  1324.  
  1325. Extensive information on Microsoft's Four Character Codes (FOURCC) may be
  1326. found at 
  1327.  
  1328. <A HREF="http://www.flash.net/~dawilson/fourcc">Dave Wilson's The Almost Definitive FOURCC 
  1329. Definition List</A>
  1330.  
  1331.  
  1332. <A HREF="#Top">Return to Top</A>
  1333.  
  1334. <A NAME="ALGO">
  1335. <H2>Video Compression Technologies</H2>
  1336. </A>
  1337.  
  1338. There are several underlying technologies used by different Video for
  1339. Windows Codecs.  For example, Indeo 3.2 and Cinepak both use Vector
  1340. Quantization.  The international standards MPEG-1, MPEG-2, MPEG-4,
  1341. H.261, and H.263 all use a combination of the block Discrete Cosine
  1342. Transform (DCT) and motion estimation/compensation.  Several of the
  1343. New Wave codecs use wavelet transform based image compression (the
  1344. Discrete Wavelet Transform or DWT).  Other technologies include
  1345. Fractal Image Compression, represented by Iterated Systems.
  1346.  
  1347. Some general comments on image and video compression:
  1348.  
  1349. (1) Image compression may be lossless where no information is
  1350. lost during the compression process.  The image produced by
  1351. the decompression (also known as decoding) process is identical
  1352. bit by bit with the original image.  The widely used GIF format
  1353. is a lossless image and video (GIF89a or animated GIF) compression
  1354. format.
  1355.  
  1356. LOSSLESS COMPRESSION
  1357.  
  1358. (2) Image compression may be lossy where information is lost during
  1359. the compression process.  These schemes exploit limitations of the
  1360. human visual system.  Some errors are undetectable by the human
  1361. eye.  Even though two images are different at the bit by bit level, the
  1362. human viewer cannot distinguish them.  Some errors are detectable by
  1363. the human eye but acceptable.  Some errors are detectable and very
  1364. annoying.  The widely used JPEG image compression standard is a lossy
  1365. compression scheme.
  1366.  
  1367. LOSSY COMPRESSION
  1368.  
  1369. (3) Within lossy image and video compression, a compression scheme may
  1370. be perceptually lossless, in which case the human viewer cannot 
  1371. distinguish between the original image or video and the decompressed 
  1372. compressed image or video which has errors introduced by the lossy
  1373. compression.  Most lossy image and video compression have some sort of
  1374. quality factor or factors.  If the quality is good enough, then the image will
  1375. be perceptually lossless.
  1376.  
  1377. PERCEPTUALLY LOSSLESS COMPRESSION
  1378.  
  1379. (3) JPEG's and MPEG's and other lossy compression of images and video
  1380. are often compressed beyond the point of perceptual losslessness, but
  1381. the compressed images and video are still acceptable to the human viewer.
  1382. If the compression and decompression degrades the image in a way that
  1383. is very similar or identical to the natural degradation of images that might
  1384. occur in the world then the human visual system will not object greatly.
  1385.  
  1386. Loss of fine detail in an image is often acceptable because humans
  1387. perceive objects in the natural world with widely varying levels of
  1388. detail depending on how close the human viewer is to the object and
  1389. whether the human viewer is looking directly at the object or not.
  1390. The human viewer sees less detail if an object is further away.
  1391. When a human viewer looks directly at an object, the viewer uses a
  1392. small very high resolution part of the retina.  If an object is to one
  1393. side of the direction of view, the viewer is using lower resolution
  1394. parts of the retina.  Human beings are also used to certain natural
  1395. forms of degradation such as rain, snow, and fog.
  1396.  
  1397. Note that in all these natural viewing situation, the human viewer
  1398. will still perceive sharp edges and lines in an image regardless of
  1399. the level of detail.  The human viewer will usually perceive the
  1400. objects as the same object despite the variations in level of detail.
  1401. A horse is a horse is a horse.
  1402.  
  1403. NATURALLY LOSSY COMPRESSION
  1404.  
  1405. (4) Sufficiently low quality lossy compression will introduce visual
  1406. artifacts that are highly annoying to the human viewer.  An example
  1407. is the blocking artifacts visible in highly compressed MPEG video and
  1408. other block Discrete Cosine Transform based image compression codecs.
  1409. At some point the lossy compression will introduce artifacts that are
  1410. very unnatural and are perceived as new objects in the scene or spurious
  1411. lines within the image. 
  1412.  
  1413. The human visual system is very sensitive to lines or edges.  One of its
  1414. main functions appears to be to detect and characterize physical
  1415. objects such as other people, potential threats such as predators, food
  1416. plants, and other things.  Objects in the visual system are dilineated by
  1417. edges.  Anything such as a codec algorithm that destroys or creates an
  1418. edge in an image is noticed, particularly if the edge is interpreted as
  1419. the border of an object by the human visual and cognitive system.
  1420.  
  1421. UNNATURAL LOSSY COMPRESSION 
  1422.  
  1423. All of the widely used video codecs are lossy compression algorithms.
  1424. At sufficiently high compression most of them will have problems with the
  1425. edges in the image.  Vector quantization, block Discrete Cosine Transform,
  1426. and wavelet based image and video compression inherently do not 
  1427. mathematically represent the intuitive notion of an edge or line.
  1428.  
  1429. THE POINT:  In using and selecting video codecs, the author of an
  1430. AVI file (or a compressed digital video in general) needs to achieve
  1431. NATURALLY LOSSY COMPRESSION or better.  Once the compression 
  1432. introduces noticable AND unnatural artifacts, the video is of very
  1433. limited use even in cases where some features and objects are 
  1434. recognizable.
  1435.  
  1436. A basic description of video compression technologies follows.  I have
  1437. tried to avoid the dense mathematics found in most of the technical
  1438. video and image compression literature.
  1439.  
  1440. <A HREF="#Top">Return to Top</A>
  1441.  
  1442. <A NAME="RLE">
  1443. <H3>Run Length Encoding</H3>
  1444. </A>
  1445.  
  1446. VIDEO CODECS THAT USE RUN LENGTH ENCODING
  1447.  
  1448. Microsoft RLE (MRLE)
  1449.  
  1450. Run length encoding is also used to encode the DCT coefficients in
  1451. the block Discrete Cosine Transform (DCT) based international
  1452. standards MPEG, H.261, H.263, and JPEG.
  1453.  
  1454.  
  1455. STRENGTHS AND WEAKNESSES
  1456.  
  1457. 1.  Works for bilevel or 8 bit graphic images such as cel animation.
  1458.  
  1459. 2.  Not good for high resolution natural images.
  1460.  
  1461.  
  1462. OVERVIEW
  1463.  
  1464. Run length encoding encodes a sequence or run of consecutive
  1465. pixels of the same color (such as black or white) as a single
  1466. codeword.
  1467.  
  1468. For example, the sequence of pixels
  1469.  
  1470. 77 77 77 77 77 77 77
  1471.  
  1472. could be coded as
  1473.  
  1474. 7 77  (for seven 77's)
  1475.  
  1476. Run length encoding can work well for bi-level images (e.g.
  1477. black and white text or graphics) and for 8 bit images, particularly
  1478. images such as cel animations which contain many runs of the same
  1479. color.
  1480.  
  1481. Run length encoding does not work well for 24 bit natural images
  1482. in general.  Runs of the same color are not that common.
  1483.  
  1484. <A HREF="#Top">Return to Top</A>
  1485.  
  1486. <A NAME="VQ">
  1487. <H3>Vector Quantization</H3>
  1488. </A>
  1489.  
  1490. VIDEO CODECS THAT USE VECTOR QUANTIZATION
  1491.  
  1492. Indeo 3.2
  1493. Cinepak
  1494.  
  1495. Indeo 3.2 and Cinepak both use vector quantization.  As with most
  1496. digital video, Indeo and Cinepak work in the YUV color space (not RGB
  1497. for example).
  1498.  
  1499. STRENGTHS AND WEAKNESSES
  1500.  
  1501. 1.  The encoding process is computationally intensive.  Still cannot
  1502. be done in real time without dedicated hardware.
  1503.  
  1504. 2.  The decoding process is very fast.
  1505.  
  1506. 3.  Blocking artifacts at high compression.
  1507.  
  1508. 4.  Generally, block Discrete Cosine Transform and Discrete Wavelet
  1509. Transform based image compression methods can achieve higher compression.
  1510.  
  1511. OVERVIEW
  1512.  
  1513. The basic idea of Vector Quantization based image compression is to
  1514. divide the image up into blocks (4x4 pixels in YUV space for Indeo and
  1515. Cinepak).  Typically, some blocks (hopefully many) are similar to
  1516. other blocks although usually not identical.  The encoder identifies a
  1517. class of similar blocks and replaced these with a "generic" block
  1518. representative of the class of similar blocks.  The encoder encodes a
  1519. lookup table that maps short binary codes to the "generic" blocks.
  1520. Typically, the shortest binary codes represent the most common classes
  1521. of blocks in the image.
  1522.  
  1523. The Vector Quantization (VQ) decoder uses the lookup table to assemble
  1524. an approximate image comprised of the "generic" blocks in the lookup
  1525. table.
  1526.  
  1527. Note that this is inherently a lossy compression process because the
  1528. actual blocks are replaced with a generic block that is a "good
  1529. enough" approximation to the original block.
  1530.  
  1531. The encoding process is slow and computationally intensive because the
  1532. encoder must accumulate statistics on the frequency of blocks and
  1533. calculate the similarity of blocks in order to build the lookup table.
  1534.  
  1535. The decoding process is very quick because it is lookup table based.
  1536. In Vector Quantization, the lookup table may be called a codebook.
  1537. The binary codes that index into the table may be called codewords.
  1538.  
  1539. Higher compression is achieved by making the lookup table smaller,
  1540. fewer classes of similar blocks in the image.  The quality of the
  1541. reproduced approximate image degrades as the lookup table becomes
  1542. smaller.
  1543.  
  1544. Vector Quantization is prone to blocking artifacts as compression is increased.
  1545.  
  1546. Vector Quantization is an entire sub-field in signal and image
  1547. processing.  It goes well beyond the brief description above and  
  1548. is applied to other uses than video compression.
  1549.  
  1550. The standard reference book on Vector Quantization is:
  1551.  
  1552. Vector Quantization and Signal Compression
  1553. A. Gersho and R. Gray
  1554. Boston, MA : Kluwer, 1992
  1555.  
  1556. Like many image and signal processing books, this is heavy on
  1557. abstract math.
  1558.  
  1559. <H4>A Simple Example</H4>
  1560.  
  1561. Consider the following 4 by 4 blocks of pixels.  Each pixel has a value
  1562. in the range of 0-255.  This is a grayscale image for simplicity.
  1563.  
  1564. (Block 1)
  1565. 128 128 128 128
  1566.  
  1567. 128 128 128 128
  1568.  
  1569. 128 128 128 128
  1570.  
  1571. 128 128 128 128
  1572.  
  1573. (Block 2)
  1574. 128 127 128 128
  1575.  
  1576. 128 128 128 128
  1577.  
  1578. 128 128 127 128
  1579.  
  1580. 128 128 128 128
  1581.  
  1582. (Block 3)
  1583. 128 127 126 128
  1584.  
  1585. 128 128 128 128
  1586.  
  1587. 127 128 128 128
  1588.  
  1589. 128 128 128 128
  1590.  
  1591. In practice, the blocks will look the same to a human viewer.
  1592. The second and third blocks could be safely replaced by the first
  1593. block.  By itself, this does not compress the image.  However, the
  1594. replacement block (Block 1) could be represented by a short index into
  1595. a lookup table of 4x4 blocks.  For example, the index, in this case,
  1596. could be 1.
  1597.  
  1598. Lookup Table[1] = 128 128 128 128
  1599.                   128 128 128 128
  1600.                   128 128 128 128
  1601.                   128 128 128 128
  1602.  
  1603. The original image could be converted into a lookup table and a series
  1604. of indexes into the lookup table, achieving substantial compression.
  1605. In video, the same lookup table could be used for many frames, not just
  1606. a single frame.
  1607.  
  1608. <A HREF="#Top">Return to Top</A>
  1609.  
  1610. <A NAME="DCT">
  1611. <H3>Discrete Cosine Transform</H3>
  1612. </A>
  1613.  
  1614. VIDEO CODECS THAT USE DCT
  1615.  
  1616. Motion JPEG
  1617. Editable MPEG
  1618. MPEG-1
  1619. MPEG-2
  1620. MPEG-4
  1621. H.261
  1622. H.263
  1623. H.263+
  1624.  
  1625.  
  1626. STRENGTHS AND WEAKNESSES
  1627.  
  1628. 1.  Blocking artifacts at high compression.
  1629.  
  1630. 2.  Ringing at sharp edges.  Occasional blurring at sharp edges.
  1631.  
  1632. 3.  Computationally intensive.  Only recently has it been possible
  1633. to implement in real time on general purpose CPU's as opposed to
  1634. specialized chips.
  1635.  
  1636.  
  1637. OVERVIEW
  1638.  
  1639.    The Discrete Cosine Transform (DCT) is a widely used transform in
  1640. image compression.  The JPEG still image compression standard, the
  1641. H.261 (p*64) video-conferencing standard, the H.263 video-conferencing
  1642. standard and the MPEG (MPEG-1, MPEG-2, and MPEG-4) digital video
  1643. standards use the DCT.  In these standards, a two-dimensional (2D) DCT
  1644. is applied to 8 by 8 blocks of pixels in the image that is compressed.
  1645. The 64 (8x8 = 64) coefficients produced by the DCT are then quantized
  1646. to provide the actual compression.  In typical images, most DCT
  1647. coefficients from a DCT on an 8 by 8 block of pixels are small and
  1648. become zero after quantization.  This property of the DCT on real world
  1649. images is critical to the compression schemes.
  1650.  
  1651.    In addition, the human eyes are less sensitive to the high frequency
  1652. components of the image represented by the higher DCT coefficients.
  1653. A large quantization factor can and usually is applied to these
  1654. higher frequency components.  The de-facto standard quantization
  1655. matrix (a matrix of 64 quantization factors, one for each of the 64
  1656. DCT coefficients) in the JPEG standard has higher quantization factors
  1657. for higher frequency DCT coefficients.
  1658.  
  1659.    The quantized DCT coefficients are then run-length encoded as variable
  1660. length codes that indicate some number of zero coefficients followed by
  1661. a non-zero coefficient.  For example, a run-length code might indicate
  1662. 4 zero coefficients followed by a non-zero coefficient of level 2.  Short
  1663. variable length codes (e.g. 0110) are used for common combinations of
  1664. runs of zero and levels of the non-zero coefficient.  Longer variable
  1665. length codes (e.g. 0000001101) are used for less common combinations of
  1666. runs of zero and levels of the non-zero coefficient.  In this way,
  1667. substantial compression of the image is possible.
  1668.  
  1669.    The Discrete Cosine Transform itself is best explained as a 1 dimensional
  1670. (1D) DCT first.  The 2D DCT is equivalent to performing a 1D DCT on each
  1671. row of a block of pixels followed by a 1D DCT on each column of the block of
  1672. pixels produced by the 1D DCT's on the rows.
  1673.  
  1674.    The one dimensional Discrete Cosine Transform is applied to a block of
  1675. N samples (pixels in an image or sound pressure samples in an audio file).
  1676. The Discrete Cosine Transform is an NxN matrix whose rows are sampled
  1677. cosine functions:
  1678.  
  1679.             DCT(m,n) = sqrt( (1 - delta(m,1) ) / N )
  1680.  
  1681.                             * cos( (pi/N) * (n - 1/2) *  (m-1) )
  1682.  
  1683.               where
  1684.  
  1685.                           DCT(m,n) is the 1D DCT Matrix
  1686.                           m,n = 1,...,N
  1687.                           pi = 3.14159267...
  1688.                           N = number of samples in block
  1689.                           delta(m,1) = 1 if m is 1
  1690.                                        0 otherwise
  1691.                           cos(x) = cosine of x (radians)
  1692.                           *      = multiply
  1693.  
  1694.  
  1695.    Naively, performing a DCT on a block of N samples would require
  1696. N*N multiplies and adds.  However, the DCT matrix has
  1697. a recursive structure that allows implementation with order
  1698. N log(N) multiplies and adds (many fewer).  This makes the DCT practical
  1699. for implementation on current CPUs and DSPs.  
  1700.  
  1701. <A HREF="#Top">Return to Top</A>
  1702.  
  1703. <A NAME="FD">
  1704. <H3>Frame Differencing</H3>
  1705. </A>
  1706.  
  1707. VIDEO CODECS THAT USE FRAME DIFFERENCING
  1708.  
  1709. CinePak
  1710.  
  1711. STRENGTHS AND WEAKNESSES
  1712.  
  1713. 1. Generally can achieve better compression than independent encoding
  1714. of individual frames.
  1715.  
  1716. 2. Errors accumulate in successsive frames after a key frame, eventually
  1717. requiring another key frame.  (see below)
  1718.  
  1719. OVERVIEW
  1720.  
  1721. Frame Differencing exploits the fact that little changes from frame to
  1722. frame in many video or animation sequences.  For example, a video
  1723. might show a ball flying through the air in front of a static
  1724. background.  Most of the image, the background, does not change from
  1725. frame to subsequent frame in the scene.
  1726.  
  1727. In frame differencing, the still image compression method such as
  1728. vector quantization is applied to the difference between the frame and
  1729. the decoded previous frame.  Often, most of the difference is zero or
  1730. small values which can be heavily compressed.
  1731.  
  1732. Most often, frame differencing uses "key frames" which are frames
  1733. compressed without reference to a previous frame.  This limits accumulated
  1734. errors and enables seeking within the video stream.
  1735.  
  1736. In the widely used CinePak, a key frame is often set every 15 frames.
  1737. CinePak movies usually use frame differencing combined with vector
  1738. quantization.
  1739.  
  1740. If the compression scheme is lossy (vector quantization is lossy), errors
  1741. will accumulate from frame to frame.  Eventually these errors will become
  1742. visible.  This necessitates key frames!
  1743.  
  1744. <A HREF="#Top">Return to Top</A>
  1745.  
  1746. <A NAME="Motion">
  1747. <H3>Motion Compensation</H3>
  1748. </A>
  1749.  
  1750. VIDEO CODECS THAT USE MOTION COMPENSATION
  1751.  
  1752. ClearVideo (RealVideo) Fractal Video Codec from Iterated Systems
  1753. VDOWave from VDONet
  1754. VxTreme
  1755. MPEG-1,2, and 4
  1756. H.261
  1757. H.263
  1758. H.263+
  1759.  
  1760. STRENGTHS AND WEAKNESSES
  1761.  
  1762. 1. Motion compensation achieves high video compression in video
  1763. generally superior to frame differencing.
  1764.  
  1765. 2. The encoding phase of motion compensation (known as motion
  1766. estimation) is computationally intensive.  MPEG-1 with IP and
  1767. B frames cannot be encoded in real time without dedicated
  1768. hardware, a silicon implementation of motion estimation.
  1769.  
  1770. 3. The motion compensation scheme used in the international
  1771. standards MPEG, H.261, and H.263 works best for scenes with
  1772. limited motion such as talking heads.  In general, video with
  1773. heavy motion such as sports video is hard to compress with
  1774. motion compensation.
  1775.  
  1776. OVERVIEW
  1777.  
  1778. Motion Compensation codes for motion within a scene such as a ball
  1779. moving across a background.  The block Discrete Cosine Transform (DCT)
  1780. based international video standards MPEG-1, MPEG-2, MPEG-4, H.261, and
  1781. H.263 use motion compensation.  Iterated Systems ClearVideo (Real
  1782. Video) fractal Video Codec, VDOWave from VDONet, and VxTreme's video
  1783. codec use forms of motion compensation.
  1784.  
  1785. Motion Compensation refers to a number of ideas and algorithms.  The
  1786. motion compensation method used in MPEG and related international
  1787. standards (H.261 and H.263) is described below.  This motion
  1788. compensation works for translational motion only.  This is suited for
  1789. objects moving across a background or panning of the camera.  It does
  1790. not work well for spinning objects, resizing objects, or camera zooms.
  1791. Alternative forms of motion compensation exist which handle
  1792. rotational, scaling, skewing, and other kinds of motion in a scene.
  1793.  
  1794. Recognizing objects such as a flying ball in a scene is an unsolved
  1795. problem in image processing and understanding.  A way to exploit
  1796. the motion of the ball to achieve image compression is to partition the
  1797. image into blocks (16x16 pixels in MPEG-1).  Code a "motion vector" for
  1798. each block which points to the 16x16 pixel block in a previous (or
  1799. future) frame that most closely approximates the block being coded.
  1800. In many cases this reference block will be the same block (no motion).
  1801. In some cases this reference block will be a different block (motion).
  1802. The encoder need not recognize the presence of a ball or other object, only
  1803. compare blocks of pixels in the decoded and reference frames.
  1804.  
  1805. COMPRESSION IS ACHIEVED BY SENDING OR STORING ONLY THE MOTION VECTOR
  1806. (AND A POSSIBLE SMALL ERROR) INSTEAD OF THE PIXEL VALUES FOR THE
  1807. ENTIRE BLOCK.
  1808.  
  1809. Note that the reference block can be anywhere in the image.  The coded
  1810. or "predicted" blocks must form a partition or tiling of the image (frame)
  1811. being decoded.  A reference block can be any 16x16 pixel block in 
  1812. the reference frame (image) that most closely approximates the coded
  1813. or "predicted" block.  The reference frame must be decoded prior to
  1814. the current frame being decoded.
  1815.  
  1816. However, the reference frame need not be PRESENTED before the current
  1817. frame being decoded.  In fact, the reference frame could be a future
  1818. frame!!  MPEG allows for this through so-called B (bi-directionally
  1819. predicted) frames.
  1820.  
  1821. In the example of the ball in front of a static background, no motion
  1822. occurs in most of the blocks.  For these cases, the motion vectors
  1823. are zero.  Motion compensation for these blocks is then equivalent
  1824. to frame differencing, where the difference between the block and the
  1825. same block in a previous (or future) frame is coded.
  1826.  
  1827. For the block or blocks containing the moving ball, the motion vectors
  1828. will be non-zero, pointing to a block in a previous (or future) frame
  1829. that contains the ball.  The displaced block is subtracted from
  1830. the current block.  In general, there will be some left over non-zero
  1831. values, which are then coded using the still image compression scheme
  1832. such as Vector Quantization, the Block Discrete Cosine Transform, or
  1833. the Discrete Wavelet Transform.
  1834.  
  1835. MPEG style motion compensation does not require recognition of the
  1836. ball.  An encoder simply compares the block being coded with displaced
  1837. blocks in the reference frame (a previous or future frame).  The
  1838. comparison can use mean squared error or some other metric of
  1839. differences between images.  The encoder selects the displaced block
  1840. with the smallest mean squared error difference!  At no point has the
  1841. encoder recognized an object in the image.
  1842.  
  1843. In MPEG, the motion vectors are encoded as variable length codes for
  1844. greater compression.
  1845.  
  1846. The encoding process is called Motion Estimation.  This finds the
  1847. motion vector (or vectors) for each block.
  1848.  
  1849. The decoding process is called Motion Compensation.
  1850.  
  1851. Motion Compensation achieves greater compression than simple Frame
  1852. Differencing.
  1853.  
  1854. ILLUSTRATIVE EXAMPLE:
  1855.  
  1856.   Predicted Region                        Reference Region
  1857. (the current frame being decoded)       (a previously decoded frame)
  1858.   _________                              _________
  1859.  |    |    |                            |    |    |
  1860.  | *  |    |                            |    | *  |  (moving ball)
  1861.  | 4  | -4 |                            |    |    |
  1862.  |    |    |                            |    |    |
  1863.   _________                              _________
  1864.  |    |    |                            |    |    |
  1865.  | 0  | 0  |                            |    |    |  (no change)
  1866.  |    |    |                            |    |    |
  1867.  |    |    |                            |    |    |
  1868.   _________                              _________
  1869.  
  1870. The asterisk (*) represents a ball flying across the scene from right
  1871. to left.  
  1872.  
  1873. Four blocks with associated motion vectors (4, -4, 0, and 0).  The
  1874. upper left block looks like the upper right block in the reference
  1875. region (where the ball was).  The upper right block looks like the
  1876. upper left region in the reference region.  The lower left and
  1877. lower right blocks were unchanged.  In this simple example, the
  1878. vertical displacement is zero and is ignored.  
  1879.  
  1880. In this simple example, the region can be decoded using the
  1881. motion vectors alone.  In more general cases, there is an 
  1882. error between the frame predicted using motion vectors alone
  1883. and the actual frame.  This error is coded using a still image
  1884. compression scheme such as the block Discrete Cosine Transform (DCT).
  1885.  
  1886. In this simple example, the previously decoded frame is also
  1887. previous in the presentation order.  The previously decoded or
  1888. reference frame precedes the current frame in time.  In general, keep
  1889. in mind the distinction between decode order and presentation order.
  1890. The reference frame could be a future frame.
  1891.  
  1892. <A HREF="#Top">Return to Top</A>
  1893.  
  1894. <A NAME="ACM">
  1895. <H3>Audio Codecs</H3>
  1896. </A>
  1897.  
  1898. The sound tracks in an AVI file are Microsoft Waveform Audio (WAV) files.
  1899. The Waveform Audio files can be uncompressed PCM (Pulse Code Modulated) audio
  1900. or compressed with many different audio codecs (compressor/decompressors).
  1901.  
  1902. The windows multimedia system uses the terms WAVE or waveform audio to
  1903. refer to audio that consists of digitally sampled sound.  In contrast
  1904. to notes of music as in MIDI, another type of audio incorporated in
  1905. the Windows multimedia system.
  1906.  
  1907. The WAV, WAVE, or waveform audio system (different authors use all
  1908. three to refer to the Microsoft Windows audio system) predates
  1909. Video for Windows.  Video for Windows was wrapped around
  1910. WAVE.  Various compromises were made to insure backward compatibility
  1911. with existing WAVE applications, drivers, and files.  Keep this
  1912. in mind as there are various differences between the audio
  1913. system and the video system described in other sections of this
  1914. overview.
  1915.  
  1916. To play a waveform audio (WAV) file or the sound track of an AVI
  1917. compressed with a codec, the codec must be installed in the Audio
  1918. Compression Manager under Windows.  Windows PCM files (uncompressed)
  1919. are always supported.  The Audio Compression Manager (ACM) is the
  1920. software system in Windows that manages waveform audio codecs and
  1921. filters.
  1922.  
  1923. Different audio codecs are identified with different waveform audio
  1924. tags, 32 bit numbers.  Wave audio format tags are registered with
  1925. Microsoft.  
  1926.  
  1927. The following list of registered wave audio formats if from the
  1928. mmreg.h file in the Win32 SDK.  mmreg.h is the Registered Multimedia
  1929. Information Public Header File
  1930.  
  1931. /* WAVE form wFormatTag IDs */
  1932. #define  WAVE_FORMAT_UNKNOWN    0x0000  /*  Microsoft Corporation  */
  1933. #define  WAVE_FORMAT_ADPCM      0x0002  /*  Microsoft Corporation  */
  1934. #define  WAVE_FORMAT_IBM_CVSD   0x0005  /*  IBM Corporation  */
  1935. #define  WAVE_FORMAT_ALAW       0x0006  /*  Microsoft Corporation  */
  1936. #define  WAVE_FORMAT_MULAW      0x0007  /*  Microsoft Corporation  */
  1937. #define  WAVE_FORMAT_OKI_ADPCM  0x0010  /*  OKI  */
  1938. #define  WAVE_FORMAT_DVI_ADPCM  0x0011  /*  Intel Corporation  */
  1939. #define  WAVE_FORMAT_IMA_ADPCM  (WAVE_FORMAT_DVI_ADPCM) /*  Intel Corporation  */
  1940. #define  WAVE_FORMAT_MEDIASPACE_ADPCM   0x0012  /*  Videologic  */
  1941. #define  WAVE_FORMAT_SIERRA_ADPCM       0x0013  /*  Sierra Semiconductor Corp  */
  1942. #define  WAVE_FORMAT_G723_ADPCM 0x0014  /*  Antex Electronics Corporation  */
  1943. #define  WAVE_FORMAT_DIGISTD    0x0015  /*  DSP Solutions, Inc.  */
  1944. #define  WAVE_FORMAT_DIGIFIX    0x0016  /*  DSP Solutions, Inc.  */
  1945. #define  WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017  /*  Dialogic Corporation  */
  1946. #define  WAVE_FORMAT_YAMAHA_ADPCM       0x0020  /*  Yamaha Corporation of America  */
  1947. #define  WAVE_FORMAT_SONARC     0x0021  /*  Speech Compression  */
  1948. #define  WAVE_FORMAT_DSPGROUP_TRUESPEECH        0x0022  /*  DSP Group, Inc  */
  1949. #define  WAVE_FORMAT_ECHOSC1    0x0023  /*  Echo Speech Corporation  */
  1950. #define  WAVE_FORMAT_AUDIOFILE_AF36     0x0024  /*    */
  1951. #define  WAVE_FORMAT_APTX       0x0025  /*  Audio Processing Technology  */
  1952. #define  WAVE_FORMAT_AUDIOFILE_AF10     0x0026  /*    */
  1953. #define  WAVE_FORMAT_DOLBY_AC2  0x0030  /*  Dolby Laboratories  */
  1954. #define  WAVE_FORMAT_GSM610     0x0031  /*  Microsoft Corporation  */
  1955. #define  WAVE_FORMAT_ANTEX_ADPCME       0x0033  /*  Antex Electronics Corporation  */
  1956. #define  WAVE_FORMAT_CONTROL_RES_VQLPC  0x0034  /*  Control Resources Limited  */
  1957. #define  WAVE_FORMAT_DIGIREAL   0x0035  /*  DSP Solutions, Inc.  */
  1958. #define  WAVE_FORMAT_DIGIADPCM  0x0036  /*  DSP Solutions, Inc.  */
  1959. #define  WAVE_FORMAT_CONTROL_RES_CR10   0x0037  /*  Control Resources Limited  */
  1960. #define  WAVE_FORMAT_NMS_VBXADPCM       0x0038  /*  Natural MicroSystems  */
  1961. #define  WAVE_FORMAT_CS_IMAADPCM 0x0039 /* Crystal Semiconductor IMA ADPCM */
  1962. #define  WAVE_FORMAT_G721_ADPCM 0x0040  /*  Antex Electronics Corporation  */
  1963. #define  WAVE_FORMAT_MPEG       0x0050  /*  Microsoft Corporation  */
  1964. #define  WAVE_FORMAT_CREATIVE_ADPCM     0x0200  /*  Creative Labs, Inc  */
  1965. #define  WAVE_FORMAT_CREATIVE_FASTSPEECH8       0x0202  /*  Creative Labs, Inc  */
  1966. #define  WAVE_FORMAT_CREATIVE_FASTSPEECH10      0x0203  /*  Creative Labs, Inc  */
  1967. #define  WAVE_FORMAT_FM_TOWNS_SND       0x0300  /*  Fujitsu Corp.  */
  1968. #define  WAVE_FORMAT_OLIGSM     0x1000  /*  Ing C. Olivetti & C., S.p.A.  */
  1969. #define  WAVE_FORMAT_OLIADPCM   0x1001  /*  Ing C. Olivetti & C., S.p.A.  */
  1970. #define  WAVE_FORMAT_OLICELP    0x1002  /*  Ing C. Olivetti & C., S.p.A.  */
  1971. #define  WAVE_FORMAT_OLISBC     0x1003  /*  Ing C. Olivetti & C., S.p.A.  */
  1972. #define  WAVE_FORMAT_OLIOPR     0x1004  /*  Ing C. Olivetti & C., S.p.A.  */
  1973.  
  1974. //
  1975. //  the WAVE_FORMAT_DEVELOPMENT format tag can be used during the
  1976. //  development phase of a new wave format.  Before shipping, you MUST
  1977. //  acquire an official format tag from Microsoft.
  1978. //
  1979. #define WAVE_FORMAT_DEVELOPMENT         (0xFFFF)
  1980.  
  1981. <A HREF="#Top">Return to Top</A>
  1982.  
  1983. <A NAME="ACMInstalled">
  1984. <H3>How to determine which Audio Codecs are Installed</H3>
  1985. </A>
  1986.  
  1987. View the SYSTEM.INI file.  In Windows 95, 32 bit Audio Codecs are
  1988. listed in the [drivers32] section.
  1989.  
  1990. [drivers32]
  1991. msacm.lhacm=lhacm.acm
  1992. msacm.l3codec=l3codecb.acm
  1993. msacm.msg723=msg723.acm
  1994. msacm.msnaudio=msnaudio.acm
  1995.  
  1996. The string msacm stands for Microsoft Audio Compression Manager (ACM).
  1997. This is the system software component that manages audio codecs (and
  1998. other audio components) in 16 bit Windows and in Win32.  The different
  1999. codecs are identified by a string of arbitrary length such as msnaudio
  2000. for Microsoft Network Audio.  Note that this differs from Video for
  2001. Windows where everything is a Four Character Code.
  2002.  
  2003. The audio codecs in the example above were installed in Windows 95 by
  2004. Microsoft's NetShow streaming audio/video product.
  2005.  
  2006. The Audio Compression Manager (ACM) is in the process of being displaced by
  2007. ActiveMovie.
  2008.  
  2009. In Windows 95, 
  2010.  
  2011. (1) Open the Control Panel
  2012.  
  2013. (2) Double Click on the Multimedia Icon
  2014.  
  2015. (3) Select the Advanced tab 
  2016.  
  2017. (4) Under the Multimedia Drivers icon, double click on the Audio
  2018. Compression Codecs icon to see a list of installed audio codecs.  This
  2019. information is the same as the information stored in the SYSTEM.INI
  2020. file (see above).
  2021.  
  2022. <A HREF="#Top">Return to Top</A>
  2023.  
  2024. <A NAME="ActiveMovie">
  2025. <H2>ActiveMovie</H2>
  2026. </A>
  2027.  
  2028. Active Movie is a new multimedia architecture for Windows 95 and
  2029. Windows NT (4.0 and after).  ActiveMovie includes support for
  2030. playing AVI, Quicktime (.MOV), and MPEG files.  ActiveMovie is
  2031. apparently intended to supersede Video for Windows.
  2032.  
  2033. ActiveMovie 1.0 ships with the OEM Service Release 2 (OSR2) of Windows 95.
  2034. It did not ship with prior releases of Windows 95 but was available
  2035. separately through the ActiveMovie SDK.  
  2036.  
  2037. ActiveMovie 1.0 is also bundled with Microsoft's Internet Explorer for
  2038. Windows 95 and NT 4.0  Internet Explorer can be downloaded from the
  2039. Microsoft web site at:
  2040.  
  2041. <A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>
  2042.  
  2043. Active Movie 1.0 can be downloaded by itself from the Microsoft Internet
  2044. Explorer site.  (6/6/97)
  2045.  
  2046. ActiveMovie provides at least three different programming
  2047. interfaces:
  2048.  
  2049.                - The ActiveMovie ActiveX Control
  2050.                - ActiveMovie Component Object Model (COM) interfaces
  2051.                - The OM-1 MPEG MCI (Media Control Interface) command set
  2052.  
  2053. Amongst other things, the ActiveMovie ActiveX Control can be embedded
  2054. in HTML Web pages and programmed via VBScript or JavaScript.  It can also
  2055. be programmed using Visual C++ or Visual Basic as part of applications.
  2056.  
  2057. The ActiveMovie COM interaces can be accessed through Visual C++ or
  2058. Visual Basic.
  2059.  
  2060. ActiveMovie supports a subset of the Media Control Interface (MCI)
  2061. commands familiar to Video for Windows programmers.  These commands can
  2062. be accessed through the mciSendCommand(...) and mciSendString(...)
  2063. functions in C/C++.
  2064.  
  2065. ActiveMovie 1.0 does not provide video capture.  Windows 95 with
  2066. ActiveMovie 1.0 continues to use the Video for Windows video capture system
  2067. and drivers.
  2068.  
  2069. ActiveMovie 2.0 will provide a new, alternative mechanism for
  2070. video capture.  According to information distributed by Microsoft
  2071. at the WDM Device Driver Conference in April, 1997, ActiveMovie 2.0
  2072. will use the WDM Stream Class under Memphis (formerly Windows 97) and
  2073. Windows NT 5.0 to implement video capture.  This is subject to possible
  2074. change since neither Memphis nor NT 5.0 has been released (7/27/97).
  2075.  
  2076. Extensive information on ActiveX and ActiveMovie is available at the
  2077. Microsoft Web site.
  2078.  
  2079. ActiveMovie 1.0 SDK Documentation at (6/28/97):
  2080.  
  2081. <A 
  2082. HREF="http://www.microsoft.com/devonly/tech/amov1doc/">http://www.microsoft.com/devonly/tech/amo
  2083. v1doc/</A>
  2084.  
  2085. <A HREF="#Top">Return to Top</A>
  2086.  
  2087. <A NAME="GUID">
  2088. GUID's and AVI
  2089. </A>
  2090.  
  2091. GUID stands for Global Unique IDentifier.
  2092.  
  2093. In Microsoft's Component Object Model (COM) morass, an object oriented
  2094. programming model that incorporates MFC (Microsoft Foundation
  2095. Classes), OLE (Object Linking Embedding), ActiveX, ActiveMovie and
  2096. everything else Microsoft is hawking lately, a GUID is a 16 byte or
  2097. 128 bit number used to uniquely identify objects, data formats,
  2098. everything.
  2099.  
  2100. Within ActiveMovie, there are GUID's for video formats, corresponding
  2101. to the FOURCC's or Four Character Codes used in Video for Windows.
  2102. These are specified in the file uuids.h in the Active Movie Software
  2103. Developer Kit (SDK).  ActiveMovie needs to pass around GUID's that
  2104. correspond to the FOURCC for the video in an AVI file.
  2105.  
  2106. With proper programming, this should be hidden from end users but
  2107. ActiveMovie programmers need to know about GUID's.
  2108.  
  2109. <A HREF="#Top">Return to Top</A>
  2110.  
  2111.  
  2112. <A NAME="DirectShow">
  2113. <H2>DirectShow</H2>
  2114. </A>
  2115.  
  2116. DirectShow is Microsoft's new name for ActiveMovie 2.0  Microsoft
  2117. has shifted to marketing ActiveMovie as an integral part of
  2118. DirectX.  
  2119.  
  2120. Apparently DirectShow (ActiveMovie 2.0) will be released to the general
  2121. public as part of Direct X 5.0.
  2122.  
  2123. <A HREF="#Top">Return to Top</A>
  2124.  
  2125. <A NAME="DirectDraw">
  2126. <H2>DirectDraw</H2>
  2127. </A>
  2128.  
  2129. DirectDraw, one of the components of DirectX, is a new API that is
  2130. part of Windows 95.  DirectDraw allows programs to directly access
  2131. video memory and other hardware features in video display cards.  Direct
  2132. Draw also defines new device drivers for graphic/video display adapters.
  2133.  
  2134. In the Windows 3.1 Graphic Device Interface (GDI), an application
  2135. program never writes directly to the memory in a display card.  It
  2136. writes to a buffer in main memory within Windows.  GDI invokes a GDI
  2137. video device driver and copies the image from main memory to the video
  2138. memory of the video card.  This multiple copying of the image
  2139. inevitably slows down the display.
  2140.  
  2141. The DirectDraw API provides a mechanism allowing appliation programs
  2142. to write directly into the video card's memory.  It also provides a
  2143. mechanism to access various special features in video cards such as
  2144. color space conversion, hardware scaling, z-buffering, alpha blending,
  2145. and so forth.
  2146.  
  2147. Video card manufacturers must provide a DirectDraw driver for DirectDraw
  2148. to work with their card.  
  2149.  
  2150. Microsoft's ActiveMovie uses DirectDraw to achieve faster playback of
  2151. AVI, Quicktime, and MPEG files.
  2152.  
  2153. There is extensive information on the DirectDraw and DirectX API's at the
  2154. Microsoft Web site.
  2155.  
  2156. The DirectX 3 SDK can be downloaded from the Microsoft Developer
  2157. Online Web site (6/28/97):
  2158.  
  2159. <A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>
  2160.  
  2161. Select Microsoft SDKs from the Technical Information section, or point
  2162. your browser at:
  2163.  
  2164. <A HREF="http://www.microsoft.com/msdn/sdk/">http://www.microsoft.com/msdn/sdk/</A>
  2165.  
  2166.  
  2167. Versions of DirectX
  2168.  
  2169.    - DirectX 1
  2170.    - DirectX 2
  2171.    - DirectX 3
  2172.    - DirectX 3A (latest as of 2/18/97)
  2173.    - DirectX 5.0 (in development?)
  2174.    - DirectX 6.0 (mentioned occasionally by Microsoft)    
  2175.  
  2176. <A HREF="#Top">Return to Top</A>
  2177.  
  2178. <A NAME="GDI">
  2179. <H2>GDI Device Drivers</H2>
  2180. </A>
  2181.  
  2182. In Windows 3.1, and to a lesser extent Windows 95, the Graphic Device
  2183. Interface or GDI is the system that handles graphic display, including
  2184. putting bitmaps on the display monitor.  Amongst other things, GDI
  2185. defines a set of GDI functions that application programs call such as
  2186. BitBlt(...) to display graphics on the screen.  GDI also controls
  2187. printers and other graphic output devices.
  2188.  
  2189. Windows NT also provides a GDI system, but the underlying system is
  2190. different.  Windows 3.1 GDI drivers won't work under NT.  Application
  2191. programs written using the GDI API will often work under NT.
  2192.  
  2193. GDI is device independent.  To achieve this, GDI uses GDI device
  2194. drivers loaded dynamically as needed.
  2195.  
  2196. The most commonly used GDI device driver is the DISPLAY device (for
  2197. display monitors).  In Windows 3.1, this is specified by lines such
  2198. as:
  2199.  
  2200. display.drv=SUPERVGA.DRV
  2201.  
  2202. in the SYSTEM.INI file.  SUPERVGA.DRV is a generic super vga graphic
  2203. display adapter driver shipped with Windows 3.1 SUPERVGA.DRV is a GDI
  2204. Device Driver
  2205.  
  2206. The printer driver is another common GDI device driver.
  2207.  
  2208. In Windows 3.1 or Windows 95 without DirectDraw, GDI handles display
  2209. of video frames on the display monitor.
  2210.  
  2211. GDI defines a set of standard functions exported by GDI Device
  2212. Drivers.  A GDI Device Driver can also report that it does not support
  2213. a particular function.
  2214.  
  2215. Standard Functions for GDI Device Driver
  2216.  
  2217. Entry                Name                 Description
  2218.  
  2219. 01                     BitBlt                Transfer bits from src (source) to dest (destination) rect (rectangle)
  2220. 02                     ColorInfo          Converts between logical and physical colors.
  2221. .
  2222. .
  2223. .
  2224. 30                     BitmapBits        Sets, retrieves, copies bitmap data.
  2225.  
  2226. Video card manufacturers write and provide GDI Device Drivers for video cards.
  2227.  
  2228. When Video for Windows plays an AVI file, Video for Windows usually
  2229. uses the Media Control Interface (MCI) driver for AVI files.  The MCI
  2230. driver will call GDI to display each decoded frame of video and WAVE
  2231. to output the decoded audio to the sound card.
  2232.  
  2233. In Windows 95, ActiveMovie 1.0 has "renderers" which can invoke GDI or
  2234. DirectDraw depending on the situation to display the decoded video
  2235. frames.  There are also audio renderers to output the decoded audio
  2236. from an AVI, QuickTime, or MPEG file.
  2237.  
  2238. <A HREF="#Top">Return to Top</A>
  2239.  
  2240.  
  2241.  
  2242. <A NAME="DHAL">
  2243. <H2>Direct Draw Hardware Abstraction Layer</H2>
  2244. </A>
  2245.  
  2246. DirectDraw is a replacement for GDI for Windows 95 and
  2247. Windows NT.   See elsewhere in this overview for sections on
  2248. GDI and DirectDraw.
  2249.  
  2250. The Direct Draw Hardware Abstraction Layer (HAL) defines
  2251. Direct Draw device drivers for graphics/video display
  2252. adapters.   Graphics and video card manufacturers 
  2253. provide DirectDraw device drivers.  For Direct Draw
  2254. to work it must have these device drivers.
  2255.  
  2256. ActiveMovie can invoke DirectDraw for video output under
  2257. Windows 95.
  2258.  
  2259. <A HREF="#Top">Return to Top</A>
  2260.  
  2261.  
  2262. <A NAME="VXD">
  2263. <H2>Virtual Device Drivers</H2>
  2264. </A>
  2265.  
  2266. In Windows 3.x and Windows 95, Virtual Device Drivers or VXD's
  2267. are usually the hardware device drivers.  They run in a privileged 
  2268. mode known as Ring Zero.  Video display adapters and video
  2269. capture cards usually have an associated VXD written by the
  2270. card or chip manufacturer.
  2271.  
  2272. Device drivers for video display adapters are rarely a single VXD.
  2273. Often the Device Driver Interface (DDI) is implemented as a Dynamic
  2274. Link Library which does not run at Ring Zero.  Only parts of the
  2275. device driver that need to run at Ring Zero are in the VXD.  
  2276. A full video display device driver is often built of several
  2277. files,  frequently (always??) including one or more VXDs.
  2278.  
  2279. VXD's are usually found in the \WINDOWS\SYSTEM directory.
  2280.  
  2281. VXD's will not work for hardware under Windows NT 3.51 or NT 4.0
  2282. NT has its own Windows NT Driver Model.
  2283.  
  2284. In "Memphis", formerly Windows 97, and NT 5.0, Microsoft is attempting
  2285. to provide a common driver model known as WDM or Win32 Driver Model so
  2286. that the same drivers can be used in both Memphis and NT.
  2287.  
  2288. <A HREF="#Top">Return to Top</A>
  2289.  
  2290. <A NAME="NTDM">
  2291. <H2>Windows NT Driver Model</H2>
  2292.  
  2293. Windows NT (3.51, 4.0) has its own system of hardware device
  2294. drivers.  While NT can often run Windows 3.x and Windows 95
  2295. applications, NT cannot use Windows 3.x or Windows 95
  2296. device drivers.
  2297.  
  2298. For most people working with AVI, or video in general, the main
  2299. point to remember is that different drivers are needed for
  2300. NT than Windows 95 (or Windows 3.x).  Most hardware manufacturers
  2301. provide both Windows 3.x, 95, and NT drivers.
  2302.  
  2303. TOOLS
  2304.  
  2305. Programmers will need the Windows NT DDK (Device Driver Kit)
  2306. to develop Windows NT drivers.  This is available in a
  2307. subscription to Microsoft Developer Network (Professional).
  2308.  
  2309. <A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>
  2310.  
  2311. <A HREF="#Top">Return to Top</A>
  2312.  
  2313. <A NAME="WDM">
  2314. <H2>Win32 Driver Model (WDM)</H2>
  2315. </A>
  2316.  
  2317. The Win32 Driver Model (WDM) is a new device driver system for
  2318. Memphis (formerly Windows 97) and Windows NT 5.0  The notion is that
  2319. the same device drivers will work under both Memphis and NT 5.0
  2320.  
  2321. WDM is largely the Windows NT Driver Model used in NT 3.51 and 4.0
  2322. It is still under development.  Video display card and video capture
  2323. card companies will presumably be providing WDM drivers for
  2324. Memphis and NT 5.0 in the future.
  2325.  
  2326. Memphis is supposed to be backward compatible so that 
  2327. Windows 95 Device Drivers will still work under Memphis.
  2328. Similarly, NT 4.0 Device Drivers will still work under
  2329. NT 5.0   A WDM Device Driver will work under both Memphis and
  2330. NT 5.0.
  2331.  
  2332. <A HREF="#Top">Return to Top</A>
  2333.  
  2334. <A NAME="INF">
  2335. <H2>Setup Information or INF Files</H2>
  2336. </A>
  2337.  
  2338. When a video codec or hardware device driver is installed under
  2339. Windows 3.x, Windows 95, or Windows NT, Windows uses a special
  2340. file known as a Setup Information file.  This is also known as
  2341. a Device Information file in the case of device drivers.  These
  2342. files have the extension .INF and are also known as INF files.
  2343.  
  2344. When a user installs a codec or device driver through the Control
  2345. Panel, the user points the Windows system to a directory containing
  2346. an INF file and the various files, such as VxD's or DLLs, to be
  2347. installed.
  2348.  
  2349. A Setup Information, Device Information, or INF file contains
  2350. directives that tell Windows how to install the new software or
  2351. hardware.  These include changes to the Windows Registry, names and
  2352. locations of files to install, and other things.
  2353.  
  2354. If you are providing a hardware or software product, you may need to
  2355. create an INF file to install your product, driver, etc.
  2356.  
  2357. End users are often unaware of the INF file.  Indeed, its purpose is to
  2358. hide the complexity of installing hardware or software.  But it is
  2359. good to be aware that these files exist and Windows needs them to
  2360. properly install many drivers, codecs, and so forth.
  2361.  
  2362. Where AVI is concerned, there are frequently INF files for video
  2363. codecs, video display adapters, and video capture cards.
  2364.  
  2365. <A HREF="#Top">Return to Top</A>
  2366.  
  2367.  
  2368. <A NAME="MMX">
  2369. <H2>MMX</H2>
  2370. </A>
  2371.  
  2372. MMX or Multimedia Extensions to the Pentium instruction set are
  2373. 57 new instructions that accelerate some graphics, imaging, and
  2374. multimedia operations.  Multimedia often involves small data types
  2375. such as 8 bit or 16 bit pixels that can be processed in parallel.
  2376. For example, in principle, a 32 bit instruction could operate of
  2377. four 8 bit pixels in parallel.  
  2378.  
  2379. A simple example would be adding four 8 bit pixels in parallel.
  2380. The MMX instructions add clipping for underflow and overflow 
  2381. situations.
  2382.  
  2383.   255 0 0 255       Normal addition of four 8 bit pixels backed in 32 bits
  2384. +   0 0 0 255
  2385. -------------
  2386.  255  0 1   0
  2387.  
  2388.   255 0 0 255      MMX style clipping of overflow
  2389. +   0 0 0 255
  2390. --------------
  2391.   255 0 0 255
  2392.  
  2393. Intel developed the MMX instructions and added them to recent
  2394. versions of the Pentium chip known as the P55C or Pentium with MMX.
  2395. The MMX instructions were also added to the Pentium Pro.  The Pentium
  2396. Pro with MMX was code named Klamath, but called the Pentium II when
  2397. actually shipped in 1997.
  2398.  
  2399. MMX can accelerate various graphics and multimedia operations.  It can
  2400. accelerate video codecs.  In particular, the block Discrete Cosine
  2401. Transform used in JPEG, Motion JPEG, H.261, H.263, H.263+, MPEG-4,
  2402. MPEG-1, and MPEG-2 can be accelerated using MMX instructions.
  2403.  
  2404. Initially compilers have not supported generation of MMX instructions, so
  2405. critical portions of the multimedia algorithms must be hand-coded in 
  2406. Pentium assembler using the MMX instructions.
  2407.  
  2408. An MMX version of a codec may be able to encode and decode an AVI
  2409. file (for example) faster on a PC with MMX.
  2410.  
  2411. DOCUMENTATION ON MMX
  2412.  
  2413. Further information on MMX is available at the Intel Web site for
  2414. developers:
  2415.  
  2416. <A HREF="http://developer.intel.com/sites/developer">http://developer.intel.com/sites/developer</A>
  2417.  
  2418. Click on the Literature Center link, then select "Pentium Processor
  2419. with MMX" from the pull down list of products.
  2420.  
  2421. This information is dated August 1, 1997.  The Intel Web site changes
  2422. from time to time.
  2423.  
  2424.  
  2425. In addition to various on-line documentation at the Web site, Intel
  2426. has some manuals on MMX:
  2427.  
  2428. Intel Architecture MMX Technology Developers Manual (Order No. 243013)
  2429.  
  2430. Intel Architecture MMX Technology Programmer's Reference Manual
  2431. (Order No. 243007)
  2432.  
  2433. TOOLS FOR WORKING WITH MMX
  2434.  
  2435. Intel provides an MMX Technology Macro Package for use with
  2436. the Microsoft Macro Assembler (MASM).  This can be downloaded from:
  2437.  
  2438. <A HREF="http://developer.intel.com/design/perftool/mmx1mac/">http://developer.intel.com/design/perftool/mmx1mac/</A>
  2439.  
  2440. Intel markets an Intel C/C++ compiler plug-in for Microsoft
  2441. Visual C/C++ 4.x/5.0.  This plug-in includes "special
  2442. compiler intrinsics" to support MMX.  These allow a programmer
  2443. to use the call syntax of C functions instead of manually
  2444. coding in assembly language.  
  2445.  
  2446. Example of an "instrinsic"
  2447.  
  2448. __m64 _m_pmaddwd(__m64 m1, __m64 m2)
  2449.  
  2450. <A HREF="http://developer.intel.com/design/perftool/icl24/">http://developer.intel.com/design/perftool/icl24/</A>
  2451.  
  2452. The Intel C/C++ compiler plug-in is available on the VTune
  2453. CD-ROM.  VTune is discussed below.
  2454.  
  2455. Intel markets a product called VTune for profiling programs
  2456. on the Intel architecture at the machine instruction level.
  2457. VTune includes support for the MMX instructions and has been
  2458. used to profile and optimize MMX code.  The VTune CD-ROM
  2459. includes a number of other Intel freebies and products such as
  2460. the Intel C/C++ compiler plug-in that may be useful developing
  2461. MMX software.
  2462.  
  2463. <A HREF="http://developer.intel.com/design/perftool/vtune/">http://developer.intel.com/design/perftool/vtune/</A>
  2464.  
  2465. <A HREF="#Top">Return to Top</A>
  2466.  
  2467. <A NAME="ActiveX">
  2468. <H2>ActiveX</H2>
  2469. </A>
  2470.  
  2471. NOTE: ActiveX is NOT ActiveMovie.  There is an ActiveMovie ActiveX
  2472. control, but ActiveX is far more than this.
  2473.  
  2474. ActiveX is a stripped down version of OLE (Object Linking and
  2475. Embedding) targetted for the World Wide Web.  An ActiveX component or
  2476. control is a software component written in Visual Basic, Visual C++, or
  2477. Java that conforms to the ActiveX API.  This API is a variant of
  2478. OLE, designed to create small objects that can be dowloaded over the
  2479. Internet.
  2480.  
  2481. An ActiveX object or control may reside on a Web page to be downloaded
  2482. and run when Microsoft's Internet Explorer views the page.  An ActiveX
  2483. control can be the ActiveMovie ActiveX control which plays AVI and other
  2484. video formats supported by ActiveMovie.  An ActiveX control can be an
  2485. entertaining animation, a game like tic tac toe, anything.  In this
  2486. sense, ActiveX objects are similar to Java applets.
  2487.  
  2488. Unlike Java applets, once an ActiveX control has been downloaded once
  2489. it remains on the downloading machine and can be used again without
  2490. being dowloaded again.
  2491.  
  2492. Also unlike Java, ActiveX controls are tied to a particular
  2493. architecture, Windows 95 or Windows NT.  It is not clear how much
  2494. support Microsoft will give for ActiveX on non-Windows platforms.
  2495. Java applets are compiled to a Java bytecode that will run on any
  2496. platform with a Java virtual machine implemented.  Java applets will
  2497. run on Windows 3.1, Windows 95, Windows NT, PowerMacintosh, Linux,
  2498. Sun, and various other Unix platforms.
  2499.  
  2500. There is extensive information on ActiveX at the Microsoft Web site.
  2501. The ActiveX SDKs can be downloaded from the Microsoft Developer Online
  2502. Web Site (6/28/97):
  2503.  
  2504. <A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>
  2505.  
  2506. Select Microsoft SDKs from the Technical Information section or point your
  2507. browser at:
  2508.  
  2509. <A HREF="http://www.microsoft.com/msdn/sdk/">http://www.microsoft.com/msdn/sdk/</A>
  2510.  
  2511. Netscape Fans:
  2512.  
  2513. ScriptActive is a Netscape Plug-In that adds support for ActiveX to
  2514. Netscape.
  2515.  
  2516. <A HREF="http://www.ncompasslabs.com/">ScriptActive Web Site</A>
  2517.  
  2518.  
  2519. <A HREF="#Top">Return to Top</A>
  2520.  
  2521. <A NAME="AviPlay">
  2522. <H2>Playing an AVI File within a Windows Application</H2>
  2523. </A>
  2524.  
  2525. Programmers can play an AVI File within a Windows application by
  2526. several means.  The simplest traditional way is to use the
  2527. Media Control Interface (MCI).  Video for Windows includes an
  2528. MCI driver mciavi.drv for AVI files.  
  2529.  
  2530. Within the Windows API, programmers can use two C language API
  2531. functions, mciSendString(...) and mciSendCommand(...), to communicate with
  2532. the MCI driver.  mciSendString(...) sends MCI command strings such as
  2533. "play from 0 to 100" to the MCI driver.  mciSendCommand(...) sends MCI
  2534. command messages, a straight C type interface, to the MCI driver.
  2535.  
  2536. The syntax for mciSendString is:
  2537.  
  2538. MCIERROR mciSendString(LPCTSTR lpszCommand, LPTSTR lpszReturnString,
  2539.     UINT cchReturn, HANDLE hwndCallback);
  2540.  
  2541. The pointer lpszCommand points to the MCI command string such as
  2542. "play from 0 to 100".  Consult the Microsoft SDK documentation for
  2543. more details.
  2544.  
  2545. The syntax for mciSendCommand is:
  2546.  
  2547. MCIERROR mciSendCommand(MCIDEVICEID IDDevice, UINT uMsg, 
  2548.     DWORD fdwCommand, DWORD dwParam);
  2549.  
  2550. where uMsg is an MCI command message such as MCI_PLAY defined in an
  2551. include file.  Consult the Microsoft SDK documentation for more
  2552. details on MCI command messages.
  2553.  
  2554. mciSendString(...) and mciSendCommand(...) are essentially equivalent.
  2555. The MCI driver should convert the MCI command string to an MCI command
  2556. message internally.  The MCI command strings provide a more English like
  2557. interface to MCI.
  2558.  
  2559. For C++ programmers, Microsoft provides a window class MCIWnd to wrap
  2560. the MCI operations.  Quoting the Microsoft SDK documentation:
  2561.  
  2562. Microsoft sayeth....
  2563.  
  2564. MCIWnd is a window class for controlling multimedia devices. A library
  2565. of functions, messages, and macros associated with MCIWnd provides a
  2566. simple method to add multimedia playback or recording capabilities to
  2567. your applications.
  2568.  
  2569. Using a single function, your application can create a control that
  2570. plays devices such as video, CD audio, waveform audio, MIDI (Musical
  2571. Instrument Digital Interface), or any device that uses the Media
  2572. Control Interface (MCI). Automating playback is also quick and
  2573. easy. Using a function and two macros, an application can create an
  2574. MCIWnd window with the appropriate media device, play the device, and
  2575. close both the device and the window when the content has finished
  2576. playing.
  2577.  
  2578. ... end Microsoft sayeth.
  2579.  
  2580.  
  2581. Consult the Microsoft documentation for more details on MCIWnd.
  2582.  
  2583. ActiveMovie appears intended to supersede MCI.  ActiveMovie includes
  2584. a restricted subset of MCI for (partial) backward compatibility.
  2585. However, Microsoft appears to want developers to switch over to
  2586. new API's such as ActiveX and ActiveMovie, built on top of Microsoft's
  2587. Component Object Model (COM) object oriented framework.
  2588.  
  2589. <A HREF="#Top">Return to Top</A>
  2590.  
  2591. <A NAME="AviWrite">
  2592. <H2>Reading and Writing an AVI file within a Windows Application</H2>
  2593. </A>
  2594.  
  2595. The Microsoft Windows Win32 SDK (Windows NT and Windows 95) includes a
  2596. set of functions and macros known as AVIFile for reading, writing, and
  2597. manipulating RIFF files including AVI files within a Windows program.
  2598. These functions are contained within a Dynamic Link Library
  2599. avifile.dll.
  2600.  
  2601. The AVIFile functions include:
  2602.  
  2603. AVIFileInit(...)
  2604. AVIFileOpen(...)
  2605. AVIFileReadData(...)
  2606. AVIFileWriteData(...)
  2607. AVIFileExit(...)
  2608.  
  2609. and many many others.  Consult Microsoft documentation for details.
  2610.  
  2611. <A HREF="#Top">Return to Top</A>
  2612.  
  2613.  
  2614.  
  2615. <A NAME="Misc">
  2616. <H2>Miscellaneous Questions about AVI and Video for Windows</H2>
  2617. </A>
  2618.  
  2619. What is most recent version of Video for Windows?
  2620.  
  2621. Most recent version of Video for Windows for Windows 3.1 appears to
  2622. be Video for Windows 1.1e.  (10/2/96)
  2623.  
  2624.  
  2625. <A NAME="VfW16">
  2626. <H2>Where can I get the 16-bit Video for Windows 1.1e runtime?</H2>
  2627. </A>
  2628.  
  2629. This is the Video for Windows for Windows 3.x  In a pinch, it will
  2630. also work under Windows 95.  Windows 95 includes a version of
  2631. Video for Windows that has 32 bit video codecs and possibly other
  2632. changes specific to Windows 95.  See elsewhere in this Overview
  2633. for information on re-installing Video for Windows for
  2634. Windows 95.
  2635.  
  2636. From Microsoft,
  2637.  
  2638. <A HREF="ftp://ftp.microsoft.com/softlib/mslfiles/WV1160.EXE">ftp://ftp.microsoft.com/softlib/mslfiles/WV1160.EXE</A>
  2639.  
  2640. (Note the file name is all upper case)
  2641.  
  2642. <A HREF="#Top">Return to Top</A>
  2643.  
  2644. <A NAME="LW">
  2645. <H3>How to import AVI files into Lightwave</H3>
  2646. </A>
  2647.  
  2648. Lightwave is a powerful 3D animation program from NewTek.  Originally
  2649. developed for the Amiga, Lightwave has been ported to Windows 95 and
  2650. Windows NT. 
  2651.  
  2652. BurntPixels produces a plug-in for Lightwave 5.0 called AVILoad 2.1
  2653. that enables direct importing of AVI files into Lightwave animations.
  2654. AVILoad 2.1 is available for Lightwave 5.0 for Windows 95 and NT.
  2655.  
  2656. See the AVILoad Web site for further details.
  2657.  
  2658. <A HREF="http://www.en.com/users/bforce/">http://www.en.com/users/bforce/</A>
  2659.  
  2660. For further information on NewTek and Lightwave, see the LightWave
  2661. Web site:
  2662.  
  2663. <A HREF="http://www.newtek.com/">http://www.newtek.com/</A>
  2664.  
  2665. <A HREF="#Top">Return to Top</A>
  2666.  
  2667. <A NAME="Extension">
  2668. <H3>How to give AVI files a different extension in Windows 3.x</H3>
  2669. </A>
  2670.  
  2671. It is possible to give an AVI file a different file extension, for
  2672. example VID.  Microsoft Windows can be configured so that Windows
  2673. treats this file the same as a file with the AVI extension.  For
  2674. example, double clicking on a .VID file in File Manager will play the
  2675. .VID file just the same as a .AVI file.
  2676.  
  2677. In Windows 3.x, edit the WIN.INI file, usually in the \WINDOWS
  2678. directory.  There is a section [Extensions] which associates
  2679. file extensions with applications.  For example, this section
  2680. will typically include a line such as:
  2681.  
  2682. [Extensions]
  2683. AVI=mplayer.exe /play /close ^AVI
  2684.  
  2685. which causes Media Player (mplayer.exe) to be invoked when the user double
  2686. clicks on a file with extension AVI.  For VID, add a line
  2687.  
  2688. VID=mplayer.exe /play /close ^VID
  2689.  
  2690. Media Player is an MCI (Media Control Interface) application.  It will
  2691. attempt to play the .VID file through MCI.  At this point however, MCI
  2692. would not recognize VID although Media Player would be invoked.
  2693.  
  2694.  
  2695. There is also a section [mci extensions] which contains lines such as:
  2696.  
  2697. [mci extensions]
  2698. AVI=AVIVideo  ( tells MCI to use the MCI driver refered to as AVIVideo for files with the extension AVI)
  2699.  
  2700. For the VID example, add
  2701.  
  2702. VID=AVIVideo
  2703.  
  2704. to the [mci extensions] section in WIN.INI
  2705.  
  2706. The WIN.INI file is used mainly for configuring the higher levels
  2707. of Windows: the graphical user interface and the desktop.  Many applications
  2708. install their configuration or installation information in sections within
  2709. WIN.INI
  2710.  
  2711.  
  2712. Names such as AVIVideo are defined in the [mci] section in the SYSTEM.INI
  2713. file, also usually in the \WINDOWS directory.  SYSTEM.INI is used
  2714. mainly for configuring the lower levels of Windows: the device
  2715. drivers, VxD's, and so forth.
  2716.  
  2717. [mci]
  2718. AVIVideo=mciavi.drv ( where mciavi.drv is the AVI MCI Driver )
  2719.  
  2720. Thus, many file extensions can refer to AVIVideo which in turn refers to
  2721. the MCI Driver for AVI files.  The MCI Driver processes MCI commands and
  2722. may in turn invoke other drivers or DLL's such as the Video for Windows
  2723. decompressors.
  2724.  
  2725. <A HREF="#Top">Return to Top</A>
  2726.  
  2727. <A NAME="AVI95">
  2728. <H3>How AVI Files are Handled in Windows 95</H3>
  2729. </A>
  2730.  
  2731. If a user double-clicks on an AVI file icon in Windows 95, Windows 95
  2732. will invoke an AVI player.  In Windows 95 OEM Service Release 2, Windows
  2733. 95 will invoke the ActiveMovie Control to play the AVI file. ActiveMovie
  2734. 1.0 ships with OEM Service Release 2 which is configured to use
  2735. ActiveMovie for AVI, Quicktime, and MPEG files. 
  2736.  
  2737. Windows 95 has file extensions and file types.  .AVI is a file
  2738. extension.  File extensions are mapped to file types.  AVIFile is
  2739. a file type.  The information on file extensions and file types
  2740. is stored in the Windows 95 System Registry.  More than one file
  2741. extension can be mapped to the same file type.  For example, the .AIF
  2742. and .AIFF file extensions are both mapped to AIFFFile, the file 
  2743. type for the Apple AIFF audio file format.  
  2744.  
  2745. The file type contains information on how to play the file (which
  2746. application to use) and other information.  This information is
  2747. all stored in the Windows 95 Registry.
  2748.  
  2749. A user can view and also edit the information on file types 
  2750. through the Windows Explorer applet.  Select the Options...
  2751. item from the View Menu of Windows Explorer.  Select the File Types
  2752. tab from the Options property sheet.  This gives a list box of 
  2753. registered file types.  There are buttons to add, remove, or edit
  2754. a File Type.  The AVIFile File Type is identified as
  2755. "Movie Clip(AVI)" in this list box of registered file types in
  2756. Windows 95 OEM Service Release 2.
  2757.  
  2758. In the Windows 95 Registry, "Movie Clip(AVI)" is a string in the
  2759. "AVIFile" file type "key".  Windows Explorer displays the string "Movie
  2760. Clip(AVI)", not AVIFile, the name of the "key".
  2761.  
  2762. A user can change how Windows 95 handles an AVI file by editing
  2763. the "Movie Clip(AVI)" File Type in the File Types through Windows
  2764. Explorer.  For example, a user can select an alternative AVI file
  2765. player.
  2766.  
  2767. In Windows 95 OEM Service Release 2, the File Type includes a
  2768. Content type (Multipurpose Internet Mail Extension or MIME type).  
  2769. The Content type (MIME type) tells Microsoft Internet Explorer how 
  2770. to handle a file from a Web site. 
  2771.  
  2772. The original Windows 95 retail version did not include the Content
  2773. (MIME) type.  This extra feature could be added by installing the
  2774. MS Plus! add-on to Windows 95.  Some OEM versions of Windows 95 prior
  2775. to OEM Service Release 2 supported the Content (MIME) type.
  2776.  
  2777. The Windows 95 Registry can be viewed using REGEDIT, the Windows 95
  2778. Registry editor.  The registry "keys" for file extensions and file types
  2779. are stored in the HKEY_CLASSES_ROOT "key".  Although REGEDIT can also
  2780. edit the registry, the registry is rather complex and this drastic 
  2781. action should be avoided.  Use the Windows Explorer applet.  This applet
  2782. knows how to modify the keys in the Windows 95 Registry.
  2783.  
  2784. The Windows 95 Registry is a binary database stored in two files:
  2785. SYSTEM.DAT and USER.DAT.  Internally, the database is structured very
  2786. similarly to a hierarchical file system such as the DOS/WINDOWS file
  2787. system.  A Windows 95 Registry "key" is essentially a folder that
  2788. contains other "keys" or "values".  The "values" have a name and
  2789. associated data.  The data are text strings such as "Movie Clip(AVI)"
  2790. or binary numbers.  The Registry Editor represents keys with a folder
  2791. icon and values with different icons.  The Registry Editor closely
  2792. resembles the Windows Explorer.
  2793.  
  2794. The registry contains a key in the top level HKEY_CLASSES_ROOT key
  2795. called .avi, for the .avi file extension.  All keys contain a default
  2796. "value" with the name (Default).  In the .avi key, the (Default) value
  2797. has the associated ASCII text string data "AVIFile".  In Windows 95
  2798. OEM Service Release 2, there is an additional value named "Content
  2799. Type" with the associated ASCII text string data "video/avi", the MIME
  2800. type for AVI files.  This additional information is used by the
  2801. Internet Explorer.
  2802.  
  2803. The (Default) value in the .avi key references the AVIFile key, also
  2804. in HKEY_CLASSES_ROOT.  This key contains a number of other keys and
  2805. values.  The (Default) value for the AVIFile key has the data 
  2806. "Movie Clip(AVI)" which the Windows interface uses to identify the files
  2807. to users.  The AVIFile key is an example of a file type key.
  2808.  
  2809. The "shell" key in the AVIFile key specifies what happens when a user
  2810. double-clicks on an AVI file.  In Windows 95 OSR2, the (Default) value
  2811. for the shell key is "play".  The shell key contains two subkeys:open
  2812. and play.  These keys specify possible actions to perform.  The
  2813. (Default) value indicates that the "play" action will be used.
  2814.  
  2815. The open and play keys each contain a key called command.  The
  2816. (Default) value for the command subkey of play is "rundll32 amovie.ocx
  2817. RunDLL /play /close %1".  rundll32 is a program that runs a 32 bit
  2818. Windows Dynamic Link Library or DLL as an Application.  The command
  2819. executes amovie.ocx, the ActiveMovie Control, as an
  2820. application. Controls such as amovie.ocx are actually DLLs.  /play
  2821. tells the control to play the file and /close tells the control to
  2822. close after finishing playing the file.
  2823.  
  2824. In versions of Windows 95 without ActiveMovie, the command keys are
  2825. configured to invoke Media Player, mplayer.exe.  
  2826.  
  2827. <A HREF="#Top">Return to Top</A>
  2828.  
  2829.  
  2830. <A NAME="Play">
  2831. <H2>How can I play an AVI file?</H2>
  2832. </A>
  2833.  
  2834. <H3>MS DOS</H3>
  2835.  
  2836. On DOS, the shareware program QuickView by Wolfgang Hesseler can
  2837. play AVI files (including sound).  QuickView 1.03 is available
  2838. through the simtel sites such as
  2839.  
  2840. <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>
  2841.  
  2842. You can get the latest version of QuickView (2.13 on 7/28/97) from
  2843.  
  2844. <A HREF="http://www.multimediaware.com/qv/">Wolfgang Hesseler's Home Page</A>
  2845.  
  2846.  
  2847. <H3>Microsoft Windows</H3>
  2848.  
  2849. Windows 3.x, Windows 95, and Windows NT are usually configured so
  2850. that double clicking on the icon for an AVI file will invoke an AVI player
  2851. application.  Video for Windows includes an application known as Media
  2852. Player that can play AVI files as well as other multimedia data types.
  2853. ActiveMovie 1.0 inclues an ActiveMovie ActiveX control that can play
  2854. AVI, Quicktime, and MPEG video as well as other multimedia data types.
  2855.  
  2856. On Windows 3.x, Media Player is MPLAYER.EXE.  This is a 16 bit
  2857. Windows 3.x application.  Windows 95 can run both the 16 bit Media Player
  2858. and a 32 bit Media Player.  There is also a Media Player on Windows NT 4.0
  2859. This is MPLAY32.EXE
  2860.  
  2861. MediaPlayer can be invoked by typing mplayer.exe at the DOS command
  2862. prompt or through the Run... item in the Windows 3.x Program Manager or
  2863. the start menu for Windows 95 or Windows NT 4.0
  2864.  
  2865. The ActiveMovie ActiveX control on Windows 95 is amovie.ocx.  This can
  2866. be executed as a standalone application using the
  2867. commands Rundll32 amovie.ocx.
  2868.  
  2869. ActiveMovie is only available for Windows 95.  It will not work on Windows
  2870. 3.x  Windows NT 5.0 should add an ActiveMovie implementation.  ActiveMovie 1.0
  2871. is shipped with the Windows 95 OEM Service Release 2.
  2872.  
  2873. <H3>Power Macintosh</H3>
  2874.  
  2875. On the Macintosh, Microsoft's Internet Explorer (Web Browser) can play
  2876. AVI files directly.  There is also an application AVI->QuickTime that
  2877. can convert AVI files to QuickTime .MooV files on the Macintosh.  
  2878.  
  2879. Microsoft's Internet Explorer 3.01 (on 6/4/97) for the Macintosh may
  2880. be downloaded from the Microsoft web site at:
  2881.  
  2882. <A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>
  2883.  
  2884. MacZilla is an inexpensive shareware Netscape Navigator Plug-In for
  2885. the Macintosh that plays QuickTime .MOV, Video for Windows AVI, and
  2886. MPEG-1 files.  MacZilla can also play Sun Audio .AU, Microsoft
  2887. .WAV, and MPEG Layer 2 Audio .MP2 files.  If you pay the
  2888. fee, MacZilla will send you a STANDALONE player (not a Netscape
  2889. Plug-In) for the Macintosh.  The MacZilla URL is:
  2890.  
  2891. <A HREF="http://maczilla.com/">http://maczilla.com</A>
  2892.  
  2893. NOTE: I personally experienced a lot of crashes with MacZilla on
  2894. my Macintosh. (6/4/97)  
  2895.  
  2896. <H3>Unix</H3>
  2897.  
  2898. On Unix, XAnim Revision 2.68.3 reportedly can play AVI files using
  2899. Microsoft Video 1 compression, SuperMac Cinepak compression, uncompressed
  2900. 8 bit video, and run length encoded 8 bit video.
  2901.  
  2902.  
  2903. Mark Podlipec writes:
  2904.  
  2905. Below is some up-to-date information about XAnim, the unix X11 AVI player.
  2906.  
  2907. Thanks,
  2908.  
  2909. Mark
  2910.  
  2911. ----
  2912.  
  2913. Latest revision:  XAnim 2.70.6.4
  2914.  
  2915. Official Web sites:
  2916.  
  2917.     http://xanim.va.pubnix.com/home.html
  2918.     http://smurfland.cit.buffalo.edu/xanim/home.html
  2919.     http://www.tm.informatik.uni-frankfurt.de/xanim/
  2920.  
  2921. AVI Video and Audio Codecs Supported:
  2922.  
  2923.         + AVI Video Codecs supported:
  2924.             + IBM Ultimotion     (ULTI)
  2925.             + JPEG               (JPEG)
  2926.             + Motion JPEG        (MJPG)
  2927.             + Intergraph JPEG    (IJPG)
  2928.             + Microsoft Video 1  (CRAM/WHAM/MSVC)
  2929.             + Radius Cinepak     (CVID)
  2930.             + Intel Indeo R3.1   (IV31)
  2931.             + Intel Indeo R3.2   (IV32)
  2932.             + Intel RAW YUV9     (YUV9)
  2933.             + Creative CYUV      (CYUV)
  2934.             + Uncompressed       (RGB )
  2935.             + Run length encoded (RLE8)
  2936.             + Editable MPEG      (XMPG)
  2937.  
  2938.         + AVI Audio Codecs supported:
  2939.             + PCM                (0x0001)
  2940.             + MS ADPCM           (0x0002)
  2941.             + ULAW               (0x0007)
  2942.             + DVI/IMA ADPCM      (0x0011)
  2943.  
  2944. <H3> Digital Equipment Corporation's VAX/VMS </H3>
  2945.  
  2946. On VAX/VMS, Xanim (see above) has been ported and works on VMS.
  2947.  
  2948. <H3>Amiga</H3>
  2949.  
  2950. TapAVI 1.5
  2951. Picasso AVI Animation Player
  2952. AVI Player for 020+ KS2.0 Picasso-II  (variety of Amiga)
  2953.  
  2954. <A HREF="http://www.ziplink.net/~wingell/ibrowse/tapavi.html">http://www.ziplink.net/~wingell/ibrowse/tapavi.html</A>
  2955.  
  2956. There appears to be an Amiga version of the XAnim AVI Player.  The TapAVI
  2957. documentation in fact says that in general XAnim is better but TapAVI is
  2958. better for certain uses.
  2959.  
  2960. xanim for the Amiga appears to be available in a file xanim6.lha from
  2961. Aminet.  As of (5/16/97) have not located a URL.
  2962.  
  2963. <H3>OS/2</H3>
  2964.  
  2965. OS/2 has built-in support for AVI files ... up to a point.  OS/2
  2966. has had built-in AVI support since OS/2 2.0 in 1992.  However, it
  2967. cannot play all Windows style AVI files.
  2968.  
  2969. Practice Corporation markets an extension for OS/2 called AnPoCODEC
  2970. which adds support for playback of Windows-style AVI files, including
  2971. AVI's compressed with RLE (Microsoft RLE), CVID (Cinepak), and MSVC
  2972. (Microsoft Video 1).  Practice also markets QUickMotion which adds
  2973. support for playing QuickTime video files.
  2974.  
  2975. <A HREF="http://www.practice.xo.com/">http://www.practice.xo.com/</A>
  2976.  
  2977. At least two other programs exist that are claimed to be OS/2 AVI Players.
  2978.  
  2979. <A HREF="ftp://uiarchive.cso.uiuc.edu/pub/systems/os2/mmedia/calliope.zip">Calliope</A>
  2980.  
  2981. <A HREF="ftp://uiarchive.cso.uiuc.edu/pub/systems/os2/mmedia/dmply141.zip">DMP 1.41</A>
  2982.  
  2983. <A HREF="#Top">Return to Top</A>
  2984.  
  2985. <A NAME="NetShow">
  2986. <H2>AVI and NetShow</H2>
  2987. </A>
  2988.  
  2989. NetShow is a relatively new product from Microsoft for distributing
  2990. streaming video over the Internet.  NetShow includes a NetShow server
  2991. for Windows NT and NetShow players (both NT and Windows 95).
  2992.  
  2993. NetShow uses the Active Streaming Format (ASF) for video streams
  2994. over the Internet.  ASF adds time stamps for synchronization, error
  2995. correction codes, and other features that AVI lacks.  The NetShow
  2996. family of products includes utilities to convert AVI files to ASF
  2997. files.
  2998.  
  2999. Microsoft has licensed a number of low bitrate video technologies
  3000. for NetShow including Vivo's H.263, Iterated Systems/Progressive
  3001. Networks RealVideo/ClearVideo fractal codec, and VDONet's VDOWave.
  3002. Microsoft has purchased VxTreme, possibly the best wavelet based video
  3003. codec.  Microsoft has used their implementation of 
  3004. the uncompleted international standard MPEG-4 for NetShow.  
  3005.  
  3006. NetShow, including the server, is available at the Microsoft web
  3007. site.  NetShow will install a number of Video for Windows codecs
  3008. such as Microsoft's MPEG-4, VDOWave from VDONet, and other low
  3009. bitrate codecs.  NetShow also installs a number of low bitrate
  3010. audio codecs such as MPEG-1 Layer 3 audio, G.723.1, and a voice
  3011. coding codec from Lernout and Hauspie.
  3012.  
  3013. NetShow tries to use a real-time Internet Protocol called MMS
  3014. to transfer video over the Internet.  If it cannot use MMS, it will
  3015. use TCP (Transmission Control Protocol) or HTTP (HyperText Transport
  3016. Protocol).  MMS appears to be a Microsoft proprietary real time
  3017. protocol and a competitor to RTP (Real Time Protocol) or RTCP (Real
  3018. Time Control Protocol).
  3019.  
  3020. The Microsoft NBC Business News channel distributes video over
  3021. the Internet using these technologies.
  3022.  
  3023. NetShow also claims to support multicast IP over Networks.  I've
  3024. not personally seen this work.  The NetShow 2.0 server administrative
  3025. user interfaces contain panels for configuring multicast channels.
  3026.  
  3027. <A HREF="http://www.microsoft.com/netshow/">http://www.microsoft.com/netshow/</A>
  3028.  
  3029. <A HREF="#Top">Return to Top</A>
  3030.  
  3031. <A NAME="ToASF">
  3032. <H2>How to convert an AVI file to a Microsoft ASF File?</H2>
  3033. </A>
  3034.  
  3035. Microsoft has defined yet another audio/video/multimedia file
  3036. format to support streaming audio and video over the Internet.
  3037. This is Active Stream Format (ASF).  These files have the
  3038. extension .asf or .asx.  They are used as part of Microsoft's NetShow
  3039. video server and client over the Internet.
  3040.  
  3041. The NetShow authoring tools include a DOS command line utilitity:
  3042.  
  3043.     VidToAsf
  3044.  
  3045. which converts AVI files to ASF files, preserving whatever compression
  3046. was used.  Like AVI, ASF files support many compression schemes.
  3047.  
  3048. For more information including software:
  3049.  
  3050. <A HREF="http://www.microsoft.com/netshow/">http://www.microsoft.com/netshow/</A>
  3051.  
  3052. <A HREF="#Top">Return to Top</A>
  3053.  
  3054. <A NAME="Content">
  3055. <H2>Sources of AVI Video Clips on the Web</H2>
  3056. </A>
  3057.  
  3058. What good is all this technology without something to watch?  
  3059. Accordingly, some sites with AVI content.
  3060.  
  3061. The Official Babylon 5 Web Site has a large number of AVI files
  3062. from the popular science fiction television show.
  3063.  
  3064. <A HREF="http://www.babylon5.com/">http://www.babylon5.com</A>
  3065.  
  3066. Paul Bauer's Multimedia City contains a large list of sites with
  3067. video clips.
  3068.  
  3069. <A HREF="http://www.geocities.com/Broadway/2876/index.html">http://www.geocities.com/Broadway/2876/index.html</A>
  3070.  
  3071. <A HREF="#Top">Return to Top</A>
  3072.  
  3073. <A NAME="AVILBR">
  3074. <H4>Low Bit Rate AVI for the Web</H4>
  3075. </A>
  3076.  
  3077. A major limitation of video on the Web in general and AVI in
  3078. particular is the limited bandwidth available.  Currently most users
  3079. with Plain Old Telephone Service (POTS) have 28.8 Kbits/second or 33.6
  3080. Kbits/second connections to their Internet Service Provider.  The new
  3081. generation of K56Flex and X2 modems from U.S. Robotics and Rockwell
  3082. may eventually provide 50-60 Kbits/second over tradiational analog
  3083. telephone lines.  A Basic Rate Interface (BRI) ISDN connection
  3084. provides 128 Kbits/second.
  3085.  
  3086. Although very high speeds are possible within the LAN's and WAN's of
  3087. major corporations and other well-endowed organizations, the so-called
  3088. Intranet, the actual rates achieved over the world wide Internet are
  3089. generally much less.  Not necessarilly better than the rates for POTS
  3090. or ISDN.
  3091.  
  3092. For example, currently (7/20/97) a Web browser at NASA Ames Research
  3093. Center in Mountain View, California can attach to my web site at an
  3094. Internet Service Provider in nearby San Jose at a sustained data
  3095. transfer rate of 15 KBytes/second or 120 Kbits/second.  NASA Ames
  3096. is home to the Federal Internet Exchange (FIX), the
  3097. government's main switching center for the Internet, for the West Coast
  3098. of the United States.  This is the heart of the Silicon Valley.  This
  3099. is probably much better performance than more outlying parts of the
  3100. Internet.  This gives a sense of the current limitations of the
  3101. broader Internet.
  3102.  
  3103. These Internet rates are very low bitrates for video.  The prevailing
  3104. block Discrete Cosine Transform (DCT) based video codecs such as MPEG-1,
  3105. H.261, and H.263 perform acceptably at 384 Kbits/second but frequently
  3106. exhibit unnatural artifacts at 128 Kbits/second for 30 frame per
  3107. second 320x240 pixel video.  These block DCT based codecs match or
  3108. exceed the performance of CinePak, the reigning king of AVI codecs.
  3109.  
  3110. Ultimately, faster Internet connections and better codecs will combine
  3111. to resolve this problem and allow convincing, realistic video over
  3112. the Internet.
  3113.  
  3114. In the meantime, Web authors planning to use video must provide highly
  3115. compressed video at low bitrates.  To do this, options are:
  3116.  
  3117.                     - Use smaller frame sizes (e.g. 160x120 pixels)
  3118.                     - Use lower frame rates (10 - 15 frames per second)
  3119.                     - Push the standard codecs such as CinePak as far as possbile.
  3120.                     - Use one of the newer codecs such as:
  3121.  
  3122.                            <A HREF="#VDOW">VDOWave</A>
  3123.                            <A HREF="#IV41">Indeo 4.1</A>
  3124.                            <A HREF="#H263">H.263</A>
  3125.  
  3126. This overview contains a detailed section on the many codecs available
  3127. for AVI files:
  3128.  
  3129.                    <A HREF="#Codec">Video for Windows Codec Section</A>
  3130.  
  3131. This overview also has a section on effective video for the Web.  Note
  3132. that there are practical limits on how low resolution, frame rates, and
  3133. video quality can be pushed before the video becomes ineffective.
  3134.  
  3135.                   <A HREF="#Style">Effective Video for the Web</A>
  3136.  
  3137. <A HREF="#Top">Return to Top</A>
  3138.  
  3139. <A NAME="Limits">
  3140. <H2>Limitations of AVI and Video for Windows over Networks</H2>
  3141. </A>
  3142.  
  3143. AVI and Video for Windows were developed for playback of audio and
  3144. video from hard disks and CD-ROMs on personal computers.  They are
  3145. also adequate for downloading a video file from a remote site on the
  3146. Internet for subsequent playback from the computer's hard drive.  They
  3147. are not well suited for real-time or streaming video playback over
  3148. networks.  This means videoconferencing or broadcast video over
  3149. networks.
  3150.  
  3151. The AVI file format lacks time stamps embedded in the  audio and
  3152. video streams.  There is no mechanism to resynchronize the audio and
  3153. video streams if data is lost.  In a network, sometimes packets are
  3154. lost in which case the audio and video playback will lose track of the
  3155. time.  With time stamps, the application can resynchronize the audio
  3156. and video playback.
  3157.  
  3158. Microsoft has a new generation of products in the form of the Active
  3159. Streaming Format (ASF), NetShow, NetMeeting (videoconferencing), and
  3160. ActiveMovie (DirectShow) with improved support for video over
  3161. networks.  Microsoft provides utilities for converting AVI to
  3162. the new ASF format.
  3163.  
  3164. <A HREF="#Top">Return to Top</A>
  3165.  
  3166. <A NAME="ToSequence">
  3167. <H2>How can I convert an AVI file to a sequence of bitmap images?</H2>
  3168. </A>
  3169.  
  3170. <H3>VidEdit</H3>
  3171.  
  3172. Microsoft's VidEdit video editor can convert AVI files to a sequence
  3173. of Microsoft DIB files, such as test.avi --> test00.dib, test01,dib, etc.
  3174. Further information on VidEdit is available in the section of the
  3175. AVI Overview on editing AVI.
  3176.  
  3177. <H3>AVIRIP</H3>
  3178.  
  3179. There is a freeware DOS program called AVIRIP that can convert
  3180. non-compressed AVI files to a sequence of TGA (Targa), RAW, or
  3181. DIB files.  AVIRIP is available with the convmpg3 freeware toolkit
  3182. for converting AVI to MPEG and MPEG to AVI.  Further information
  3183. on convmpg3 is available in the section of the AVI Overview
  3184. on converting AVI to MPEG.
  3185.  
  3186.  
  3187. <H3>Jih-Shin Ho's Display</H3>
  3188.  
  3189. Display by Jih-Shin Ho
  3190. Available at
  3191.  
  3192. <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>
  3193.  
  3194. or other Simtel mirror sites.
  3195.  
  3196. This is a 32-bit MS-DOS program that can read and write many image
  3197. and movie file formats.
  3198.  
  3199. <H3>DeBabelizer Pro</H3>
  3200.  
  3201. Equilibrium's DeBabelizer Pro for Windows 95 and NT 4.0 reads and
  3202. writes about 90 common and not-so-common image formats.  DeBabelizer Pro
  3203. also reads and writes AVI files.  DeBabelizer Pro can read an AVI
  3204. file and export it as a sequence of still images in the many image formats
  3205. that it supports.
  3206.  
  3207. DeBabelizer Pro has many other features beside file format conversions.
  3208.  
  3209. Equilibrium has a demonstration version of DeBabelizer Pro on its Web site.
  3210. This is definitely demonstration version.  The demo version plasters the
  3211. word Equilibrium all over any images that it processes.
  3212.  
  3213. DeBabelizer Pro ($595 Suggested Retail Price)
  3214. Equilibrium
  3215. 475 Gate Five Road, Suite 225
  3216. Sausalito, CA  94965
  3217. 1-800-524-8651 or (415) 332-4343
  3218.  
  3219. <A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>
  3220.  
  3221. <A HREF="#Top">Return to Top</A>
  3222.  
  3223. <A NAME="ToSmacker">
  3224. <H2>Smacker</H2>
  3225. </A>
  3226.  
  3227. Smacker is a special 8-bit color video format from
  3228. RAD Game Tools used for video and computer games.
  3229. RAD Game Tools provides free Smacker Utilities at
  3230. their Web site:
  3231.  
  3232. <A HREF="http://www.radgametools.com/">http://www.radgametools.com/</A>
  3233.  
  3234. The utilities can convert an AVI file to a Smacker video file.
  3235. The Smacker utilities calculate a good 8 bit palette
  3236. for the input video.  
  3237.  
  3238. <A HREF="#Top">Return to Top</A>
  3239.  
  3240. <A NAME="FromSequence">
  3241. <H2>How to convert a sequence of bitmap images to an AVI?</H2>
  3242. </A>
  3243.  
  3244.  
  3245. <H3>VidEdit</H3>
  3246.  
  3247. Microsoft's VidEdit software (16 bit Windows) can read in
  3248. sequences of Microsoft .DIB files and convert them to an
  3249. AVI file.  More information on VidEdit is available in the
  3250. section of the AVI Overview on editing AVI files.
  3251.  
  3252.  
  3253.  
  3254. <H3>Video for DOS</H3>
  3255.  
  3256. A shareware program called Video for DOS (VFD) can convert sequences
  3257. of Targa files (.TGA) into AVI.  (11/8/96)  Video for DOS can be
  3258. downloaded from
  3259.  
  3260. <A HREF="http://www.dc.ee/Files/Graf">http://www.dc.ee/Files/Graf</A>
  3261.  
  3262. Thanks to John Avis for information on Video for DOS.
  3263.  
  3264.  
  3265. <H3>AVI Constructor</H3>
  3266.  
  3267. Michael Caracena's AVI Constructor, a shareware program, can convert
  3268. sequences of Windows .BMP files into an AVI file.  AVI Constructor
  3269. can be ordered and a demonstration version downloaded from:
  3270.  
  3271. <A HREF="http://www.henge.com/~caracena">http://www.henge.com/~caracena</A>
  3272.  
  3273. <H3>MainConcept's MainActor</H3>
  3274.  
  3275. MainConcept's MainActor can import sequences of BMP images and export
  3276. them as an AVI video file.  MainActor can import and export many other
  3277. video and still image formats as well.
  3278.  
  3279. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
  3280.  
  3281.  
  3282. <H3>DeBabelizer Pro for Windows 95 and NT 4.0</H3>
  3283.  
  3284. Equilibrium's DeBabelizer Pro can read and write about 90 common
  3285. and not so common image file formats.  DeBabelizer Pro can also
  3286. read and write AVI files.  DeBabelizer Pro can read in sequences of
  3287. image files in many formats and convert to an AVI file.
  3288.  
  3289. Equilibrium has a demonstration version of DeBabelizer Pro on their
  3290. web site.  This is a demonstration version.  It adds the words Equilibrium
  3291. to any images or movies that it processes.
  3292.  
  3293. DeBabelizer Pro ($595 Suggested Retail Price)
  3294. Equilibrium
  3295. 475 Gate Five Road, Suite 225
  3296. Sausalito, CA  94965
  3297. 1(800) 525-8651 or (415) 332-4343
  3298. <A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>
  3299.  
  3300. <H3>Smacker Utilities</H3>
  3301.  
  3302. RAD Game Tools distributes free Smacker utilities
  3303. at their Web site:
  3304.  
  3305. <A HREF="http://www.radgametools.com/">http://www.radgametools.com/</A>
  3306.  
  3307. The Graphics Processor can convert a sequence of bitmap images
  3308. in several common bitmap image formats into an AVI file.
  3309. NOTE: this AVI file uses an 8 bit color palette selected by
  3310. the Smacker utilities for best picture quality.
  3311.  
  3312. RAD Game Tools licenses a proprietary 8 bit video format
  3313. called Smacker for use in video games.  Their focus is on
  3314. compression achieved through proper selection of an 8 bit
  3315. color palette, rather than 24 bit color.  Smacker is popular
  3316. in the gaming industry.
  3317.  
  3318. RAD Game Tools
  3319. 850 South Main Street
  3320. Salt Lake City, UT 84101
  3321. Voice: (801) 322-4300
  3322. FAX: (801) 359-6169
  3323.  
  3324. <A HREF="#Top">Return to Top</A>
  3325.  
  3326. <A NAME="FromMOV">
  3327. <H2>How to convert QuickTime MOV files to AVI?</H2>
  3328. </A>
  3329.  
  3330. <H3>Power Macintosh:</H3>
  3331.  
  3332. Video for Windows (Macintosh) is a collection of utilities and
  3333. extensions for the Macintosh that add support for Windows video file
  3334. formats.  One of the utilities is VfW Converter which can convert
  3335. Quicktime MooV files to AVI files playable on the PC.
  3336.  
  3337. VfW Converter is more powerful than Intel's smartvid PC application.
  3338. It can convert video formats.  For example, VfW Converter can
  3339. convert a raw uncompressed 24 bit Quicktime Movie to a raw 
  3340. uncompressed 24 bit AVI Movie (or do various compressions).  
  3341. Uncompressed Quicktime and uncompressed AVI files use different
  3342. video formats.  VfW Converter also converts audio from Quicktime
  3343. audio to AVI audio.
  3344.  
  3345. The Video for Windows (Macintosh) file is usually called:
  3346.  
  3347. video-for-windows-11p.hqx
  3348.  
  3349. Apple's Quicktime Web site contains links to sources for
  3350. Video for Windows (Macintosh) as well as other useful
  3351. video utilities.
  3352.  
  3353. <A HREF="http://quicktime.apple.com/">Apple's QuickTime Web Site</A>
  3354.  
  3355. Video for Windows (Macintosh) has the virtue of being free, unlike:
  3356.  
  3357. Adobe Premiere (Macintosh)
  3358. ---reportedly can save QuickTime movies as AVI files.
  3359.  
  3360.  
  3361. <H3>On PC/Microsoft Windows:</H3>
  3362.  
  3363. TRMOOV.EXE (see below)
  3364. can translate MOV to AVI, but I found problems playing back
  3365. the AVI files on my 486 PC.  It does not change the 
  3366. interleaving of the audio and video streams in the conversion from
  3367. .MOV to .AVI.  TRMOOV preserves the half-second
  3368. interleave of QuickTime movies which is not appropriate for AVI.  AVI
  3369. wants each video frame interleaved with the audio for that frame.
  3370.  
  3371. With the half-second interleave of QuickTime the audio will playback for
  3372. a half-second while the video is frozen, followed by a half-second of
  3373. video with no audio, repeated for the duration of the AVI playback.
  3374.  
  3375. The interleave can be fixed using VidEdit.  VidEdit contains algorithms
  3376. to properly interleave the audio and video.  Load the offending AVI
  3377. file into VidEdit, Select File | Save As ... and give the file a new
  3378. name.  This triggers the interleave algorithm.  VidEdit will reorganize
  3379. the audio and video to interleave frames instead of half-seconds.
  3380.  
  3381. Intel's SmartVid (see below) can convert .MOV to .AVI  It appears to
  3382. convert the audio video interleave from one format to another, something
  3383. TRMOOV seems to have problems with.
  3384.  
  3385.  
  3386. <A HREF="#Top">Return to Top</A>
  3387.  
  3388. <A NAME="FromAutodesk">
  3389. <H2>Converting Autodesk Animation Files (FLI or FLC) to AVI</H2>
  3390. </A>
  3391.  
  3392. <H3>VidEdit:</H3>
  3393.  
  3394. Use Microsoft's VidEdit editor.  This editor can read FLI or FLC files.
  3395. Then save the files as AVI files.
  3396.  
  3397. Launch VidEdit.  Select File | Open ...
  3398.  
  3399. This brings up the Open Video File dialog box.  Under List Files of Type,
  3400. select Autodesk Animation from the pulldown list.
  3401.  
  3402. Then, choose File | Save As ...
  3403.  
  3404. VidEdit will save the file as an AVI file.
  3405.  
  3406. Further information on VidEdit is available in the section on editing
  3407. AVI files, including where to get VidEdit.
  3408.  
  3409. <H3>MainActor</H3>
  3410.  
  3411. MainConcept's MainActor for Windows 95 and OS/2 Version 1.00
  3412. can load Autodesk Animator FLI and FLC files and save in AVI
  3413. format.  For further information on MainActor, a shareware
  3414. program that converts many video and animation formats, see:
  3415.  
  3416. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
  3417.  
  3418. or e-mail
  3419.  
  3420. <A HREF="mailto:info@mainconcept.com">info@mainconcept.de</A>
  3421.  
  3422. <A HREF="#Top">Return to Top</A>
  3423.  
  3424. <A NAME="FromMPEG">
  3425. <H2>Converting MPEG to AVI</H2>
  3426. </A>
  3427.  
  3428. Ulead's MPEG Converter can convert MPEG-1 to AVI.
  3429.  
  3430. Ulead is:
  3431.  
  3432. Ulead
  3433. 970 West 190th Street, Suite 20
  3434. Torrance, CA  90502
  3435. Voice: (800) 858-5323
  3436. FAX:   (310) 523-9399
  3437. <A HREF="http://www.ulead.com/">http://www.ulead.com/</A>
  3438.  
  3439. <A HREF="#Top">Return to Top</A>
  3440.  
  3441. <A NAME="FromGIF89a">
  3442. <H2>Converting Animated GIF (GIF89a) to AVI</H2>
  3443. </A>
  3444.  
  3445. MainConcept's MainActor for Windows can load animated GIF
  3446. files (GIF89a) and then save these files as AVI files.
  3447. MainActor is available in a shareware version or as a fully
  3448. functional paid-for version.
  3449.  
  3450. On the Web:
  3451.  
  3452. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
  3453.  
  3454. By E-Mail:
  3455.  
  3456. <A HREF="mailto:info@mainconcept.de">info@mainconcept.de</A>
  3457.  
  3458. <A HREF="#Top">Return to Top</A>
  3459.  
  3460.  
  3461. <A NAME="Bitmaps">
  3462. <H2>How to Convert a Sequence of Still Images in One Format to a Sequence in Another Format</H2>
  3463. </A>
  3464.  
  3465. At this time, there are hundreds of different graphic file formats
  3466. for still images, such as Windows BMP, Windows DIB, Targa, GIF, JPEG,
  3467. Unix Portable Pixmap (PPM), and many others.  In creating an AVI (or
  3468. MPEG or MOV for that matter), some authoring programs may create a
  3469. video as a sequence of still images in some graphic file format
  3470. which is not supported by the graphic file sequence to AVI
  3471. conversion utilities listed elsewhere in this Overview.
  3472.  
  3473. Fortunately, there are freeware, shareware, and commercial programs
  3474. which provide batch conversion of sequences of still images from one
  3475. file format to sequences in another file format.  For example, you 
  3476. might generate a sequence of Unix PPM format files with one
  3477. utilitity and need to convert to a sequence of Windows BMP files.
  3478.  
  3479. <H3>PC/Windows</H3>
  3480.  
  3481. WinJPEG is a shareware Windows utilitity from Pixel Vision.
  3482. WinJPEG reads and writes most graphic file formats.  It has a
  3483. batch conversion feature.
  3484.  
  3485. Pixel Vision Software Home Page (WinJPEG):
  3486.  
  3487. <A HREF="http://www.pixvision.com/">http://www.pixvision.com/</A>
  3488.  
  3489. <H3>Power Macintosh</H3>
  3490.  
  3491. GraphicConverter is a shareware Power Macintosh utility with
  3492. very extensive support for graphic file formats and some video
  3493. formats.  It can read and write roughly a hundred different
  3494. file formats including some pretty obscure formats.  It has a
  3495. batch conversion feature.
  3496.  
  3497. GraphicConverter Web Site:
  3498.  
  3499. <A HREF="http://www.lemkesoft.de/">http://www.lemkesoft.de/</A>
  3500.  
  3501. <A HREF="#Top">Return to Top</A>
  3502.  
  3503. <A NAME="ToMOV">
  3504. <H2>How to convert AVI to QuickTime files?</H2>
  3505. </A>
  3506.  
  3507. <H3>Microsoft Windows</H3>
  3508.  
  3509. Intel's SmartVID, a DOS and Windows application, can convert
  3510. .AVI to .MOV files.  SmartVID is codec independent.  This means
  3511. that SmartVid preserves the video compression scheme from the
  3512. source .AVI file.  
  3513.  
  3514. <A HREF="http://www.intel.com/pc-supp/multimed/indeo/smartvid.htm">
  3515. http://www.intel.com/pc-supp/multimed/indeo/smartvid.htm</A>
  3516.  
  3517.  
  3518. TRMOOV.EXE
  3519.  
  3520. Windows 3.1 Program
  3521. Converts AVI to QuickTime for Windows movie.
  3522. The QTW movie will play on a Macintosh with QuickTime 1.5 or later.
  3523.  
  3524. Note: My experiments converting some .MOV files to .AVI seem to
  3525. playback ok, unlike the .AVI to .MOV conversion. 
  3526.  
  3527. Source: Found on CD-ROM with the "How to Digitize Video" book 
  3528. (see below).
  3529.  
  3530. On Net: <A 
  3531. HREF="ftp://ftp.rahul.net/pub/jfm/avi/trmoov.exe">ftp://ftp.rahul.net/pub/jfm/avi/trmoov.exe</A>
  3532.  
  3533. Please Note: TRMOOV and SmartVid preserve the compressor used in the
  3534. source file.  For example, if the AVI file was compressed with
  3535. CinePak, the MOV file will be compressed with CinePak.  Since CinePak
  3536. is supported by both Video for Windows and QuickTime this is not
  3537. a problem.  However, if the compressor exists only in Video for Windows
  3538. or only QuickTime, then there will be a problem.
  3539.  
  3540.  
  3541. Mainconcept's Main Actor can load many video and animation formats.
  3542. It can also save many video and animation formats.  The Windows version
  3543. of Main Actor can load AVI and save the file as Quicktime.
  3544.  
  3545. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de</A>
  3546.  
  3547.  
  3548. <H3>PowerMacintosh</H3>
  3549.  
  3550. On the PowerMacintosh, the program AVI->QuickTime can convert AVI to
  3551. QuickTime.  At least, it can convert the video successfully for
  3552. subsequent playback with Apple's MoviePlayer.  I have seen problems
  3553. with the audio.  This application is available at various Web and ftp
  3554. sites in the file avi-to-qt-converter.hqx
  3555.  
  3556. One site with AVI->QuickTime is:
  3557.  
  3558. <A HREF="ftp://mirrors.aol.com/pub/info-mac/gst/mov/avi-to-qt-
  3559. converter.hqx">ftp://mirrors.aol.com/pub/info-mac/gst/mov/avi-to-qt-converter.hqx</A>
  3560.  
  3561.  
  3562. <A HREF="#Top">Return to Top</A>
  3563.  
  3564.  
  3565. <A NAME="ToGIF89a">
  3566. <H2>How to convert AVI to animated GIF?</H2>
  3567. </A>
  3568.  
  3569. Gif Construction Set from Alchemy Mindworks reportedly can convert 
  3570. an AVI file to an animated GIF file.
  3571.  
  3572. Alchemy Mindworks, Inc.
  3573.  
  3574. Web <A HREF="http://www.mindworkshop.com/alchemy/alchemy.html">http://www.mindworks.com/alchemy/alchemy.html</A>
  3575.  
  3576. E-Mail: alchemy@mail.north.net
  3577.  
  3578. FTP: ftp://ftp.mindworkshop.com/pub/alchemy
  3579.  
  3580.  
  3581. Microsoft's GIF Animator for Windows 95 
  3582. product can reportedly convert AVI to animated
  3583. GIFs (GIF89a format).  Information on GIF Animator
  3584. including a dowloadable version is available at
  3585. the Microsoft Web site (11/7/96) on the Microsoft
  3586. Image Composer page.
  3587.  
  3588. Web <A HREF="http://www.microsoft.com/imagecomposer/">http://www.microsoft.com/imagecomposer</A>
  3589.  
  3590.  
  3591. MainActor, a shareware software product for Windows 95, Windows NT, and 
  3592. OS/2 reportedly can convert AVI to animated GIF.
  3593.  
  3594. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
  3595.  
  3596.  
  3597.  
  3598. Ulead reports that is has added AVI to GIF to
  3599.  
  3600. Ulead's PhotoImpact GIF Animator 1.2 Beta (11/16/96)
  3601.  
  3602. <A HREF="http://www.ulead.com/products/framens.htm">http://www.ulead.com/products/framens.htm</A>
  3603.  
  3604. Ulead Toll Free Number: 1-800-858-5323
  3605.  
  3606. <A HREF="#Top">Return to Top</A>
  3607.  
  3608.  
  3609. <A NAME="ToMPEG">
  3610. <H2>How to convert AVI to MPEG?</H2>
  3611. </A>
  3612.  
  3613. AVI to MPEG Conversion at a Glance
  3614.  
  3615. Company/Author(s)  Product           Price             URL
  3616. ---------------------------------------------------------------------
  3617.  
  3618. Corel              PhotoPaint        $500?    http://www.corel.com/
  3619.  
  3620. Ulead              MPEG Converter    $249     http://www.ulead.com/
  3621.  
  3622. Xing Technologies  XingMPEG Encoder  $89      http://www.xingtech.com/
  3623.                    XingMPEG Encoder 2 (May 6, 1997 release)
  3624.  
  3625. CeQuadrat          PixelShrink       $199     http://www.cequadrat.com/
  3626.  
  3627. Vitec              MPEG Maker        $125     http://glimmer.com/vitec
  3628.  
  3629. MainConcept        MainActor         shareware  http://www.mainconcept.de/
  3630.  
  3631. avi2mpg1           Unknown           freeware   http://www.mnsi.net/~jschlic1/
  3632.  
  3633. Stefan Eckhart and others  CONVMPG3  freeware kit  http://www.powerweb.de/mpeg/msdos.html
  3634.  
  3635. -------------------
  3636.  
  3637. Further information, reviews, and live links follow:
  3638.  
  3639.  
  3640. The following posting from the comp.graphics.animation USENET
  3641. newsgroup provides a good answer to this question.  I have retained
  3642. the header to insure proper credit to the author.
  3643.  
  3644. Note: LW refers to the Lightwave 3D animation software package.
  3645.  
  3646. From comp.graphics.animation Wed Oct 30 18:16:34 1996
  3647. Path: 
  3648. samba.rahul.net!rahul.net!a2i!news.PBI.net!news.mathworks.com!howland.erols.net!surfnet.nl!tudelft.nl!ne
  3649. ws
  3650. From: Valery <V.V.Kritchallo@twi.tudelft.nl>
  3651. Newsgroups: comp.graphics.animation
  3652. Subject: Re: AVI to Mpeg converter
  3653. Date: Mon, 28 Oct 1996 15:15:14 +0100
  3654. Organization: Technical University, Delft
  3655. Lines: 58
  3656. Message-ID: <3274BFF2.2EDD@twi.tudelft.nl>
  3657. References: <01bbc33f$05021880$d73d93cf@cube176a>
  3658. Reply-To: V.V.Kritchallo@twi.tudelft.nl
  3659. NNTP-Posting-Host: duti504b.twi.tudelft.nl
  3660. Mime-Version: 1.0
  3661. Content-Type: text/plain; charset=us-ascii
  3662. Content-Transfer-Encoding: 7bit
  3663. X-Mailer: Mozilla 3.0 (Win95; I)
  3664.  
  3665. Mariusz Jesmanowicz wrote:
  3666. > Hi, I use LW to do animation, and basically I am not happy with any of the
  3667. > compression engines aviable for avi. Those codes suck. So what I want to do
  3668. > is make an UNCOMPRESSED AVI and then translate it to MPEG. anyone know of
  3669. > any good converters to MPEG or hoe about plug-in for LW to be able to do
  3670. > MPEG files from the start.
  3671. > Thank You
  3672.  
  3673. Hi,
  3674.  
  3675. you're right, every single AVI compression codec is lame.
  3676. 5 years of the AVI format existance and zero progress so far.
  3677.  
  3678. If you're talking about freeware or budget-priced MPEG codecs,
  3679. it's a tough task, to find the damn thing. I'm busy in this area
  3680. quite for a while already, and here are my findings:
  3681.  
  3682. 1. XING's MPEG encoder is a classical name on the scene. Had
  3683. compatibility problems before, not anymore, I believe. Can cost
  3684. you $150 or more, not sure. Scan for 'XING' on the Net, you'll
  3685. definitely find some tracks (www.xing.com doesn't show up).
  3686.  
  3687. 2. Stefan Eckart's CMPEG (DOS) encoder is FREE and GOOD, and stays
  3688. so for a couple of years already. Can have troubles converting
  3689. some particular streams, but generally not worse than many
  3690. commercial programs. (You need to make a TGA sequence first out
  3691. of your AVI, though). Again, scan for CMPEG, or use my bookmarks
  3692. found on the site Im introducing below.
  3693.  
  3694. 3. To my surprise, Corel Photopaint 6 has got very decent built-in 
  3695. MPEG compression option. Open an AVI, Save As an MPEG, and see what
  3696. happens (get some coffie, as it'll take a while ;)  I checked it out
  3697. on a stream where CMPEG gave up and the Corel's conversion did make
  3698. a wonder. (If you like to see the result, download my 'Liquid Beatles'
  3699. morph clip, 1 Mb: http://www.proteon.nl/synth_art/movies/cross.mpg).
  3700.  
  3701. 4. Ulead's MPEG converter (www.ulead.com) seems to be the major
  3702. player (priced below $250) on the Windows arena. I've heard good
  3703. references about their MPEG's quality, but I feel that their
  3704. biggest advantage is good integration with Windows and AVI format.
  3705. If I'm not mistaken, a very slow codec.
  3706.  
  3707. 5. Don't mess with DARIM Vision's codec (Korea). I've tried their
  3708. demo, it produces low-quality crap. Though fast and cheap (you bet :-).
  3709.  
  3710. See my MPEG clips, fractals, morphs, and in general lots of
  3711. advanced graphics at 
  3712. http://www.proteon.nl/synth_art/
  3713.  
  3714. Hope this helps,
  3715.  
  3716. Valery
  3717. http://www.proteon.nl/synth_art/movies.html
  3718. ---------------------------------------------------------------
  3719.  
  3720. In addition to the above, there is <EM>MPEG Maker</EM> from
  3721. VITEC-HTS (formerly Vitec Multimedia).  Vitec is:
  3722.  
  3723. Vitec
  3724. 4366 Independence Court, Suite C
  3725. Sarasota, FL 34234
  3726. Voice: (941) 351-9344
  3727. FAX: (941) 351-9423
  3728. <A HREF="http://vitechts.com">http://vitechts.com</A>
  3729.  
  3730. CeQuadrat makes a software-only AVI to MPEG converter called
  3731. PixelShrink.  CeQuadrat is:
  3732.  
  3733. CeQuadrat
  3734. 1804 Embarcadero Road, Suite 101
  3735. Palo Alto, CA  94303
  3736. Voice: (415) 843-3780
  3737. FAX: (415) 843-3799
  3738. <A HREF="http://www.cequadrat.com/">http://www.cequadrat.com/</A>
  3739.  
  3740.  
  3741. And the freeware kit CONVMPG3, a collection of MS-DOS
  3742. utilities that can be used to convert AVI to MPEG-1 or
  3743. MPEG-1 to AVI.  CONVMPG3 includes Stefan
  3744. Eckhardt's CMPEG MPEG-1 encoder mentioned above
  3745. but also includes utilities to generate the sequence
  3746. of Targa files required by CMPEG.  The URL for CONVMPG3 is:
  3747.  
  3748. <A HREF="http://www.powerweb.de/mpeg/msdos.html">http://www.powerweb.de/mpeg/msdos.html</A>
  3749.  
  3750. avi2mpg1 is a freeware command line application for Windows 95/NT
  3751. that can convert AVI to MPEG-1, supports audio, video, and 
  3752. interleaved audio/video.
  3753.  
  3754. <A HREF="http://www.mnsi.net/~jschlic1/">http://www.mnsi.net/~jschlic1/</A>
  3755.  
  3756. MainConcept's MainActor product now (March 1997) includes
  3757. add-on modules to output MPEG-1 and MPEG-2.  With these add-on
  3758. modules, MainActor can convert AVI to MPEG-1 or MPEG-2.
  3759.  
  3760. Marcus Moenig at MainConcept provided an evaluation copy of the
  3761. MPEG-1/2 modules.   In tests, these modules could convert AVI files
  3762. to MPEG-1 that could be played using the ActiveMovie software
  3763. MPEG player shipping with Microsoft's Windows 95 OSR2.
  3764.  
  3765. MainConcept is:
  3766.  
  3767. MainConcept
  3768. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de</A>
  3769.  
  3770.  
  3771. The URL for Ulead is:
  3772.  
  3773. Ulead MPEG Converter
  3774. <A HREF="http://www.ulead.com/">http://www.ulead.com/</A>
  3775.  
  3776.  
  3777. On May 6, 1997, Xing announce a new product, the Xing MPEG Encoder 2
  3778. which accelerates MPEG encoding using Intel MMX instructions on PC's.
  3779. The original Xing MPEG Encoder did not use MMX instructions.
  3780. The Xing MPEG Encoder 2 can convert AVI and WAV files to MPEG-1.
  3781.  
  3782. The URL for Xing is:
  3783. Xing Technology Corporation
  3784. <A HREF="http://www.xingtech.com">http://www.xingtech.com/</A>
  3785.  
  3786. For further information on the MPEG digital audio and video
  3787. format see Tristan Savatier's comprehensive MPEG site:
  3788.  
  3789. <A HREF="http://www.mpeg.org/">http://www.mpeg.org/</A>
  3790.  
  3791. <A HREF="#Top">Return to Top</A>
  3792.  
  3793. <A NAME="ScreenCapture">
  3794. <H2>How to capture screen to AVI Files</H2>
  3795. </A>
  3796.  
  3797. <H3>Microsoft Camcorder</H3>
  3798.  
  3799. Microsoft distributes a free screen capture utility called 
  3800. Microsoft Camcorder (sometimes abbreviated MSCamcorder).  Camcorder
  3801. can save screen captures as AVI files or a .EXE file.
  3802.  
  3803. <A HREF="http://www.microsoft.com/msoffice/office97/camcorder/default.htm">http://www.microsoft.com/msoffice/office97/camcorder/default.htm</A>
  3804.  
  3805. <H3>HyperCam</H3>
  3806.  
  3807. See the following posting from Greg Kochaniak dated 5/10/97 from the 
  3808. comp.archives.ms-windows.announce newsgroup.
  3809.  
  3810. I have uploaded to Simtel.Net:
  3811.  
  3812. http://www.simtel.net/pub/simtelnet/win95/mmedia/hycam119.zip
  3813. ftp://ftp.simtel.net/pub/simtelnet/win95/mmedia/hycam119.zip   251872 bytes
  3814.  
  3815. hycam119.zip    HyperCam v1.19 AVI screen capture for Win95,NT
  3816.  
  3817. HyperCam v1.19 captures the action from Windown 95 or NT screen in any
  3818. graphics mode, including cursor movements and sound, and saves it to
  3819. standard AVI movie files.  Perfect for demonstrations, presentations
  3820. and tutorials.
  3821.  
  3822. Special requirements: Windows 95 or Windows NT.
  3823.  
  3824. Changes: Fixed two problems: starting recording in 256 color mode would
  3825. produce sometimes invalid AVI files (when, upon minimizing HyperCam
  3826. window for recording, another window with a different palette would come
  3827. to front and realize its palette). The other problem: selecting AVI file
  3828. name with Browse button would not always work correctly.
  3829.  
  3830. hycam119.zip has replaced hycam118.zip.
  3831.  
  3832. Shareware.  Uploaded by the author.
  3833.  
  3834. Greg Kochaniak, Hyperionics
  3835. gregko@hyperionics.com
  3836. http://www.hyperionics.com/
  3837.  
  3838.  
  3839. <A HREF="#Top">Return to Top</A>
  3840.  
  3841. <A NAME="AuthorAVI">
  3842. <H2>Authoring Tools to Create AVI Files</H2>
  3843.  
  3844. A wide variety of 2D and 3D animation applications as well as other
  3845. multimedia authoring tools generate AVI files directly.  This is
  3846. especially true for Windows versions of applications, since Microsoft
  3847. provides an API for creating AVI files.  A list of applications
  3848. that can create AVI files follows.    
  3849.  
  3850. <H3>LightWave 3D 5.5 for Windows 95 and Windows NT</H3>
  3851.  
  3852. LightWave is a popular 3D modeling and animation program
  3853. widely used in broadcast television.  LightWave can do almost
  3854. anything and supports third party plug-ins to add features that
  3855. it lacks.
  3856.  
  3857. NewTek
  3858. Note: According to product literature on the NewTek Web site.
  3859.  
  3860. <A HREF="http://www.newtek.com/">http://www.newtek.com/</A>
  3861.  
  3862.  
  3863. <H3>Caligari Truespace 1,2, and 3 for Windows</H3>
  3864.  
  3865. Caligari TrueSpace is a popular low-end 3D modeling and animation
  3866. program.  Traditionally, TrueSpace has been polygon based limiting
  3867. its usefulness for modeling organic forms.  TrueSpace 3.0 adds
  3868. some organic features.
  3869.  
  3870. Caligari Corporation
  3871. Note: Confirmed from personal use of Caligari TrueSpace.
  3872.  
  3873. <A HREF="http://www.caligari.com/">http://www.caligari.com/</A>
  3874.  
  3875. <H3>Fractal Design Ray Dream Studio for Windows </H3>
  3876.  
  3877. Ray Dream Studio is a suite of 3D modeling, animation, and rendering
  3878. tools.
  3879.  
  3880. Fractal Design
  3881. Note: According to product literature on web site.
  3882.  
  3883. <A HREF="http://www.fractal.com/">http://www.fractal.com/</A>
  3884.  
  3885. <H3>Macromedia Director 6.0 for Windows</H3>
  3886.  
  3887. Macromedia Director is a widely used authoring tool for creating
  3888. interactive 2D animations such as presentations, multimedia for
  3889. kiosks, prototypes of user interfaces, and similar uses.  Director
  3890. can also produce straight 2D animations appropriate for AVI files.
  3891.  
  3892. Macromedia
  3893. Note: According to product literature on the Macromedia Web site.
  3894.  
  3895. <A HREF="http://www.macromedia.com/">http://www.macromedia.com/</A>
  3896.  
  3897. <H3>CorelMOVE</H3>
  3898.  
  3899. Corel's CorelMOVE animation software can export AVI files.
  3900.  
  3901. <A HREF="#Top">Return to Top</A>
  3902.  
  3903. <A NAME="Capture">
  3904. <H2>How to create AVI files from analog video:</H2>
  3905. </A>
  3906.  
  3907. <H3>Video Capture Cards</H3>
  3908.  
  3909. On Intel based PC's, use a video capture card to convert analog video
  3910. from video tapes or video cameras to AVI files.  A PC video capture card
  3911. is typically either a 16 bit ISA bus card or a 32-bit PCI bus card that
  3912. plugs into the 16 bit ISA or 32-bit PCI slots in your PC motherboard.
  3913. 32-bit PCI bus cards are steadily replacing 16-bit ISA bus cards.
  3914. Most video capture cards have either a composite video connector or
  3915. both a composite video and an S-Video connector.  Most video capture
  3916. cards perform compression of the video in hardware or firmware on the
  3917. video capture card before tranferring the compressed video over the ISA
  3918. or PCI bus to the PC hard drive.
  3919.  
  3920. Composite video signals are analog signals that combine luminance and
  3921. chrominance (color) information in a single analog signal that can be
  3922. transmitted over a single wire or stored in a single track on an
  3923. analog magnetic tape.  The NTSC video signals used by commercial
  3924. television sets in the United States and Japan are an example of
  3925. composite signals.  Composite video is particularly prone to errors in
  3926. reproducing exact colors due to the overlap of the color and luminance
  3927. signals.  Video professionals jokingly refer to NTSC as Never The Same
  3928. Color.
  3929.  
  3930. S-Video video signals separate the luminance and chrominance
  3931. information into two separate analog signals that can be transmitted
  3932. over two separate wires or stored in two separate tracks on an analog
  3933. tape.  S-Video is generally superior to composite video in reproducing
  3934. colors correctly.  The S-VHS and Hi8 video tape standards use S-Video.
  3935. Ordinary VHS video tape uses composite NTSC signals.  Thus, in
  3936. general, using an S-VHS or Hi8 video camera with S-Video output to
  3937. provide the analog video signal to the S-Video input of a PC video
  3938. capture card will provide better video quality.
  3939.  
  3940. A third type of video signal is component video.  In component video, the
  3941. luminance (Y) and two color difference signals (U and V or I and Q) are
  3942. separated into three separate analog signals that can be transmitted
  3943. over three separate wires or stored in three separate tracks on an
  3944. analog tape, or digitized separately.  Component video is used in
  3945. professional video production and provides the best quality and the 
  3946. most accurate reproduction of colors.  The professional Betacam SP video
  3947. cameras use component video.  The current generation of widely used
  3948. PC video capture cards do not provide component video inputs.
  3949.  
  3950. Typical PC video capture cards store the digitized compressed video as
  3951. an AVI file using Motion JPEG compression.  Motion JPEG is used
  3952. instead of other compression schemes because each frame is compressed
  3953. separately.  This allows frame accurate editing of the AVI file after
  3954. capture.  If a compression scheme that uses frame differencing - where
  3955. a frame is stored as the differences between the frame and a previous
  3956. frame (such as MPEG) - is used, it is difficult to edit the video.
  3957.  
  3958. Typical PC video capture cards are bundled with non-linear video editing
  3959. software such as Adobe Premiere which can be used to edit the Motion JPEG
  3960. compressed AVI file and ultimately compress the edited AVI file using 
  3961. compression such as CinePak using frame differencing for maximum
  3962. compression.
  3963.  
  3964. PC video capture cards usually compress the video using a lossy
  3965. compression scheme such as Motion JPEG or MPEG because uncompressed
  3966. video places very high demands on the bandwidth of the ISA or PCI bus
  3967. and on the bandwidth to the hard drive.  In addition, uncompressed
  3968. video can fill even very large hard drives very quickly.
  3969.  
  3970. PC video capture cards are usually bundled with application software and
  3971. drivers to perform video capture such as Microsoft's VIDCAP.EXE or
  3972. Intel's SMARTCAP.EXE or other similar software.
  3973.  
  3974. NOTE: Windows 95 and Windows NT require different device drivers.
  3975. Most video capture cards have drivers for Windows 95.  Only some
  3976. have Windows NT drivers.  Video capture cards that have Windows NT
  3977. device drivers and therefore can be used under Windows NT are listed
  3978. at the end of this section.
  3979.  
  3980.  
  3981.  
  3982. Some current (1/11/97) popular PC video capture cards that generate
  3983. AVI files are:
  3984.  
  3985. Digital Processing Systems (DPS) makes high end video capture cards
  3986. for the broadcast and studio markets.  Some of these cards can
  3987. capture video on the PC.  Some of these cards are designed for
  3988. Windows NT and include Windows NT device drivers.
  3989.  
  3990. <A HREF="http://www.dps.com/">http://www.dps.com/</A>
  3991.  
  3992. FAST AV Master PCI 60 field/60fps with Motion JPEG, Includes Ulead's
  3993. Media Studio Pro digital video editing application.
  3994.  
  3995. <A HREF="http://www.fast-multimedia.com">FAST Web Page</A>
  3996.  
  3997. Truevision Bravado 1000 50/60fps 32-bit PCI video capture board with Motion JPEG, Includes Adobe 
  3998. Premiere 4.2 Full Version
  3999.  
  4000. <A HREF="http://www.truevision.com/">Truevision Web Page</A>
  4001.  
  4002. MiroVideo DC30 PCI, complete non-linear video and audio editing for
  4003. Windows 95, Includes Adobe Premiere 4.2 Full Version
  4004.  
  4005. <A HREF="http://www.miro.com/">miro Web Page</A>
  4006.  
  4007. Azeena Vision 500 640x480 30 fps Motion JPEG PCI Capture Card
  4008. Up to 3:1 compression.
  4009.  
  4010. <A HREF="http://www.azeena.com/">Azeena Web Page</A>
  4011.  
  4012. Winnov Videum AV, Half size ISA card, composite and S-Video
  4013. input, claims to capture 352x240, 24 bit, AVI videos at 30
  4014. frames per second (must be compressed to fit across ISA bus - JFM)
  4015.  
  4016. <A HREF="http://www.winnov.com">Winnov Web Page</A>
  4017.  
  4018. Intel Smart Video Recorder III, a 32-bit PCI card that uses Indeo
  4019. video compression.  Includes a composite (NTSC) video input and an
  4020. S-Video input, RCA and S-Video cables, Asymetrix Digital Video
  4021. Producer and Asymetrix WebPublisher.  
  4022.  
  4023. <A HREF="http://www.intel.com/imaging">Intel Page</A>
  4024.  
  4025. U.S. Robotics markets the Bigpicture Video capture card and NTSC
  4026. camera for about $249.99 (7/22/97).  The video capture card is a PCI
  4027. half card with a single RCA jack for the NTSC composite video in and a
  4028. +5 Volt, 1 Amp power output jack for the NTSC camera.  The video
  4029. capture card uses the single Brooktree Bt848 chip, a complete video
  4030. capture system on a single chip.
  4031.  
  4032. Personally, I was impressed that they could get the entire video
  4033. capture system on a single chip.  More information on the Bt848
  4034. can be found at:
  4035.  
  4036. <A HREF="http://www.brooktree.com/brooktree/html/pr_bt848.html">Brooktree Bt848 Press Release</A>
  4037.  
  4038. Bigpicture can capture NTSC composite video at 30 frames per second at 320x240
  4039. or 160x120 resolution.
  4040.  
  4041. Bigpicture also comes in versions with U.S. Robotics modems.  The idea
  4042. is that this can be a PC video phone.  
  4043.  
  4044. Bundled software includes Kai's Power GOO Special Edition, Asymetrix
  4045. Digital Video Producer to capture and edit video, VDONet's VDOPhone (trial
  4046. edition), and VDONet's VDOLive player.
  4047.  
  4048. MINI-REVIEW
  4049.  
  4050. I intalled the Bigpicture video capture system under Windows 95b (OEM
  4051. Service Release 2) on a 200 MHz Pentium with MMX, 32 MB RAM, two
  4052. Western Digital IDE hard drives (2GB and 5 GB), and a 12x CD-ROM.
  4053.  
  4054. The installation was difficult due to resource conflicts.  At first
  4055. the video capture card appeared to conflict with the SupraExpress 336i
  4056. PnP modem in my PC.  After reinstalling a few times, the video
  4057. capture card started to work, but the modem stopped working.  A conflict
  4058. between the modem (an ISA card modem) and the COM1 serial port was
  4059. reported in the Windows 95 Device Manager (Control Panel | System |
  4060. Device Manager tab).  I fixed this by disabling the automatic
  4061. settings on the modem and changing the IO address.  I left the COM1
  4062. port (which I don't use) and the modem using the same IRQ (Interrupt
  4063. Request).
  4064.  
  4065. While the documentation provides some pointers on these conflicts, I found
  4066. the problem frustrating and difficult to fix although I am moderately
  4067. familiar with PC installation and configuration.  
  4068.  
  4069. Once fixed, the camera and video capture card worked fine.  My modem
  4070. seems to work fine.  I can capture video and use the modem at the same
  4071. time.
  4072.  
  4073. U.S. Robotics
  4074. 7770 North Frontage Road
  4075. Skokie, IL  60077-2690
  4076.  
  4077. <A HREF="http://www.usr.com/">http://www.usr.com/</A>
  4078.  
  4079. <A NAME="HDCapture">
  4080. <H3>Hard Drive Video Capture Issues</H3>
  4081. </A>
  4082.  
  4083. Digital video capture requires writing data to the PC hard disk
  4084. at sustained very high data rates.  The higher the resolution and
  4085. quality of the digital video, the higher the data rate the hard disk
  4086. must handle.
  4087.  
  4088. 1. Defragment the hard disk.  This allows the PC to write the
  4089. digital video (the AVI file) to contiguous disk sectors without
  4090. stopping to skip the drive head over used regions.
  4091.  
  4092. 2. Scan the disk and fix any bad sectors if possible.
  4093.  
  4094. 3. Conventional hard drives pause the drive heads for thermal
  4095. recalibration which slows their ability to write data to the
  4096. hard disk.  Special AV (Audio/Video) hard drives (which cost
  4097. more) disable the thermal recalibration during data writing.
  4098.  
  4099. This supposedly allows an AV hard drive to capture higher video
  4100. data rates.  Note that you can capture video onto conventional 
  4101. hard drives.  People do this all the time.  But for very high
  4102. end video capture, you may need a special AV drive.
  4103.  
  4104. <A NAME="NTCapture">
  4105. <H3>Video Capture Cards with Windows NT Drivers</H3>
  4106. </A>
  4107.  
  4108. The DPS (Digital Processing Systems) Perception ISA video capture card.
  4109.  
  4110. The DPS PVR-2500 Perception Video Recorder (PCI-bus) 
  4111. for Intel and DEC Alpha Windows NT workstations.  An optional
  4112. AD-2500 real time video capture daughter card adds component,
  4113. S-Video, and composite video inputs to this high-end product.
  4114. The AD-2500 is the actual capture card in this product which is
  4115. a "digital video disk recorder system".
  4116.  
  4117. The DPS HVR-2800 Hollywood Video Recorder (PCI and ISA).  The PCI
  4118. version is available for both Intel and DEC Alpha Windows NT
  4119. workstations.  The Hollywood is also a "digital video disk
  4120. recorder system", more than a simple video capture card.
  4121.  
  4122. DPS makes PC video products aimed at the studio and broadcast
  4123. production markets.  
  4124.  
  4125. <A HREF="http://www.dps.com/">http://www.dps.com/</A>
  4126.  
  4127. The Truevision Targa 2000 video capture card.
  4128.  
  4129. <A HREF="http://www.truevision.com/">http://www.truevision.com/</A>
  4130.  
  4131.  
  4132. <A HREF="#Top">Return to Top</A>
  4133.  
  4134. <A NAME="TV">
  4135. <H2>How to Create AVI Files from Television</H2>
  4136. </A>
  4137.  
  4138. To create an AVI file from your favorite television program, there
  4139. are two approaches.
  4140.  
  4141. Television is transmitted over radio frequency (RF) waves.
  4142. The NTSC, PAL, or SECAM composite analog television signals
  4143. are modulated onto high frequency radio waves to create the
  4144. familiar television channels.  In the United States, television
  4145. channels 2 through 69 cover the range from 54 MHz to
  4146. 806 MHz.  An NTSC channel uses about 4 MHz of frequency
  4147. range.
  4148.  
  4149. Traditional analog Cable Television (CATV) works much the
  4150. same except that the RF is sent over coaxial cables instead of
  4151. the open air.
  4152.  
  4153. A device usually referred to as a tuner can demodulate the
  4154. television radio frequency signal and extract the NTSC, PAL, or
  4155. SECAM composite analog signal.   Television sets, Video
  4156. Casette Recorders (VCR) and cable television set top boxes contain a tuner.
  4157.  
  4158. The easy way to turn your favorite television show into an
  4159. AVI is to record the show to a videotape using a VCR.  The VCR
  4160. can output the composite analog video signal to a video
  4161. capture card in your PC (see the section on creating AVI from
  4162. composite analog video).
  4163.  
  4164. A number of companies market TV tuner cards for PC's.  In this
  4165. case you can feed the television radio frequency (RF) signal
  4166. into the TV tuner card which will demodulate the NTSC, PAL, or
  4167. SECAM signal.  Use an associated video capture card to convert
  4168. the demodulated composite analog video to an AVI files.
  4169.  
  4170. ATI Technologies, for example, markets a PC TV Tuner.
  4171.  
  4172. It is probably simpler to use a VCR than a PC TV Tuner card.
  4173. A VCR circumvents the often painful installation problems
  4174. with PC hardware.
  4175.  
  4176. <A HREF="#Top">Return to Top</A>
  4177.  
  4178. <A NAME="Win95">
  4179. <H2>Reinstalling Microsoft's Video for Windows in Windows 95</H2>
  4180. </A>
  4181.  
  4182. This requires the Windows 95 CD-ROM.  One can either reinstall
  4183. Windows 95 (probably not what you want to do) or manually remove
  4184. Video for Windows and manually reinstall the files that make up
  4185. Video for Windows under Windows 95.
  4186.  
  4187. Truevision's Technical Support has a good note on how to do this.
  4188. Although it does not appear to be copyrighted, I felt uncomfortable
  4189. cutting and pasting it into the AVI Overview.  The URL is
  4190.  
  4191. <A HREF="http://www.truevision.com/Support/vfwwin95.html">http://www.truevision.com/Support/vfwwin95.html</A>
  4192.  
  4193. <A HREF="#Top">Return to Top</A>
  4194.  
  4195. <A NAME="GETAM">
  4196. <H2>How to get Microsoft ActiveMovie 1.0</H2>
  4197. </A>
  4198.  
  4199. ActiveMovie is Microsoft's successor to Video for Windows.
  4200. ActiveMovie 1.0 is shipped with OEM Service Release 2 of Windows 95.
  4201. ActiveMovie 1.0 is also bundled with Microsoft Internet Explorer for
  4202. Windows 95 and Windows NT 4.0.  ActiveMovie 1.0 is available for Windows
  4203. 95 and Windows NT.
  4204.  
  4205. ActiveMovie 1.0 plays AVI, QuickTime, and MPEG files.  
  4206.  
  4207. IF YOU DON'T HAVE OEM SERVICE RELEASE 2 of 95!
  4208.  
  4209. ActiveMovie 1.0 is incorporated in Internet Explorer.  A full
  4210. install of Internet Explorer can be downloaded from Microsoft's
  4211. web site.  Microsoft also provides a free download of just
  4212. ActiveMovie 1.0.  Both can be downloaded from the Microsoft
  4213. Internet Explorer web site as described below:
  4214.  
  4215. <A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>
  4216.  
  4217. Click on Internet Explorer for 95 and NT 4.0 link to get to the
  4218. download area.  There is a pulldown list of products. (6/6/97).
  4219. Select "Active Movie 1.0 for Windows 95 and NT 4.0" to get just
  4220. ActiveMovie 1.0
  4221.  
  4222. Click the "Next" button.
  4223.  
  4224. This brings up a page to select the language from another pulldown
  4225. list.  Pick your language (e.g. U.S. English).
  4226.  
  4227. Click the "Next" button.
  4228.  
  4229. This brings up a list of links to download sites for amov4ie.exe
  4230.  
  4231. Dowload this executable and run.  It installs Active Movie 1.0
  4232.  
  4233. <A HREF="#Top">Return to Top</A>
  4234.  
  4235. <A NAME="NT40">
  4236. <H2>Installing and Configuring AVI Codecs in NT 4.0</H2>
  4237. </A>
  4238.  
  4239. The Microsoft Windows NT 4.0 applications and operating systems
  4240. are configured through the NT Registry, which is similar to the
  4241. Windows 95 Registry.  Although Windows NT 4.0 and Windows 95 share
  4242. a desktop user interface, there are some significant differences
  4243. between the NT 4.0 Registry and the Windows 95 Registry.
  4244.  
  4245. In NT 4.0, the 32 bit video codecs do not appear to be listed
  4246. in a [drivers32] section in the SYTEM.INI file.  This differs from
  4247. Windows 95.  The Video for Windows configuration information appears
  4248. to be stored almost exclusively in the NT Registry in NT 4.0.
  4249.  
  4250. The NT Registry can be viewed and modified through the Control
  4251. Panel or through the REGEDT32 Registry Editor.  Use the Control
  4252. Panel unless you really know what you are doing.
  4253.  
  4254. You can view and change which audio and video codecs are installed
  4255. through the Multimedia icon in the Windows NT 4.0 Control Panel (in My
  4256. Computer).  This works much the same as the Multimedia icon in the
  4257. Windows 95 Control Panel (in My Computer).  
  4258.  
  4259. Double click on the Multimedia icon to launch the Multimedia applet.
  4260. Select the Devices tab within the Multimedia applet.  This tab gives a
  4261. list of installed multimedia drivers including hardware device
  4262. drivers, MCI drivers, and audio and video codecs.  It includes two
  4263. sections:
  4264.  
  4265. (cute icon)Video Compression Codecs
  4266. (cute icon)Audio Compression Codecs
  4267.  
  4268. Double-click on these to view the installed audio and video codecs.
  4269.  
  4270. There are buttons to Add.. or Remove... multimedia devices
  4271. including the audio and video codecs.  
  4272.  
  4273. To Add a video codec, click the Add... button.  This gives an Add
  4274. dialog box with a List of Drivers.  You may select from a list of
  4275. drivers that the system knows about, such as "Cinepak", or select
  4276. "Unlisted or Updated Driver".  If you need to use "Unlisted or Updated
  4277. Driver" you will need a directory on a floppy disk, CD-ROM, or your
  4278. hard drive containing the needed drivers and an INF (Setup Information
  4279. ) file.  Depending on what you are doing, the needed directory may be
  4280. on a floppy provided with a product, on the Windows NT installation
  4281. CD-ROM, or constructed manually by you or someone else.  The INF file
  4282. provides directives for installing the driver including changes to the
  4283. Registry.  Windows read the INF file and follows the directives.
  4284.  
  4285. You may need a different (NT specific) INF file to install under
  4286. Windows NT 4.0 than Windows 95.
  4287.  
  4288. The 32 bit video codecs are installed in the \WINNT\SYSTEM32
  4289. directory used for 32 bit drivers, analogous to the \WINDOWS\SYSTEM
  4290. directory in Windows 3.x
  4291.  
  4292. NOTE: Using the Remove... button to remove a codec does not
  4293. remove the codec files from the hard drive.  Nor does the
  4294. codec disappear from the list of codecs displayed when
  4295. Add... is selected.  Remove... appears to simply disable
  4296. the video codec so that it is not invoked.  Use Add... to
  4297. enable the codec after Remove...
  4298.  
  4299. The other option to install a codec is to use an installation 
  4300. program that will appropriately update the NT Registry and copy
  4301. the needed files to the correct directories in the NT file 
  4302. system (such as \WINNT\SYSTEM32).  In many cases, you can get
  4303. an install program from a Web site or other convenient source.
  4304. In this case, you do not need to use the NT Control Panel.  The
  4305. install program does all of the work.
  4306.  
  4307. NT 4.0 appears to be able to use the same 32 bit video codecs as
  4308. Windows 95, for example Cinepak for Windows 32.  Keep in mind that
  4309. device drivers for hardware are different between Windows 95 (which
  4310. uses VxD's) and NT 4.0.  Only some parts of Windows 95 and NT 4.0 can
  4311. use the same code.
  4312.  
  4313. <A HREF="#Top">Return to Top</A>
  4314.  
  4315. <A NAME="FPS">
  4316. <H2>How to change frame rate of AVI files</H2>
  4317. </A>
  4318.  
  4319. You may want to change the frame rate of an AVI.  For example, you
  4320. may want to convert a video captured at 30 frames per second (NTSC)
  4321. to 15 or 10 frames per second to reduce the size of the file.  This
  4322. type of conversion throws away frames; it does not play the AVI in
  4323. slow motion.
  4324.  
  4325. Video editors usually contain this function.
  4326.  
  4327. For example, the free VidEdit video editor can convert the frame rate
  4328. of AVI files.  
  4329.  
  4330. Select
  4331.  
  4332. Video | Convert Frame Rate ...
  4333.  
  4334. in VidEdit
  4335.  
  4336. For more on video editors, see <A HREF="#Edit">Video Editors</A>
  4337.  
  4338. <A HREF="#Top">Return to Top</A>
  4339.  
  4340. <A NAME="Edit">
  4341. <H2>How to edit AVI files:</H2>
  4342. </A>
  4343.  
  4344. Several applications exist to edit (cut, paste, etc.) AVI files.
  4345. Such applications are known as video editors.  Sometimes such
  4346. digital video editors are called non-linear editors, in contrast to
  4347. traditional videotape or film based editing.
  4348.  
  4349. Video editors range from very simple applications to very sophisticated
  4350. applications.
  4351.  
  4352. <H3>Video Editor Features</H3>
  4353.  
  4354. Common video editor features include:
  4355.  
  4356.     * cut, paste, and deleting video sequences
  4357.         * selecting video codec and compression settings
  4358.         * selecting audio codec and compression settings
  4359.         * converting video frame rate
  4360.         * converting audio sampling rate
  4361.         * adjusting synchronization of audio and video 
  4362.         * converting color depth of video (24, 16, or 8 bit usually)
  4363.         * converting to NTSC or PAL safe colors
  4364.         * adding transitions and other special effects
  4365.         * applying image processing filters to video
  4366.         * adding text and subtitling
  4367.         * much more in high end video editors....
  4368.  
  4369. <H3>VidEdit</H3>
  4370.  
  4371. The full 16 bit (Windows 3.x) Video for Windows from Microsoft (not
  4372. the "Run Time") shipped with a simple video editing program VidEdit.
  4373. VidEdit can cut, paste, concatenate, add sound, and do many other
  4374. things to AVI files.  VidEdit can be downloaded from a number of
  4375. sites on the Internet.
  4376.  
  4377. WARNING: While VidEdit, a 16 bit Windows application, works under
  4378. Windows NT and Windows 95, I found that it cannot see the Video for
  4379. Windows codecs distributed with Microsoft NetShow 2.0 (such as the
  4380. Microsoft MPEG-4 codec, Vivo H.263, etc.).  Other editors such as
  4381. Asymetrix Digital Video Producer (DVP) CAN see these compressors.
  4382.  
  4383. By "see", I mean that none of the NetShow specific codecs is in the
  4384. list of codecs under Video | Compression Options... in VidEdit.
  4385. This means that you cannot create an AVI using the NetShow codecs from
  4386. within VidEdit; you need to use another video editor.
  4387.  
  4388. VidEdit does recognize the following 32 bit Video for Windows codecs:
  4389.  
  4390.      Intel Indeo (R) Video Interactive [32]
  4391.      Intel Indeo (R) Video R3.2 [32]
  4392.      Intel Indeo Raw R1.2 [32]
  4393.      Microsoft Video 1 [32]
  4394.      Cinepak Codec by Radius [32]
  4395.      Indeo video 5.0 [32]
  4396.  
  4397.  
  4398. As far as I can tell Microsoft is not currently distributing VidEdit.
  4399. However, a file winvid.zip is bouncing around the Net.  This file
  4400. includes the Video for Windows run time along with a number of Video Tools
  4401. including VidEdit and VidCap (Microsoft's video capture tool).
  4402.  
  4403. Disclaimer: I am not certain what the legal restrictions on 
  4404. VidEdit or winvid.zip are.
  4405.  
  4406. <H4>Greg Hughes Home Page </H4>
  4407.  
  4408. winvid.zip is available from Greg Hughes home page:
  4409.  
  4410. <A HREF="http://www.public.iastate.edu/~gregngng/">http://www.public.iastate.edu/~gregngng/</A>
  4411.  
  4412. Note that I found this site hard to connect to although I was eventually able
  4413. to download winvid.zip
  4414.  
  4415. <H4>EarthStation 1 Archive of Windows Freeware and Shareware</H4>
  4416.  
  4417. Microsoft's VidEdit Video Editor is also available at:
  4418.  
  4419. EarthStation1: Recommended Shareware and Freeware Page
  4420.  
  4421. <A HREF="http://www.attention.net/wandarer/software.html">http://www.attention.net/wandarer/software.html</A>
  4422.  
  4423. The preceding link now contains links to mirror sites for the EarthStation 1
  4424. archive.  
  4425.  
  4426. The LaJolla Earthstation 1 mirror site is:
  4427.  
  4428. <A HREF="http://earthstation1.simplenet.com/software.html">http://earthstation1.simplenet.com/software.com</A>
  4429.  
  4430. Once you have reached the EarthStation 1 page, click on the Graphics 
  4431. link to jump to the Graphics Editors section.  VidEdit is in this
  4432. section.  Scroll down a few pages to find VidEdit or use the find string
  4433. on this page feature of your Web browser.
  4434.  
  4435. Click to download VidEdit.
  4436.  
  4437. <H4>Alchemedia Inc. Shareware Page</H4>
  4438.  
  4439. The Alchemedia Inc. shareware page contains a file videdit.zip with
  4440. VidEdit.
  4441.  
  4442. <A HREF="http://www.alchemediainc.com/sharewar.html">http://www.alchemediainc.com/sharewar.html</A>
  4443.  
  4444. <H3>Personal AVI Editor</H3>
  4445.  
  4446. FlickerFree markets an inexpensive/shareware avi editor for
  4447. Windows called Personal AVI Editor.
  4448.  
  4449. Personal AVI Editor ($49.95 + Shipping and Handling)
  4450. <A HREF="http://www.flickerfree.com/index.html">http://www.flickerfree.com/index.html</A>
  4451.  
  4452.  
  4453. <H3>Corel Lumiere Suite for 32-bit Windows</H3>
  4454.  
  4455. Lumiere is a new contestant in the PC video editing game. (May, 1997)
  4456.  
  4457. Corel Lumiere Suite for 32-bit Windows
  4458. List Price on Corel Web Site: $89 (US)
  4459.  
  4460. Corel Corp.
  4461. Ottawa, Ontario, Canada
  4462. (800) 772-6735
  4463. (613) 723-3733
  4464. FAX: (613) 728-9790
  4465. <A HREF="http://www.corel.com/">http://www.corel.com/</A>
  4466.  
  4467. <A HREF="http://www.corel.com/products/lumiere/index.htm">Corel's Lumiere Web Page</A>
  4468.  
  4469. <H3>Ulead Media Studio Pro</H3>
  4470.  
  4471. Ulead's Media Studio Pro ( around $300 )
  4472. <A HREF="http://www.ulead.com/">http://www.ulead.com/</A>
  4473.  
  4474. <H3>Asymetrix Digital Video Producer</H3>
  4475.  
  4476. Asymetrix's Digital Video Producer (DVP)
  4477.  
  4478. Typical Retail Price: $69.95 (Sept. 1997)
  4479.  
  4480. A simple digital video capture and editing program for Windows 95 and
  4481. Windows NT.  DVP is bundled with many video capture cards and is
  4482. also available retail.  More information is available at the Asymetrix
  4483. Web site.
  4484.  
  4485. <A HREF="http://www.asymetrix.com/">http://www.asymetrix.com/</A>
  4486.  
  4487. <H3>Adobe Premiere</H3>
  4488.  
  4489. Adobe Premiere is the reigning king of desktop video editing
  4490. programs.  Versions exist for both the PC/Windows and the
  4491. Macintosh.  
  4492.  
  4493. Adobe Systems Premiere ( around $500 )
  4494. <A HREF="http://www.adobe.com/">http://www.adobe.com/</A>
  4495.  
  4496. <H3>SpeedRazor</H3>
  4497.  
  4498. in:sync produces SpeedRazor Mach 3.51 (5/16/97), a professional
  4499. non-linear editing (NLE) video editor for Windows NT for the
  4500. Broadcast industry.  This can handle AVI as well as other formats.
  4501.  
  4502. Speed Razor (not cheap)
  4503. <A HREF="http://www.in-sync.com/">http://www.in-sync.com/</A>
  4504.  
  4505. <A HREF="#Top">Return to Top</A>
  4506.  
  4507. <A NAME="Wave">
  4508. <H2>Editing and Converting WAV files</H2>
  4509. </A>
  4510.  
  4511. AVI and WAV files are closely related.  WAV files are the sound file
  4512. format, and frequently provide the source for the sound tracks in an
  4513. AVI file.  
  4514.  
  4515. <H3>CoolEdit (PC) </H3>
  4516.  
  4517. A good shareware sound editor and sound file format converter is
  4518. Syntrillium Software's CoolEdit (Cool96) for Windows 3.1 and Windows
  4519. 95.  This supports many common sound file formats such as Apple's
  4520. .aiff and Next/Sun .au files.
  4521.  
  4522. <A HREF="http://www.syntrillium.com/10/index.htm">http://www.syntrillium.com/10/index.htm</A>
  4523.  
  4524. <H3>Macromedia's SoundEdit16 (Macintosh)</H3>
  4525.  
  4526. Macromedia markets a sound editor for the Macintosh called
  4527. SoundEdit16 + Deck II.  SoundEdit can open and save in WAV
  4528. format.  For further information on SoundEdit, see the
  4529. Macromedia Web site:
  4530.  
  4531. <A HREF="http://www.macromedia.com/">http://www.macromedia.com/</A>
  4532.  
  4533. <H3>Sound Forge</H3>
  4534.  
  4535. Sonic Foundry markets a digital sound editor for Windows called
  4536. Sound Forge 4.0 (5/16/97)  Sound Forge includes support for importing
  4537. AVI video and editing the sound to synchronize with specific frames in
  4538. the AVI file.
  4539.  
  4540. <A HREF="http://www.dg.co.il/Forge/forge.htm">http://www.dg.co.il/Forge/forge.htm</A>
  4541.  
  4542. <H3>SpeedRazor (Windows NT 3.51 and 4.0) </H3>
  4543.  
  4544. in:sync produces SpeedRazor Mach 3.51 (5/16/97), a professional
  4545. non-linear editing (NLE) video editor for Windows NT for the
  4546. Broadcast industry.  SpeedRazor can read and write WAV audio files.
  4547. It has sophisticated multi-track stereo audio editing and mixing
  4548. features.
  4549.  
  4550. Speed Razor (not cheap)
  4551. <A HREF="http://www.in-sync.com/">http://www.in-sync.com/</A>
  4552.  
  4553. <A HREF="#Top">Return to Top</A>
  4554.  
  4555. <A NAME="Output">
  4556. <H2>How to output an AVI file to videotape:</H2>
  4557. </A>
  4558.  
  4559. AVI files generated with a video editor such as Premiere or a 3D
  4560. Animation program such as Caligari TrueSpace can be output to
  4561. videotape (e.g. a VHS tape) using a hardware device known as a scan
  4562. converter.  A scan converter converts the VGA signal intended for
  4563. the computer monitor into an video signal, typically NTSC or S-Video.
  4564. The video signal can then be input into a videotape recorder such as a
  4565. VHS VCR.
  4566.  
  4567. A scan converter may be a small box which resides between the computer
  4568. and the monitor.  It may be integrated into a video card.  For example, ATI's
  4569. new 3D XPRESSION+PC2TV video card includes NTSC and S-Video output as well
  4570. as output to a conventional computer monitor.
  4571.  
  4572. Configure the PC graphics in one of the modes supported by the scan conversion
  4573. hardware and play the AVI file in full screen mode.
  4574.  
  4575. Some manufacturers of scan converter (or similar) hardware:
  4576.  
  4577. <A HREF="http://www.atitech.com/">ATI Web Page</A>
  4578.  
  4579. <A HREF="http://www.videologic.com/">VideoLogic Web Page</A>
  4580.  
  4581. PC Video Conversion claims to make a high quality scan converter
  4582. called HyperConverter that converts from SuperVGA to broadcast quality
  4583. NTSC/PAL video.  Less than $5000.
  4584.  
  4585. <A HREF="http://www.pcvideo.com/">PC Video Conversion</A>
  4586.  
  4587. <A HREF="#Top">Return to Top</A>
  4588.  
  4589. <A NAME="VideoChips">
  4590. <H2>PC Video Chips and Cards</H2>
  4591.  
  4592. The current (6/21/97) generation of graphics controllers for PC's
  4593. incorporate a number of hardware features to improve playback of
  4594. video, including AVI.  Video acceleration features have become
  4595. standard in most chips.  As a consequence video chip and card
  4596. marketing has increasingly emphasized 3D graphics acceleration
  4597. features in an effort to differentiate chips and cards from different
  4598. manufacturers.  These video acceleration features include hardware
  4599. color space conversion and hardware scaling of video.
  4600.  
  4601. <H3>Color Space Conversion</H3>
  4602.  
  4603. Many video standards such as Indeo, CinePak, and MPEG operate in
  4604. a luminance - chrominance color space such as YUV, YCbCr, etc.  Computer
  4605. monitors use RGB (Red/Green/Blue).  The decoded video signals must
  4606. be converted from YUV to RGB for display.  Most video chips now provide
  4607. dedicated hardware for this color space conversion.  
  4608.  
  4609. <H3>Hardware Scaling</H3>
  4610.  
  4611. Displaying a video in a windows larger (or smaller) than the encoded
  4612. aspect ratio involves duplication of pixels.  Complex filtering
  4613. operations can reduce or remove blocking artifacts when a video is
  4614. scaled up in size.  If scaling is performed in software using the
  4615. PC's CPU, the scaling will absorb many CPU cycles, possibly resulting
  4616. in degraded video playback depending on the speed of the CPU.  Most
  4617. video chips now provide dedicated hardware for scaling video.
  4618.  
  4619. <H3>Video Cards</H3>
  4620.  
  4621. PC video cards are printed circuit boards.  Today (6/23/97), virtually
  4622. all video cards are PCI cards, with a PCI bus connector along one side
  4623. of the circuit board.  The video card will have at least a DB-15
  4624. connector for the VGA cable to the computer monitor.  Video cards have
  4625. a chip variously known as a graphics controller, graphics accelerator,
  4626. video chip, video controller, or something similar.  The graphic
  4627. controller is the heart and the brain of the video card.  
  4628.  
  4629. The card has one or more memory chips forming the video memory where
  4630. the images are stored.  The video memory is known as a framebuffer.
  4631. Video cards have a RAMDAC (Random Access Memory Digital to Analog
  4632. Converter) which convertes the digital image stored in the framebuffer
  4633. into an analog signal for the RGB monitor.  PC video cards have a ROM
  4634. (Read Only Memory) with the VGA BIOS used during the PC boot process.
  4635. There is also a clock that provides the timing signals for the entire
  4636. board.
  4637.  
  4638. Many video cards have a feature connector allowing an
  4639. auxiliary card to be added to the main video card.  The auxiliary
  4640. card adds additional features such as hardware MPEG decoding.  
  4641.  
  4642. Although AVI should be independent of the video chips and cards used in
  4643. a PC, there can sometimes be problems or technical issues specific
  4644. to a particular chip.  By far the most common PROBLEM is a subtle
  4645. bug in a video chip driver or a subtle conflict between a video
  4646. chip driver and another driver or piece of software on the PC.  Downloading
  4647. and installing the latest video driver from the chip or card maker's
  4648. Web site is a frequently successful fix for these problems.
  4649.  
  4650. ALSO, Windows 3.x and Windows 95 use different Device Drivers than
  4651. Windows NT 3.51 or Windows NT 4.0  Windows 3.x and 95 use Device
  4652. Drivers known as VxD's for low-level hardware access.  NT uses its
  4653. own device drivers.  If you use a video card or other hardware
  4654. on an NT machine, you need to be sure to use the NT drivers!
  4655.  
  4656. A number of video card companies such as Diamond Multimedia and
  4657. STB that buy or license the controller chips from other companies such
  4658. as S3 frequently write video card/chip device drivers with additional
  4659. features or better quality than the device drivers provided by the
  4660. chip company.
  4661.  
  4662. Links to video chip and video card makers follow:
  4663.  
  4664. <A HREF="http://www.atitech.com/">ATI Technologies</A>
  4665.  
  4666. <A HREF="http://www.diamondmm.com/">Diamond Multimedia</A>
  4667.  
  4668. <A HREF="http://www.stb.com/">STB Systems Inc.</A>
  4669.  
  4670. <A HREF="http://www.s3.com/">S3 Incorporated</A>
  4671.  
  4672. <A HREF="http://www.tseng.com/">Tseng Laboratories</A>
  4673.  
  4674. <A HREF="http://www.trid.com/">Trident Microsystems</A>
  4675.  
  4676. <A HREF="http://www.matrox.com/">Matrox</A>
  4677.  
  4678. <A HREF="http://www.nine.com/">Number Nine</A>
  4679.  
  4680. <A HREF="http://www.cirrus.com/">Cirrus Logic</A>
  4681.  
  4682. <A HREF="http://www.rendition.com/">Rendition</A>
  4683.  
  4684. <A HREF="http://www.nvidia.com/">nVidia</A>
  4685.  
  4686. <A HREF="http://www.3dfx.com/">3dFX</A>
  4687.  
  4688. <A HREF="http://www.3dlabs.com/">3dLabs</A>
  4689.  
  4690. A fairly comprehensive list of video chipsets, video cards, and
  4691. miscellaneous other information may be found at:
  4692.  
  4693. <A 
  4694. HREF="http://www.heartlab.rri.uwo.ca/vidfaq/chipset.txt">http://www.heartlab.rri.uwo.ca/vidfaq/chipset.tx
  4695. t</A>
  4696.  
  4697. <A NAME="NTVideo">
  4698. <H3>Video (Display) Cards with Windows NT Drivers</H3>
  4699. </A>
  4700.  
  4701. Unfortunately, Windows 95 and Windows NT use different
  4702. device drivers for the same hardware.  While Windows 95
  4703. drivers are available for the vast majority of PC hardware, Windows
  4704. NT drivers are harder to come by.  Video cards with
  4705. NT drivers are listed below:
  4706.  
  4707. Number Nine Revolution 3D  (Windows NT 4.0 Drivers)
  4708. <A HREF="http://www.nine.com/">http://www.nine.com/</A>
  4709.  
  4710.  
  4711. <A HREF="#Top">Return to Top</A>
  4712.  
  4713.  
  4714. <A NAME="ToNTSC">
  4715. <H2>How to make AVI NTSC (or PAL) Safe</H2>
  4716. </A>
  4717.  
  4718. AVI files can represent colors that are not supported by the NTSC or
  4719. PAL analog video standards.  These colors correspond to
  4720. synchronization and control signals in the NTSC or PAL video.  Such
  4721. AVI files cause problems if translated to NTSC or PAL video.
  4722.  
  4723. Equilibrium's DeBabelizer Pro for Windows 95 and NT 4.0 reads and
  4724. writes about 90 common and not so common image file formats as well
  4725. as AVI files.  In addition to translating between all of these formats,
  4726. DeBabelizer Pro has a number of image processing functions.
  4727.  
  4728. DeBabelizer Pro can remove colors from AVI files that are excluded by
  4729. NTSC or PAL to create an NTSC or PAL safe AVI file.
  4730.  
  4731. Equilibrium has a demonstration version of DeBabelizer Pro on its
  4732. Web site.  This is a demonstration version.  The demonstration version
  4733. adds the words Equilibrium (very large words) to all images and video that
  4734. it processes.
  4735.  
  4736. DeBabelizer Pro ($595 Suggested Retail Price)
  4737. Equilibrium
  4738. 475 Gate Five Road, Suite 225
  4739. Sausalito, CA  94965
  4740. 1(800)524-8651 or (415) 332-4343
  4741.  
  4742. <A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>
  4743.  
  4744. <A HREF="#Top">Return to Top</A>
  4745.  
  4746. <A NAME="BinEd">
  4747. <H2>Binary File Editors for Viewing and Editing AVI Files</H2>
  4748. </A>
  4749.  
  4750. Occasionally, you may need to view or edit an AVI file at the
  4751. down and dirty byte level.  Use a binary file editor for this.
  4752.  
  4753. Many binary file editors, including quite a number of free
  4754. ones, exist.
  4755.  
  4756. <H3>HexEdit</H3>
  4757.  
  4758. Harmony Systems offers HexEdit, a free binary editor for Windows NT
  4759. and 95, that can be downloaded from their web site:
  4760.  
  4761. <A HREF="http://www.hsys.com/hex.htm">http://www.hsys.com/hex.htm</A>
  4762.  
  4763. <H3>SimTel Archives</H3>
  4764.  
  4765. The SimTel collection of ms-dos software includes a section with
  4766. many binary file editors.  There are many mirrors of the SimTel
  4767. site.  One is:
  4768.  
  4769. <A HREF="http://oak.oakland.edu/simtel.net/msdos/binaryed.html">http://oak.oakland.edu/simtel.net/msdos/binaryed.html</A>
  4770.  
  4771. <H3>HEdit 2.1</H3>
  4772.  
  4773. Trial versions of HEdit, a binary file editor, both for Windows 95/NT and
  4774. Windows 3.1 are available at:
  4775.  
  4776. <A HREF="http://www.yurisw.com/hedit/">http://www.yurisw.com/hedit/</A>
  4777.  
  4778. <H3>GNU Emacs (Unix)</H3>
  4779.  
  4780. The GNU Emacs editor from the Free Software Foundation has a hexadecimal
  4781. mode.  The GNU Emacs command to invoke this mode is hexl-mode.
  4782.  
  4783. In GNU Emacs, type the META Key (ESC-x)
  4784.  
  4785. Type: hexl-mode at the command prompt.
  4786.  
  4787. The current buffer will switch into (Hexl) mode.  
  4788.  
  4789. On my Unix system (Sun), I found the Hexl mode a little sluggish
  4790. at times.  Sometimes I had to wait several seconds to get a response
  4791. to scrolling or jumping to the start of the AVI file.  Emacs modes
  4792. are usually implemented in interpreted LISP; this may be the reason.
  4793.  
  4794.  
  4795. <A HREF="#Top">Return to Top</A>
  4796.  
  4797. <A NAME="Style">
  4798. <H2>Effective Use of Video on a Web Page</H2>
  4799. </A>
  4800.  
  4801. The limited bandwidth of the Internet is the bane of effective
  4802. use of video on a Web page.  Video clips on a web page need to
  4803. be small.  Even then downloading a video clip can take several
  4804. minutes, hours over a 28.8 modem to someone's home.  The longer
  4805. the wait, the better the video should be!
  4806.  
  4807. FIRST AND FOREMOST, tell a story!!!  A video clip without a
  4808. story is usually boring.  A story can be told in 30
  4809. seconds, the duration of many television advertisements.  Some
  4810. stories can be told in less time.  Because of the bandwidth
  4811. limitations of the Internet, even 30 seconds is a big file, several
  4812. megabytes.
  4813.  
  4814. Characters, human personalities, sell.  Sex sells.  Violence
  4815. sells.  Talking heads (your company's CEO saying "Welcome to our
  4816. great Website") tend to be boring.
  4817.  
  4818. USE AUDIO!  Sound makes a world of difference.  Use base, lower
  4819. frequencies in the soundtrack.  Human beings are more sensitive to
  4820. low frequency sound.   A soundtrack with more base tends to sound "better" to
  4821. most people.  Most computer speakers are very cheap and don't
  4822. reproduce high frequencies well anyway.  You will likely cheat
  4823. on higher frequencies to reduce bandwidth use by the audio as well.
  4824.  
  4825. TECHNICAL ISSUES
  4826.  
  4827. For widest distribution and ease of viewing:
  4828.  
  4829. Provide video clips as AVI using the CinePak codec.  For maximum
  4830. distribution, also provide flattened QuickTime files again using
  4831. the CinePak codec; these can be played on both PC's with QuickTime
  4832. for Windows and on Macs.  Provide MPEG-1 clips as well.  
  4833.  
  4834. Give the size of the video file in KBytes or MBytes in text as part of
  4835. the link to the video file.  This way the viewer can estimate how long
  4836. it will take to download the file if they wish to.
  4837.  
  4838. If you use less standard codecs or file formats to get smaller file
  4839. sizes, provide links to download the needed viewers or codecs.
  4840. Provide the AVI's with less standard codecs (e.g. VDOWave from VDONet)
  4841. in addition to CinePak versions.  Don't omit the CinePak versions.
  4842.  
  4843. Video encoded at less than 15 frames per second usually looks very
  4844. jerky to human viewers, like a slide show rather than smooth motion.
  4845. The transition to smooth motion occurs somewhere in the range
  4846. 15-17 frames per second.  If motion is limited, frame rates below
  4847. 15 may look acceptable, although often not.
  4848.  
  4849. Image resolutions should be 320x240 or larger.  In some cases, smaller
  4850. sizes such as 160x120 may work.  In general, most viewers find sizes
  4851. smaller than 320x240 too small.
  4852.  
  4853. DO NOT COMPRESS the video so much that unnatural artifacts such as
  4854. blocking occur.  In general loss of fine details appears natural
  4855. to human viewers.  This corresponds to changes in natural viewing
  4856. conditions such as viewing an object at a distance or in poor lighting.
  4857. Unnatural artifacts such as visible 4x4 pixel blocks or 8x8 pixel
  4858. blocks jump out at most viewers and destroy the illusion of a natural
  4859. image.  
  4860.  
  4861. For AVI, sound codecs aren't very standard.  Avoid using audio compression,
  4862. especially more exotic codecs.  ADPCM may be ok.  Again, if you use
  4863. an audio codec, make sure to include a link on your website to 
  4864. download the codec.  If possible, provide a version of the AVI without
  4865. special audio codecs (and CinePak video).
  4866.  
  4867. Uncompressed audio takes space.  You ALMOST NEVER need to use the
  4868. 44 KHz sampling rate.  At most, use 22 KHz sample rate.  Many people
  4869. cannot hear the frequencies above 22 KHz.  People who can are
  4870. not very sensitive to these frequencies.  
  4871.  
  4872. See if the soundtrack works ok at 11 KHz 8 bit Mono (not Stereo).
  4873. Use this low quality setting if you can get away with it (often this
  4874. won't work).
  4875.  
  4876. NOTE: You can select audio and video codecs, convert the frame rate,
  4877. convert the audio sampling rate, and resize the video using video
  4878. editor applications such as Adobe Premiere or VidEdit.  See the
  4879. section on video editors:
  4880.  
  4881. <A HREF="#Edit">Video Editors</A>
  4882.  
  4883. TO REPEAT:
  4884.  
  4885. TELL A STORY!!!  Many video clips in current (7/20/97) use on Web
  4886. sites are very short, a few seconds, and really don't tell a story.
  4887. These clips are boring!  So are most talking heads (I have one on
  4888. my Web site and it IS boring).  Movie trailers, short television
  4889. advertisements, etc. illustrate what is needed.  If you don't have
  4890. a story, think seriously about dropping the video.  
  4891.  
  4892. See elsewhere in this overview for information on authoring AVI files 
  4893. and converting to QuickTime and MPEG-1.
  4894.  
  4895. <A HREF="#Top">Return to Top</A>
  4896.  
  4897. <A NAME="Web">
  4898. <H2>How to embed an AVI file in a Web Page:</H2>
  4899. </A>
  4900.  
  4901. <H3>A Simple Hypertext Link</H3>
  4902.  
  4903. The simplest approach is to use the anchor tag 
  4904.  
  4905. < A HREF="http://www.somplace.com/movie.avi" > A Movie </A>
  4906.  
  4907.  
  4908. In this instance, clicking on the link will cause the AVI file
  4909. to be downloaded.  The browser recognizes that the AVI file is
  4910. not an HTML document.  Typically, the browser invokes a helper
  4911. application that can play the AVI file, such as Media Player under
  4912. Windows 3.1.  The movie will appear in a separate window.  The browser
  4913. may have a plug-in that provides support for AVI, in which case the
  4914. video window will appear embedded in the HTML page.
  4915.  
  4916. Web browsers such as Netscape and Internet Explorer know how to handle
  4917. a file through a Content (MIME) type reported by the Web server.  For
  4918. example, the MIME type for AVI files is video/avi.  The browser may
  4919. contain a built-in decoder for this MIME type.  For example, JPEG and
  4920. GIF still image compression decoding and viewing is built into
  4921. Internet Explorer and Netscape.  The browser can be configured to
  4922. invoke a helper application such as Media Player.  Helper applications
  4923. are invoked as separate applications with their own windows.  
  4924.  
  4925. The browser can be configured to use a "plug-in" instead of a helper
  4926. application.  A "plug-in" is a software component that extends the
  4927. capabilities of the browser.  The "plug-in" handles input and presents
  4928. output embedded within the page.  For example, a video plug-in's
  4929. decoded video appears within the page, not as a floating window.  
  4930.  
  4931. In the case of a simple hypertext link, a browser with an AVI
  4932. plugin will jump to a blank page with the AVI video appearing in 
  4933. a rectangle in the upper left corner of the blank page.  The video
  4934. is not embedded in the page with the hypertext link.  It is
  4935. necessary to use the Netscape EMBED HTML tag (see below) to produce a video
  4936. embedded in the page.  Using the EMBED tag is different from using
  4937. a simple anchor A tag (hyptertext link).
  4938.  
  4939. If the browser is unable to handle a MIME type (no built-in capability
  4940. exists and no helper application or plug-in is specified), the browser
  4941. will present a dialog box asking the user to select an application,
  4942. save the file to disk, or cancel the operation.
  4943.  
  4944. In both Internet Explorer and Netscape, the user can configure the browser
  4945. to use helper applications or plug-ins as desired.  
  4946.  
  4947. Netscape now provides a Netscape plug-in known as LiveVideo to play
  4948. AVI files.  This plug-in should be installed in the \NETSCAPE\PLUGINS
  4949. directory.  For the Windows 3.1 (16 bit) version of Netscape this
  4950. plug-in is named NPAVI16.DLL.
  4951.  
  4952. Digigami provides a plug-in for Netscape Navigator (Windows) called
  4953. CineWeb that adds playback of AVI, QuickTime .MOV, and MPEG files.
  4954. The URL is:
  4955.  
  4956. <A HREF="http://www.digigami.com/CineWebPress.html">http://www.digigami.com/CineWebPress.html</A>
  4957.  
  4958. <H3>Microsoft Internet Explorer HTML Syntax</H3>
  4959.  
  4960. Microsoft's Internet Explorer 2.0 added attributes to the IMG tag that
  4961. allow for inline video (an AVI file actually embedded in the page
  4962. rendered by the Web browser).  These are the DYNSRC, CONTROLS, START, and
  4963. LOOP attributes.  For example,
  4964.  
  4965. < IMG DYNSRC="movies/movie.avi" CONTROLS SRC="movies/movie.gif" >
  4966.  
  4967.  
  4968. This will embed the movie in the page with some simple playback controls
  4969. for the user to select.  Browsers that do not support the DYNSRC attribute
  4970. will use the SRC attribute and display the image movie.gif instead.
  4971. Internet Explorer will ignore the SRC attribute.
  4972.  
  4973. In the Microsoft spirit of a new API every week, Microsoft has added
  4974. some new tags in Internet Explorer 3.0 and is discouraging use of the
  4975. IMG tag and DYNSRC attribute.
  4976.  
  4977. In Internet Explorer 3.0, Microsoft has added support for the Netscape
  4978. EMBED tag, see the section on HTML for Netscape's LiveVideo below.
  4979. Microsoft has also added a Microsoft specific OBJECT tag which does
  4980. essentially the same things as EMBED and is overtly linked with
  4981. Microsoft's OLE/COM/ActiveX environment.  Naturally Microsoft
  4982. recommends using the OBJECT tag.
  4983.  
  4984. Unlike Netscape Navigator, Internet Explorer on Windows does not use
  4985. plug-ins, either from Micrsoft or 3rd parties, to view AVI.  Rather it
  4986. invokes either the Video for Windows media player or the ActiveMovie
  4987. ActiveX control.  If necessary, Internet Explorer is able to effectively
  4988. embed the applications in the Web page.
  4989.  
  4990. Microsoft has a copyrighted white paper "File References on HTML
  4991. Pages" on their Web site that provides a detailed description of
  4992. referencing AVI files on HTML pages for viewing with Internet Explorer.
  4993.  
  4994. <A HREF="http://www.microsoft.com/devonly/tech/amov1doc/amsdk008.htm">
  4995. http://www.microsoft.com/devonly/tech/amov1doc/amsdk008.htm</A>
  4996.  
  4997. Since Microsoft reportedly has $9 billion in cash for acquisitions,
  4998. lawyers, and other fun - and I don't, I will refrain from simply
  4999. incorporating the document here.
  5000.  
  5001. <H3>Netscape LiveVideo HTML Syntax</H3>
  5002.  
  5003.     If you hunt around the Netscape Web site you will find the following
  5004. detailed specification of the HTML syntax for embedding an AVI file
  5005. in a Web page for use with the LiveVideo Plug-in.
  5006.  
  5007. LIVEVIDEO SYNTAX 
  5008.  
  5009. DESCRIPTION 
  5010.      LiveVideo plays video files in AVI format. (Currently for Windows 95 and
  5011.      NT only.) 
  5012.  
  5013. HTML SYNTAX 
  5014.      <EMBED SRC=[URL] AUTOSTART=[TRUE|FALSE] LOOP=[TRUE|FALSE] WIDTH=[# PIXELS]
  5015.      HEIGHT=[# PIXELS] ALIGN=[TOP|BOTTOM|CENTER|BASELINE|LEFT|RIGHT|TEXTTOP
  5016.      MIDDLE|ABSMIDDLE|ABSBOTTOM]...> 
  5017.  
  5018.      EMBED - Use this tag to place AVI movies into your Web document. 
  5019.  
  5020.      SRC=[URL] - The URL of the source AVI file. 
  5021.  
  5022.      AUTOSTART=[TRUE|FALSE] - Setting the value to TRUE allows the AVI movie to begin
  5023.      playing automatically when the Web page is loaded. The default is FALSE. 
  5024.  
  5025.      LOOP=[TRUE|FALSE] - Setting the value to TRUE allows the AVI movie to play
  5026.      continuously until the user clicks on the movie to stop it from playing or goes to
  5027.      another page. The default is FALSE. 
  5028.  
  5029.      WIDTH=[# PIXELS] - Use this attribute to display the width of the AVI movie. 
  5030.  
  5031.      HEIGHT=[# PIXELS] - Use this attribute to display the height of the AVI movie.
  5032.      Standard sizes for movies are 90x120, 120x160, 180x240, and 240x320 (all size
  5033.      references are HEIGHT x WIDTH). These are all standard sizes using the 4:3 aspect
  5034.      ratio. 
  5035.  
  5036.      
  5037. ALIGN=[TOP|BOTTOM|CENTER|BASELINE|LEFT|RIGHT|TEXTTOP|MIDDLE|ABSMIDDLE|ABSB
  5038. OTTOM]
  5039.      - This attribute tells Netscape Navigator how you want to align text as it flows
  5040.      around the AVI movie. It acts similarly to the IMG tag. 
  5041.  
  5042. JAVA AND JAVASCRIPT FUNCTIONS 
  5043.      play() - Starts playing the source file at the current location.
  5044.      stop() - Stops the currently playing video.
  5045.      rewind() - Rewinds the currently loaded video.
  5046.      seek(frame-number) - Sets the current frame of the video to the given frame
  5047.      number. 
  5048.  
  5049. <A HREF="#Top">Return to Top</A>
  5050.  
  5051. <A NAME="Mail">
  5052. <H2>Sending AVI by E-Mail</H2>
  5053.  
  5054. The original Internet e-mail system was designed for sending
  5055. purely text messages using 7-bit ASCII codes (byte values from
  5056. 0 to 127).  Binary files such as AVI can include non-printing
  5057. 7-bit ASCII control codes and values higher than 127.  These
  5058. cause problems.
  5059.  
  5060. There are two main ways to transfer binary files such as AVI
  5061. by e-mail (and also the Network News system which is derived
  5062. from e-mail).  The older method is UUENCODE.  UUENCODE is
  5063. a utility that translates binary files into printing 7-bit
  5064. ASCII codes that can be sent safely by e-mail.  Simply
  5065. include the uuencoded file in the body of the e-mail
  5066. message.
  5067.  
  5068. The modern method is to use MIME, the Mulipurpose Internet
  5069. Mail Extensions.  This is a standard for adding attachments
  5070. to Internet e-mail, including binary files such as AVI.
  5071. See the section on <A HREF="#MIME">MIME</A> for more information.
  5072.  
  5073. More modern e-mail software include built in support for
  5074. uuencode and MIME.
  5075.  
  5076. <H3>Microsoft Internet Mail</H3>
  5077.  
  5078. In Microsoft's Internet Mail (included in Windows 95 OSR2 for
  5079. example), click New Message to generate a new e-mail message.
  5080.  
  5081. Select Insert | File Attachment to add an attachment, for example
  5082. an AVI file.
  5083.  
  5084. Select Format | Settings... to choose UUENCODE or MIME.  Internet
  5085. Mail defaults to MIME.  One can also select UUENCODE.
  5086.  
  5087. Internet Mail automates the binary file attachment process.
  5088.  
  5089. <A HREF="#Top">Return to Top</A>
  5090.  
  5091. <A NAME="MIME">
  5092. <H2>MIME types of AVI</H2>
  5093. </A>
  5094.  
  5095. MIME stands for Multipurpose Internet Mail Extension.  This is a
  5096. mechanism that was developed to support multimedia and other file type
  5097. attachments to Internet e-mail.  MIME defines MIME types that identify
  5098. the data type of the attachment.  The World Wide Web uses MIME types
  5099. to identify the data type of files on Web sites.
  5100.  
  5101. A MIME type consists of a type/subtype, for example
  5102.  
  5103. image/jpeg
  5104.  
  5105. for JPEG images.
  5106.  
  5107. The MIME specification (IETF RFC 2046) specifies a type of video for
  5108. video images.  The specification defines video/mpeg as the MIME type
  5109. for MPEG video.  Beyond this, the MIME specification (IETF RFC 2048)
  5110. specifies a mechanism for registering MIME types with the Internet
  5111. Assigned Number Authority (IANA).  As of 5/16/97, the following
  5112. video subtypes were registered with IANA:
  5113.  
  5114. video/mpeg
  5115. video/quicktime
  5116. video/vnd.vivo
  5117. video/vnd.motorola.video
  5118. video/vnd.motorola.videop
  5119.  
  5120. Thus, AVI has never been officially registered with IANA.  To view
  5121. the complete list of registered MIME types:
  5122.  
  5123. <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>
  5124.  
  5125. More than one MIME type appears to be used in practice for AVI files.
  5126.  
  5127. MIME types used for AVI:
  5128.  
  5129. video/avi
  5130. video/msvideo
  5131. video/x-msvideo
  5132.  
  5133. Note that according to the MIME specification the prefix "x-" indicates
  5134. an unregistered, experimental MIME type.  
  5135.  
  5136. For extensive information on MIME, visit The MIME Information Page at:
  5137.  
  5138. <A 
  5139. HREF="http://www.fwb.gulf.net/~dwsauder/mime.html">http://www.fwb.gulf.net/~dwsauder/mime.html</
  5140. A>
  5141.  
  5142.  
  5143. <A HREF="#Top">Return to Top</A>
  5144.  
  5145. <A NAME="HTTPD">
  5146. <H2>Configuring Web Servers to Handle AVI Files</H2>
  5147. </A>
  5148.  
  5149. Web servers are configured to send a MIME type to Web browsers to indicate
  5150. what to do with a file on the Web site that the browser is viewing.
  5151. For example, the MIME type image/gif indicates to a browser that it
  5152. is viewing a GIF file.  Web servers must send the AVI MIME type(s) to
  5153. Web browsers for files installed on the Web site.  
  5154.  
  5155. There are many Web servers.  Probably many are automatically configured
  5156. to send a MIME type for AVI files (files with the extension .avi).  
  5157. The folowing explains how this configuration is done for some of the
  5158. more popular Web servers.
  5159.  
  5160. <H3>Apache httpd</H3>
  5161.  
  5162. The free Apache httpd Web server is one of the most popular (perhaps the
  5163. most popular) Web server in use (May, 1997).  This is a free implementation
  5164. of the httpd daemon for Unix machines.  Apache is frequently run on
  5165. Sun workstations used as Web servers.
  5166.  
  5167. By default, Apache httpd looks in a configuration file httpd.conf for
  5168. directives that configure Apache.  One of these directives is 
  5169. AddType
  5170.  
  5171. AddType video/avi  .avi
  5172.  
  5173. The example above would configure the Apache Web server (the httpd Unix
  5174. daemon) to send the MIME type video/avi to a Web browser for files with
  5175. the file extension .avi on the Web site.
  5176.  
  5177. The Apache httpd daemon includes a command line option -f <file-spec>
  5178. to override the default httpd.conf file name and file location.  The Web
  5179. administrator can use this to set up an alternative configuration file.
  5180.  
  5181. Apache allows users to add a file .htaccess in the root directory of
  5182. their Web site which contains directives such as AddType.  In this way
  5183. individual users may add or override the configuration of the Web
  5184. server.  For example, my Web site did not send the x-world/x-vrml MIME
  5185. type for .wrl (VRML) files.  Netscape with Live3D expected to see this
  5186. MIME type for VRML "worlds".  I created a .htaccess file with
  5187.  
  5188. addtype  x-world/x-vrml .wrl
  5189.  
  5190. With this, my browser would correctly view VRML files.  The same could be
  5191. done with AVI files.
  5192.  
  5193. For further information on Apache, see the Apache Web site:
  5194.  
  5195. <A HREF="http://www.apache.org/">http://www.apache.org/</A>
  5196.  
  5197. <H3>CERN (or W3C) httpd</H3>
  5198.  
  5199. The CERN httpd is similar to Apache.  The CERN httpd defaults
  5200. to looking in a configuration file /etc/httpd.conf  The configuration
  5201. file contains configuration directives.  One of these is
  5202. AddType
  5203.  
  5204. AddType .suffix representation encoding [quality]
  5205.  
  5206. For example:
  5207.  
  5208. AddType .html text/html 8bit 1.0
  5209.  
  5210. Extensive information on the CERN httpd web server, including a
  5211. user manual, is available at:
  5212.  
  5213. <A HREF="http://www.w3.org/Daemon/">http://www.w3.org/Daemon/</A>
  5214.  
  5215. <H3>NCSA HTTPd</H3>
  5216.  
  5217. The NCSA (National Center for Supercomputer Applications at my 
  5218. alma mater, the University of Illinois at Urbana-Champaign) HTTPd
  5219. web server is similar to Apache and CERN.
  5220.  
  5221. NCSA HTTPd looks in a resource configuration file
  5222.  
  5223. conf/srm.conf   (srm for Server Resource Map)
  5224.  
  5225. You can add AddType configuration directives to this configuration
  5226. file to add new MIME types or override the default MIME types
  5227. used by NCSA HTTPd.
  5228.  
  5229. AddType type/subtype ext1 ext2 ... extn
  5230.  
  5231. For example:
  5232.  
  5233. AddType text/plain txt doc 
  5234.  
  5235. or
  5236.  
  5237. AddType video/avi avi
  5238.  
  5239. Extensive information on NCSA HTTPd is available at:
  5240.  
  5241. <A HREF="http://hoohoo.ncsa.uiuc.edu/">http://hoohoo.ncsa.uiuc.edu</A>
  5242.  
  5243.  
  5244. <H3>Microsoft Internet Information Server</H3>
  5245.  
  5246. Microsoft Internet Information Server is a server providing
  5247. HTTP (WWW), FTP, and Gopher services for Windows NT 4.0
  5248. Server.  IIS handles the mapping from file extensions to
  5249. MIME types through the Windows NT System Registry.
  5250.  
  5251. To view and modify the MIME map:
  5252.  
  5253. 1. Run the Windows NT Registry Editor  Regedt32.exe
  5254.  
  5255. 2. Look in the Windows NT Registry Key (Folder):
  5256.  
  5257. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters\MimeMap
  5258.  
  5259. 3. The MimeMap Key  contains a series of Registry Values (entries) of form:
  5260.  
  5261. < mime type > , < filename extension > ,, < gopher type >
  5262.  
  5263. 4. On my IIS server, the sole Registry Value (entry) for avi is:
  5264.  
  5265. video/x-msvideo,avi,,>:REG_SZ:
  5266.  
  5267. :REG_SZ: identifies a text string in the Registry editor.
  5268.  
  5269. The IIS server will send the MIME type video/x-msvideo for
  5270. files with the extension AVI.
  5271.  
  5272. IIS also uses the entries:
  5273.  
  5274. video/x-ms-asf,asf,,5:REG_SZ:
  5275. video/x-ms-asf,asx,,5:REG_SZ:
  5276.  
  5277. for the Microsoft Active Streaming Format files.
  5278.  
  5279. 5. IIS defaults to treating files as vanilla binary files if they
  5280. are not explicitly listed in the MIME Map.
  5281.  
  5282. 6. To add a new MIME type, in the Registry Editor
  5283.  
  5284.              - Select Add Value ... from the Edit menu.
  5285.              - Create a Registry Value of type REG_SZ (for a string)
  5286.              - Enter the MIME type information as above as the
  5287.                     NAME of the Registry Value.
  5288.              - Leave the string blank.
  5289.  
  5290.  
  5291. <H3>Netscape Enterprise Server 3.0</H3>
  5292.  
  5293. Edit the mime.types file in the server's config directory.
  5294.  
  5295. This will contains lines of the form:
  5296.  
  5297. type=video/x-msvideo  exts=avi
  5298.  
  5299. These can also be of the form:
  5300.  
  5301. type=video/x-msvideo exts=avi,vid,vvv
  5302.  
  5303. when multiple file extensions map to the same MIME type.
  5304.  
  5305. The server reads this file to associate the MIME type video/x-msvideo
  5306. with files with the file extension avi.
  5307.  
  5308. The Netscape help site is:
  5309.  
  5310. <A HREF="http://help.netscape.com/">http://help.netscape.com/</A>
  5311.  
  5312. This includes many articles on the Netscape server including a
  5313. discussion of MIME types and the mime.types file.
  5314.  
  5315. <A HREF="#Top">Return to Top</A>
  5316.  
  5317. <A NAME="Java">
  5318. <H2>AVI and Java</H2>
  5319. </A>
  5320.  
  5321. Plans for Java include a collection of Java Media and Communications
  5322. API's (Application Programmer's Interfaces).  These include the Java
  5323. Media Framework (JMF for short).  The first part of JMF is the Java
  5324. Media Player, an API for synchronization, control, processing and
  5325. presentation of compressed streaming and stored timed media including
  5326. video and audio.  A public specification for the Java Media Player has
  5327. been released.  According to this the Java Media Players will be
  5328. designed to support many media types including AVI.  A beta release of
  5329. the JMF software is scheduled for the second quarter of 1997 and may
  5330. be happening as of 5/15/97 (some rumors at least although I have not
  5331. seen the software).
  5332.  
  5333. For further information on Java Media Framework, see:
  5334.  
  5335. <A HREF="http://java.sun.com/products/java-media/jmf/index.html">
  5336. http://java.sun.com/products/java-media/jmf/index.html</A>
  5337.  
  5338.  
  5339. For further information on Java, see the Java site:
  5340.  
  5341. <A HREF="http://java.sun.com/">http://java.sun.com/</A>
  5342.  
  5343. <A HREF="#Top">Return to Top</A>
  5344.  
  5345. <A NAME="VRML">
  5346. <H2>AVI and VRML</H2>
  5347. </A>
  5348.  
  5349. The Virtual Reality Modeling Language (VRML, often pronounced
  5350. 'vermal') is the file format standard for 3D multimedia and shared
  5351. virtual worlds on the Internet.  
  5352.  
  5353. VRML supports a "node" known as a MovieTexture.  This allows a video (or
  5354. movie) to be mapped onto the surface of an object.  A MovieTexture node
  5355. is referenced by the texture field of an Appearance node.  Each object has
  5356. an Appearance node.  
  5357.  
  5358. The VRML MovieTexture node includes a url field.  The url field, as the
  5359. name suggests, is the URL (Uniform Resource Locator) of a video file
  5360. to map onto the surface of the VRML object.  The VRML 2.0 specification
  5361. requires that this video file must be in either MPEG-1 Systems (audio and
  5362. video) or MPEG-1 video only format.  AVI is not directly supported.
  5363.  
  5364. It is necessary to convert an AVI file to MPEG-1 format to use the AVI file
  5365. with VRML.  This is VRML 2.0   VRML 97 may be different.
  5366.  
  5367. For further information on VRML, see the VRML Consortium Web Site.
  5368.  
  5369. <A HREF="http://www.vrml.org/">http://www.vrml.org/</A>
  5370.  
  5371. <A HREF="#Top">Return to Top</A>
  5372.  
  5373. <A NAME="NS">
  5374. <H2>Configuring Netscape Navigator 3.01 to Display AVI Files</H2>
  5375. </A>
  5376.  
  5377. The following remarks apply to Netscape Navigator 3.01 for
  5378. Windows 3.1, Windows 95, and Windows NT 4.0.
  5379.  
  5380. Netscape Navigator displays .AVI files either through a helper application
  5381. such as the Microsoft Media Player or a Netscape Plugin that supports
  5382. AVI playback, such as the Netscape npavi16.dll and npavi32.dll plugins.
  5383.  
  5384. A helper application is a separate application, executable, that is
  5385. invoked by the Web browser.  The helper application runs as a separate
  5386. process with its own window or windows.  The helper application is not
  5387. tied to the Web page.
  5388.  
  5389. A Netscape plugin is a dynamic link library that extends the
  5390. capabilities of the Netscape Navigator.  Typically the plugin will
  5391. receive control over a region of the Web page displayed by the
  5392. browser and display its output in that region.  The output appears to
  5393. be embedded in the Web page.
  5394.  
  5395. To view and configure helper applications, select the General Preferences
  5396. item from the Options menu of Netscape Navigator.  Select the Helpers tab
  5397. of the General Preferences.  Helpers lists registered File types (MIME
  5398. types), associated actions, and file extensions.
  5399.  
  5400. Options | General Preferences | Helpers 
  5401.  
  5402. A File Type is a MIME type such as image/gif or video/avi.  MIME
  5403. stands for Multipurpose Internet Mail Extensions.  MIME types are
  5404. a mechanism to identify the data type of multimedia attachments to
  5405. Internet e-mail messages.  MIME types are also used by Web servers
  5406. to identify to Web browsers the data type of multimedia files such as
  5407. AVI files on Web sites.
  5408.  
  5409. An action can be blank, Ask User, Browser, or a helper application such
  5410. as Media Player (mplayer.exe).  The blank action appears to be used
  5411. in cases where a Plugin is installed and may be used for other cases as
  5412. well.  The Ask User action indicates to pop up a dialog asking the user
  5413. what to do: save to disk, select an application, or cancel.  Browser
  5414. indicates that the File Type is supported by the browser.  For example
  5415. gif and jpeg decoding is built directly into Netscape Navigator.
  5416.  
  5417. To view installed plugins, select About Plugins from the Help menu.  This
  5418. produces a listing of installed Plugins.  The list has an
  5419. entry for each currently installed Netscape Plugin.  For example:
  5420.  
  5421. NPAVI32 Dynamic Link Library
  5422.  
  5423. MIME Type
  5424. video/msvideo       ... other information ...
  5425. video/x-msvideo     ... other information ...
  5426.  
  5427. is the information presented for Netscape's npavi32.dll plugin in
  5428. Netscape Navigator 3.0 on Windows NT 4.0 Server (Service Pack 2).
  5429.  
  5430. Netscape Plugins are dynamic link libraries stored in a plugins
  5431. directory.  For example, \Program Files\Netscape\Navigator\Program\plugins\
  5432.  
  5433. Many Netscape plugins including the Netscape AVI plugins (npavi16.dll for
  5434. 16 bit Windows and npavi32.dll for 32 bit Windows) can be dowloaded from
  5435. the Netscape Web site.
  5436.  
  5437. <A HREF="http://home.netscape.com/">http://home.netscape.com/</A>
  5438.  
  5439. <A HREF="#Top">Return to Top</A>
  5440.  
  5441. <A NAME="Plug-ins">
  5442. <H2>Netscape Navigator Plug-ins to Play AVI Files</H2>
  5443. </A>
  5444.  
  5445. <H3>Netscape LiveVideo</H3>
  5446.  
  5447. Netscape Navigator 3.0 includes LiveVideo which supports playback of
  5448. AVI files on Windows 3.x, Windows 95, and Windows NT platforms.  This is
  5449. implemented through the dynamic link libraries npavi.dll, npavi16.dll, and
  5450. npavi32.dll.
  5451.  
  5452. <A HREF="http://home.netscape.com/">http://home.netscape.com/</A>
  5453.  
  5454. You can download the latest Navigator 3.0 with LiveVideo from Netscape.
  5455. Netscape also maintains pages with Netscape Plug-Ins, mostly from other
  5456. companies.  These include CineWeb by Digigami and MacZilla by Knowledge
  5457. Engineering which provide AVI playback.
  5458.  
  5459. To get to the Audio/Video Plug-Ins page (as of May 15, 1997), go to the
  5460. Netscape Home Page.  There is a graphical text 
  5461.  
  5462.       "Get the latest Netscape Software".
  5463.  
  5464. Underneath this text there is pulldown list of the many Netscape products.
  5465. This initially reads "Pulldown to select products".
  5466. Click on this to show the pulldown list (it is very long).
  5467. Choose "Navigator Plug-Ins".
  5468.  
  5469. Click on the Product Info icon under the pulldown list.
  5470.  
  5471. This presents a page for Inline Plug-Ins.  Select the Audio/Video option.
  5472. This brings up a page of audio/video plugins that add support for various
  5473. audio and video formats.
  5474.  
  5475. CineWeb by Digigami and MacZilla by Knowledge Engineering are both in
  5476. this list.  These plug-ins are also available directly from their
  5477. makers.
  5478.  
  5479. <H3>CineWeb by DigiGami</H3>
  5480.  
  5481. Digigami produces a Netscape Navigator Plug-in for Windows 95 and Windows
  5482. NT called CineWeb that provides playback of AVI, QuickTime, and MPEG files.
  5483.  
  5484. <A HREF="http://www.digigami.com/cineweb/">http://www.digigami.com/cineweb/</A>
  5485.  
  5486. <H3>MacZilla by Knowledge Engineering</H3>
  5487.  
  5488. MacZilla is a Netscape Plug-in for the Power Macintosh that adds AVI,
  5489. Quicktime, and MPEG playback.
  5490.  
  5491. <A HREF="http://maczilla.com/">http://maczilla.com/</A>
  5492.  
  5493.  
  5494. <A HREF="#Top">Return to Top</A>
  5495.  
  5496. <A NAME="IE">
  5497. <H2>Configuring Internet Explorer 3.0x to Display AVI Files</H2>
  5498. </A>
  5499.  
  5500. The following applies to Internet Explorer on Windows 95 and Windows
  5501. NT 4.0.  The information may also work for Windows 3.1
  5502.  
  5503. Select the Options item from the View menu of Internet Explorer.  Select
  5504. the Programs tab.  Within the Programs sheet, click on the "File Types ..."
  5505. button.
  5506.  
  5507. View (menu) | Options (item in menu) | Programs (tab) | File Types ... (button)
  5508.  
  5509. Internet Explorer 3.0x uses the Windows 95 System Registry or
  5510. Windows NT System Registry to determine what to do with a file.  This is
  5511. the same mechanism that the Windows 95 or NT 4.0 Desktop uses to
  5512. determine which application to use when a user double clicks on a file
  5513. icon.  This is achieved through a Content or MIME type "value" (name
  5514. and data pair) in the registry.  See the section on how AVI is handled
  5515. in Windows 95 for more details.
  5516.  
  5517. The "File Types ..." brings up a list of file types and associated
  5518. actions.  This can be used to edit and modify the actions.
  5519.  
  5520. <A HREF="#Top">Return to Top</A>
  5521.  
  5522.  
  5523. <A NAME="Word"><H2>How to embed an AVI file in a Microsoft Word Document?</H2></A>
  5524.  
  5525. Media Player acts as an OLE (Object Linking and Embedding) server.  This means
  5526. that application such as Microsoft Word that support OLE can embed
  5527. a movie.
  5528.  
  5529. With Word 6.0 (Microsoft seems to keep changing the user interface for
  5530. Microsoft Word so I need to qualify which version of Microsoft Word),
  5531.  
  5532. 1. Select Insert from the menu bar.  This pulls down a long menu.
  5533.  
  5534. 2. Select Object... from the pulldown menu.  This pops up a dialog box.
  5535.  
  5536. 3. Select the Create from File tab.
  5537.  
  5538. 4. Select the AVI file from the file browser.
  5539.  
  5540. 5. Select OK
  5541.  
  5542. This inserts a link to the AVI file at the current location within the
  5543. Microsoft Word document that you are editing.  The first frame of the
  5544. AVI file is displayed.  Double click on the first frame of the AVI
  5545. file to start playback.
  5546.  
  5547. NOTE: With Word 6.0, this sequence of Word commands embeds a graphic
  5548. of the first frame of the AVI file along with instructions to invoke
  5549. Media Player on an external file in the Word document.  The binary AVI
  5550. file remains separate.  Only the file specification and a graphic
  5551. image of the first frame are actually inserted in the Word document.
  5552. The on-line help documentation with Word 6.0 is misleading or outright
  5553. false on this point.
  5554.  
  5555. Other Windows applications that act as OLE clients will be able to do
  5556. similar things with AVI files.
  5557.  
  5558. <A HREF="#Top">Return to Top</A>
  5559.  
  5560.  
  5561.  
  5562. <A NAME="Size">
  5563. <H2>Size limits on AVI files</H2>
  5564. </A>
  5565.  
  5566. An AVI file cannot be larger than the disk partition that
  5567. contains it.  Different filesystems have different maximum sizes
  5568. for disk partitions.
  5569.  
  5570. Under the 16 bit FAT (File Allocation Table) filesystem used by DOS,
  5571. disk partitions are limited to a maximum size of 2GB (Gigabytes).  In
  5572. DOS, a hard disk is divided into 512 byte sectors.  DOS Version 4
  5573. added support for 32 bit sector numbers.  2 raised to the 32 is roughly 4
  5574. billion, multiply this times 512 bytes in a sector to get the 2GB
  5575. limit.  FAT16 partitions are limited to 2GB, necessarilly limiting AVI
  5576. files to a maximum size of 2GB as well.
  5577.  
  5578. DOS versions prior to DOS 4 limited disk partitions to 32MB (Megabytes).
  5579. These earlier versions of DOS used 16 bit sector numbers in all I/O
  5580. routines.  2 raised to the 16th power is 64K, multiply this by 512 bytes
  5581. in a sector to get the 32MB limit.
  5582.  
  5583. Partitions using other filesystems such as the Windows NT File Systems (NTFS)
  5584. may not be subject to the 2GB limit.
  5585.  
  5586. The new FAT32 filesystem available with Windows 95 permits partitions larger
  5587. than 2GB.  Unfortunately, a 1 or 2 GB file size limit is hard wired
  5588. into some of the code for the Microsoft Video for Windows.  In
  5589. particular, the RIFF parser code and MCIAVI (the MCI driver for
  5590. AVI files) contain a 1 GB or 2 GB limit hard wired into them.
  5591.  
  5592. Microsoft's Active Movie, which replaces Video for Windows, contains
  5593. fixes for the 1-2 GB size limits hard wired into Video for Windows.
  5594.  
  5595. Microsoft's OEM Service Release 2 (OSR2) incorporates FAT32.  Earlier
  5596. OEM releases and the retail version of Windows 95 (as of 2/15/97) do
  5597. not include FAT32.  Microsoft sayeth: "Neither MS-DOS 6.x nor retail
  5598. versions of Windows 95 will recognize a FAT32 volume".  To see if you
  5599. have OSR2, go to the Control Panel, select the System icon, and click
  5600. the General tab.  It will say "4.00.950b".  If there is no trailing
  5601. letter or "4.00.950a", then you do not have OSR2.
  5602.  
  5603. OEM versions of Windows 95 cannot be purchased separately as off the
  5604. shelf software.  They are bundled on systems created by companies
  5605. like Dell, Compaq, and so forth.  The retail version(s?) of Windows 95
  5606. can be purchased at software stores or through software resellers.
  5607.  
  5608. I believe that there was some sort of beta release of FAT32 prior to
  5609. OSR2, either a special version of Windows 95 or a way to install FAT32
  5610. in versions of Windows 95 that did not come with FAT32.
  5611.  
  5612. OSR2 and FAT32 seem to have some problems.  Some applications
  5613. such as Corel's Paradox 7 fail on FAT32 volumes. See:
  5614.  
  5615. <A HREF="http://www.bugnet.com/">Bug Net Web Site</A>
  5616.  
  5617. or search the Microsoft Knowledge Base for the keyword OSR2.
  5618.  
  5619. The header for an AVI file includes a 32 bit AVI file length, imposing
  5620. a restriction of 4GB on the AVI file size.  
  5621.  
  5622. The Open Digital Media (OpenDML) Consortium has defined 
  5623. OpenDML AVI File Format Extensions to add support for 
  5624. professional video functionalities to AVI.  This includes
  5625. a fix for the 4 GB limit.  Microsoft has incorporated this
  5626. extended version of AVI into ActiveMovie 1.0 from
  5627. Microsoft.
  5628.  
  5629. <A HREF="#Top">Return to Top</A>
  5630.  
  5631.  
  5632. <A NAME="Corel">
  5633. <H2>How to Fix Problem with CorelMove4.0 AVI Files</H2>
  5634. </A>
  5635.  
  5636. CorelMove 4.0 exports AVI files that cannot be played using
  5637. Video for Windows 1.1 or the Windows 95 Video for Windows or
  5638. ActiveMovie 1.0.  
  5639.  
  5640. Corel has a fix file that can be downloaded from their software
  5641. library. The file is called "cmvfix.exe."
  5642.  
  5643. The URL is...
  5644. <A HREF="http://www.corel.com/products/graphicsandpublishing/draw4/library.htm">http://www.corel.com/products/graphicsandpublishing/draw4/library.htm</A>
  5645.  
  5646. Description text from the web page...
  5647.  
  5648. Title: CMVFIX.EXE For CorelMOVE 4.0 AVI export correction
  5649.  
  5650. CMVFIX.EXE by Corel Corporation 1994 contains these
  5651. compressed files: CMV4FIX.EXE is a compressed file that
  5652. contains fixes for CorelMOVE 4.0's AVI file exports. These
  5653. are new replacement .DLLs. AVI4FIX.EXE is a Windows
  5654. application that will allow you to correct older CorelMOVE
  5655. 4.0 AVI files to work with MS-Video For Windows 1.1. If you
  5656. create an AVI file AFTER installing the CMV4FIX update that
  5657. accompanies this fix, then you will NOT be required to run
  5658. this application. This will change the RLE compression in
  5659. the CorelMOVE AVI files.
  5660.  
  5661. <A HREF="#Top">Return to Top</A>
  5662.  
  5663. <A NAME="Biblio">
  5664. <H2>Sources of Information on AVI:</H2>
  5665. </A>
  5666.  
  5667. How to Digitize Video
  5668. by Nels Johnson 
  5669. with Fred Gault and Mark Florence
  5670. John Wiley and Sons, New York, 1994
  5671.  
  5672. Article
  5673. "Digital Video File Formats"
  5674. by Mark Florence
  5675. Dr. Dobbs Sourcebook of Multimedia Programming, Winter 1994
  5676.  
  5677.  
  5678. Windows Multimedia Programmer's Guide
  5679.     
  5680.       - includes overview of RIFF
  5681.  
  5682.  
  5683. Video for Windows Development Kit Programmer's Guide
  5684.  
  5685.       - includes overview of AVI
  5686.  
  5687.  
  5688. RIFF Specification is available on World Wide Web at (11/7/96):
  5689.  
  5690. <A HREF="http://www.seanet.com/HTML/Users/matts/riffmci/riffmci.htm">
  5691. http://www.seanet.com/HTML/Users/matts/riffmci/riffmci.htm</A>
  5692.  
  5693. <A HREF="#Top">Return to Top</A>
  5694.  
  5695. <A NAME="News">
  5696. <H2>Internet Newsgroups with Information on AVI and Video</H2>
  5697.  
  5698. Internet or USENET Newsgroups are a good source of current
  5699. information on AVI and video.  Some useful newsgroups are:
  5700.  
  5701. VIDEO SPECIFIC NEWSGROUPS
  5702.  
  5703. <A HREF="news:rec.video.desktop">rec.video.desktop</A>
  5704.  
  5705. <A HREF="news:comp.os.ms-windows.video">comp.os.ms-windows.video</A>
  5706.  
  5707. <A HREF="news:comp.sys.ibm.pc.hardware.video">comp.sys.ibm.pc.hardware.video</A>
  5708.  
  5709. <A HREF="news:comp.dcom.videoconf">comp.dcom.videoconf</A>  Videoconferencing
  5710.  
  5711.  
  5712. OTHER USEFUL NEWSGROUPS
  5713.  
  5714. <A HREF="news:comp.multimedia">comp.multimedia</A>
  5715.  
  5716.       Broad coverage of multimedia including video.
  5717.  
  5718. <A HREF="news:comp.compression">comp.compression</A>
  5719.  
  5720.       Both technical discussions of compression algorithms and
  5721. codecs, as well as end user issues such as utilities and
  5722. configuration issues.
  5723.  
  5724. <A HREF="#Top">Return to Top</A>
  5725.  
  5726. <A NAME="Credits">
  5727. <H2>Credits</H2>
  5728. </A>
  5729.  
  5730. The following people have contributed ideas, suggestions,
  5731. criticisms, and information to the AVI Overview:
  5732.  
  5733. Jens Mutschke   Q-Team Dr. Knabe GmbH
  5734. John Whelan     Dublin City University
  5735. Victor Rutman   Netvision
  5736. Wolfgang Hesseler
  5737. Marcus Moenig   MainConcept
  5738. Dave Wilson     Rockwell/Brooktree
  5739. Steve P.        (no full last name, information on CorelMove 4.0)
  5740. Dennis Strauch
  5741. Tom Harding     Practice Corporation
  5742.  
  5743. Special thanks to:
  5744.  
  5745. Desktop Video Expert Center/NASA Ames Research Center
  5746.  
  5747. <A HREF="#Top">Return to Top</A>
  5748.  
  5749. NOTE: Suggestions, additions, and corrections are welcome.  Please
  5750. send to 
  5751. <P>
  5752. <ADDRESS>
  5753. <A HREF="mailto:jfm@rahul.net">jfm@rahul.net</A>
  5754. </ADDRESS>
  5755.  
  5756. <!--
  5757. About the author:
  5758.  
  5759.     John F. McGowan is a software engineer with experience in digital
  5760. video and computer generated imagery.  He has developed commercial
  5761. MPEG-1 and MPEG-2 players for PC/Windows, Unix, and Power Macintosh
  5762. platforms.  He has a B.S. in Physics from the California Institute
  5763. of Technology and a Ph.D. in Physics from the University of Illinois
  5764. at Urbana-Champaign.
  5765. -->
  5766.  
  5767. </PRE>
  5768. </BODY>
  5769. </HTML>
  5770. -- 
  5771.  
  5772.  
  5773.  
  5774.  
  5775.