home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / graphics / avi-faq < prev    next >
Encoding:
Text File  |  1999-08-08  |  406.6 KB  |  11,027 lines

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!boulder!newsfeed.berkeley.edu!howland.erols.net!nntp.abs.net!news.chicago.winstar.net!wasp.rahul.net!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: 3 Aug 1999 21:04:10 GMT
  7. Organization: a2i network
  8. Lines: 11014
  9. Approved: news-answers-request@MIT.EDU
  10. Message-ID: <7o7lga$269$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 DirectShow (formerly 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:132629 comp.graphics.animation:67035 comp.multimedia:88846 comp.os.ms-windows.video:21513 news.answers:164215 rec.answers:51576 comp.answers:37262
  15.  
  16. Archive-name: graphics/avi-faq
  17. Posting-Frequency: monthly
  18. Last-modified: 1999/8/1
  19. Version: 1.276
  20. URL: http://www.rahul.net/jfm/avi.html
  21. Copyright: (c) 1996-1999 John F. McGowan, Ph.D.
  22. Maintainer: John F. McGowan, Ph.D. <jfm@rahul.net>
  23.  
  24. <HTML>
  25. <META NAME="Description" CONTENT="John McGowan's AVI Overview">
  26. <META NAME="Keywords" CONTENT="AVI, Video, Video for Windows, ActiveMovie, DirectShow, NetShow">
  27. <META HTTP-EQUIV="keywords" CONTENT="AVI, Video, Video for Windows, ActiveMovie, DirectShow, NetShow">
  28. <HEAD><TITLE>John McGowan's AVI Overview</TITLE></HEAD>
  29. <BODY BGCOLOR="#FFFFFF">
  30. <PRE>
  31.                  AVI Overview
  32.               by John F. McGowan, Ph.D.
  33.                       (c) 1996-1999, John F. McGowan
  34.               http://www.rahul.net/jfm/
  35.  
  36. ----------------------------------------------------------------------------
  37. </PRE>
  38. <!-- This document is best viewed using an HTML browser.  However, -->
  39. <!-- it has been composed with limited use of HTML so that it can -->
  40. <!-- be used as a plain text file as well. -->
  41. <!-- Release $Id: avi.html,v 1.276 1999/07/22 17:16:26 jfm Exp $ -->
  42.  
  43. <!-- Permission to copy and distribute this document is granted -->
  44. <!-- so long as the title, author's name, and URL are retained -->
  45. <!-- Any additions or modifications made to the original should be -->
  46. <!-- clearly marked as such. -->
  47. <!-- The author welcomes and encourages suggested changes and -->
  48. <!-- additions to the overview.  Contributors will be credited. -->
  49. <PRE>
  50.  
  51. <A NAME="Top">
  52. What is in this Overview?
  53. </A>
  54.  
  55.        - Overview of Video for Windows, DirectShow (ActiveMovie), and AVI
  56.  
  57.        <A HREF="#Definition">What is AVI?</A>
  58.  
  59.        <A HREF="#Disclaimer">Disclaimer</A>
  60.  
  61.        <A HREF="#Get">How to Get the AVI Overview</A>
  62.  
  63.        <A HREF="#New">WHAT'S NEW</A>
  64.  
  65.        Brief Table of Contents
  66.  
  67.           <A HREF="#Common">Most Common AVI Question: What does "could not find vids:xxxx ..." error mean?</A>
  68.           <A HREF="#Util">UTILITIES, SYSTEM ADMINISTRATION, AUTHORING, ETC.</A>
  69.           <A HREF="#Install">Installation, Configuration, and Other Issues</A>
  70.           <A HREF="#AVIAndWEB">AVI and the WORLDWIDE WEB</A>
  71.           <A HREF="#Codecs">Audio and Video Codecs</A>
  72.           <A HREF="#Business">Business and Economics of AVI</A>
  73.  
  74.           PROGRAMMING/TECHNICAL TOPICS
  75.  
  76.           <A HREF="#WinProg">Microsoft Windows Video Programming</A>
  77.           <A HREF="#MMProg">Multimedia Technical Information</A>
  78.           <A HREF="#WinDriver">Microsoft Windows Device Drivers</A>
  79.           
  80.           <A HREF="#Glossary">Glossary</A>
  81.           <A HREF="#Chronology">Chronology</A>
  82.  
  83.        Detailed Table of Contents
  84.  
  85.           <A HREF="#Common">Most Common AVI Question: What does "could not find vids:xxxx ..." error mean?</A>
  86.  
  87.        <A NAME="Util">UTILITIES, SYSTEM ADMINISTRATION, AUTHORING, ETC.</A>
  88.        - <A HREF="#Play">How to play an AVI file?</A>
  89.                     - DOS
  90.                     - Windows
  91.                     - Macintosh
  92.                     - Unix
  93.                     - VAX/VMS
  94.                     - Amiga
  95.                     - OS/2
  96.  
  97.  
  98.        - How to convert AVI to various audio/video formats.
  99.                     - <A HREF="#ToMPEG">MPEG (.MPG Files)</A>
  100.                     - <A HREF="#ToMOV">QuickTime (.MOV or .MooV)</A>
  101.                     - <A HREF="#ToGIF89a">Animated GIFs (GIF89a)</A>
  102.                     - <A HREF="#ToASF">Microsoft ASF (Active Streaming Format)</A>
  103.                     - <A HREF="#ToSequence">Sequence of Still Images in Separate Files</A>
  104.                     - <A HREF="#ToSmacker">Smacker (.SMK Files)</A>
  105.                     - <A HREF="#ToRM">Progressive Networks RealMedia Streaming Format (.RM Files)</A>
  106.  
  107.        - How to convert other audio/video formats to AVI
  108.                     - <A HREF="#FromMOV">QuickTime (.MOV or .MooV)</A>
  109.                     - <A HREF="#FromSequence">Sequence of Still Images in Separate Files</A>
  110.                     - <A HREF="#FromAutodesk">Autodesk Animation (FLI or FLC)</A>
  111.                     - <A HREF="#FromMPEG">MPEG (.MPG)</A>
  112.                     - <A HREF="#FromGIF89a">Animated GIF (.GIF)</A>
  113.  
  114.  
  115.        - <A HREF="#Bitmaps">How to Convert a Sequence of Still Images in One Format to a Sequence in Another Format</A>
  116.  
  117.        - Authoring AVI Files
  118.  
  119.                 CREATING AVI FILES
  120.  
  121.                     - <A HREF="#ScreenCapture">How to capture screen to AVI files</A>
  122.                     - <A HREF="#AuthorAVI">Multimedia Authoring Tools to Create AVI Files</A>
  123.                     - <A HREF="#LW">How to import AVI files into Lightwave</A>               
  124.                     - <A HREF="#Capture">How to create AVI files from analog video (Video Capture Cards)</A>
  125.                              - From VHS tapes and video cameras
  126.                              - From Hi8 tapes and video cameras
  127.                              - <A HREF="#VfWCapture">Video Capture under Video for Windows</A>
  128.                              - <A HREF="#CaptureCards">Video Capture Cards</A>
  129.                              - <A HREF="#ParCapture">Video Capture through PC Parallel Port
  130.                              - <A HREF="#TBC">What to do about horizontal tearing in the video?</A>
  131.                              - <A HREF="#HDCapture">Hard Drive Video Capture Issues</A>
  132.                              - <A HREF="#NTCapture">Video Capture Cards with Windows NT Drivers</A>
  133.                     - <A HREF="#TV">How to create AVI files from Television</A>
  134.                     - <A HREF="#Morph">How to Create Morph Effects for AVI Files</A>
  135.                     - <A HREF="#Audio">How to compress the audio sound track in AVI files</A>
  136.  
  137.         MODIFYING AND EDITING AVI FILES
  138.  
  139.                     - <A HREF="#FPS">How to change frame rate of AVI files</A>
  140.                     - <A HREF="#Crop">How to crop an AVI file</A>
  141.                     - <A HREF="#Edit">How to edit AVI files</A>
  142.                              - VidEdit
  143.                              - Personal AVI Editor
  144.                              - MGI VideoWave 
  145.                              - Corel Lumiere Suite for 32-bit Windows
  146.                              - Ulead Media Studio Pro
  147.                              - Adobe Premiere
  148.                              - in:sync SpeedRazor
  149.                              - Asymetrix Digital Video Producer (DVP)
  150.                              - Fast Movie Processor
  151.                              - Peck's Power Join
  152.                     - <A HREF="#Audio">How to compress the audio sound track in AVI files</A>
  153.                     - <A HREF="#ToNTSC">How to create NTSC (or PAL) Safe AVI</A>
  154.                     - <A HREF="#Phantom">The Phantom Final Frame when Viewing an AVI</A>
  155.                     - <A HREF="#BinEd">Binary File Editors for Viewing and Editing AVI</A>
  156.                     - <A HREF="#VidTrace">RIFF and AVI Parser/Viewers</A>
  157.                              - John McGowan's VidTrace
  158.                              - Microsoft RIFFWALK
  159.                              - Bill Luken's RIFFSCAN
  160.                     - <A HREF="#Wave">Editing and converting WAV files</A>
  161.                     - <A HREF="#MacSound">Editing and converting Sound Files on Macintosh</A>
  162.  
  163.                 MISCELLANEOUS AUTHORING QUESTIONS
  164.                  
  165.                     - <A HREF="#Output">How to output AVI files to videotape</A>
  166.                     - <A HREF="#Size">Size limits on AVI files</A>
  167.                     - <A HREF="#Corel">How to Fix Problem with AVI files from CorelMove 4.0</A>
  168.  
  169.  
  170.        <A NAME="Install">Installation, Configuration, and Other Issues</A>
  171.  
  172.                     INSTALLATION AND CONFIGURATION
  173.  
  174.                        - <A HREF="#VfW16">Where to get the 16-bit Video for Windows for Windows 3.x</A>
  175.                        - <A HREF="#Win95">Reinstalling Microsoft's Video-for-Windows in Windows 95</A>
  176.                        - <A HREF="#GETAM">How to get ActiveMovie 1.0</A>
  177.                        - <A HREF="#NT40">Installing and configuring AVI Codecs in Windows NT 4.0</A>
  178.                        - <A HREF="#Extension">How to give AVI files a different extension in Windows 3.1</A>
  179.                        - <A HREF="#AVI95">How AVI Files are Handled in Windows 95</A>
  180.  
  181.                     INFORMATION SOURCES
  182.                        - <A HREF="#Biblio">Bibliography of sources of information on Video for Windows and AVI</A>
  183.                        - <A HREF="#News">Internet Newsgroups with Information on AVI and Video </A>
  184.                        - <A HREF="#VideoStandards">Where to find information
  185. on digital audio and video standards other than AVI.
  186.  
  187.                     MISCELLANEOUS QUESTIONS
  188.  
  189.                        - <A HREF="#VideoChips">PC Video Card and Video Chips</A>
  190.                                          - <A HREF="#NTVideo">Video Cards with Windows NT Drivers</A>
  191.                        - <A HREF="#Word">How to embed an AVI file in a Microsoft Word Document</A>
  192.                        - <A HREF="#Names">Microsoft's Changing Names</A>
  193.                        - <A HREF="#Misc">Answers to miscellaneous other frequently asked questions about AVI </A>
  194.  
  195.                        - <A HREF="#Health"> AVI and Your Health (Eye Strain)</A>
  196.  
  197.  
  198.  
  199.         <A NAME="AVIAndWEB">AVI and the WORLDWIDE WEB</A>
  200.                - <A HREF="#Style">Effective use of video on a Web page</A>
  201.                - <A HREF="#Web">How to embed an AVI file in a Web page</A>
  202.                - <A HREF="#NS">Configuring Netscape Navigator 3.0x to Display AVI Files</A>
  203.            - <A HREF="#Plug-ins">Netscape Navigator Plug-ins to play AVI</A>
  204.                - <A HREF="#IE">Configuring Internet Explorer 3.0x to Display AVI Files</A>
  205.                - <A HREF="#Mail">Sending AVI by E-Mail or Network News Postings</A>
  206.                - <A HREF="#Crypto">How to encrypt AVI Files</A>
  207.  
  208.                - <A HREF="#MIME">MIME types of AVI</A>
  209.                - <A HREF="#HTTPD">Configuring Web Servers to Handle AVI Files</A>
  210.                          - Apache
  211.                          - CERN (or W3C)
  212.                          - NCSA HTTPd
  213.                          - Microsoft Internet Information Server 3.0
  214.                          - Netscape Enterprise Server 3.0
  215.  
  216.                - <A HREF="#Java">AVI and Java</A>
  217.                - <A HREF="#VRML">AVI and VRML</A>
  218.                - <A HREF="#NetShow">AVI and NetShow</A>
  219.                - <A HREF="#ToASF">Converting AVI to Microsoft Active Streaming Format (ASF) Files</A>
  220.                - <A HREF="#Content">Sources of AVI Video Clips on the Web</A>
  221.                - <A HREF="#AVILBR">Low Bit Rate AVI for the Web</A>
  222.  
  223.         REAL-TIME OR STREAMING VIDEO OVER IP NETWORKS
  224.                - <A HREF="#Limits">Limitations of AVI and Video for Windows over Networks</A>
  225.                - <A HREF="#NetShow">NetShow</A>
  226.                - <A HREF="#Names">Microsoft's Changing Names</A>
  227.                - <A HREF="#RFC">Internet Video Standards and Pseudo-Standards</A>
  228.  
  229.         <A NAME="Codecs">AUDIO and VIDEO CODECS</A>
  230.                - <A HREF="#Codec">Video for Windows compressors and decompressors</A>
  231.                      WHAT THEY ARE, WHERE TO GET THEM, WHICH WORK BEST!
  232.                          - The Old Guard
  233.                                - <A HREF="#DIB">Full Frames (Uncompressed)</A>
  234.                                       - <A HREF="#ColorFormats">Color Formats</A>
  235.                                - <A HREF="#RT21">Intel Real Time Video 2.1 (Indeo 2.1?) (RT21)</A>
  236.                                - <A HREF="#IV32">Indeo 3.2/3.1</A>
  237.                                - <A HREF="#MRLE">Microsoft Run Length Encoding</A>
  238.                                - <A HREF="#MSVC">Microsoft Video 1</A>
  239.                                - <A HREF="#CVID">Cinepak</A>
  240.                                - <A HREF="#MJPG">Motion JPEG</A>
  241.                                - <A HREF="#XMPG">Editable MPEG</A>
  242.                           - The New Wave 
  243.                                - <A HREF="#VDOW">VDOWave (VDOLive)</A>
  244.                                - <A HREF="#IV41">Indeo Video Interactive (Indeo 4.1)</A>
  245.                                - <A HREF="#IV50">Indeo Video Interactive (Indeo 5.x)</A>
  246.                                - <A HREF="#UCOD">ClearVideo (aka RealVideo)</A>
  247.                                - <A HREF="#SFMC">SFM (Surface Fitting Method)</A>
  248.                                - <A HREF="#QPEG">QPEG</A>
  249.                                - <A HREF="#H261">H.261</A>
  250.                                - <A HREF="#H263">H.263</A>
  251.                                         - Microsoft H.263
  252.                                         - Vivo Software H.263
  253.                                         - Intel I263 H.263
  254.                                         - Shannon Communication Systems (SCS) H.263+
  255.                                         - Telenor R&D H.263
  256.                                - <A HREF="#MPG4">MPEG-4</A>
  257.                                - <A HREF="#LS">Lightning Strike (Infinop)</A>
  258.                                - <A HREF="#VxTreme">VxTreme</A>
  259.                           Video Codecs NOT Available for AVI
  260.                                - <A HREF="#Sorenson">Sorenson Video</A>
  261.  
  262.                - <A HREF="#BestCodec">Which AVI video codec is best?</A>
  263.                - <A HREF="#CodecPerformance">Performance of the AVI Codecs</A>
  264.                           A table with typical compression ratios of
  265.                           Video for Windows codecs.
  266.  
  267.                - <A HREF="#QTCodec">Which Video for Windows codecs are
  268. supported by QuickTime on the Apple Macintosh?</A>
  269.                - <A HREF="#VfWInstalled">How to determine which codecs are installed</A>
  270.                - <A HREF="#WhichAVICodec">How to determine which codec was used to compress an AVI file</A>
  271.                - <A HREF="#FourCC">Microsoft Four Character Codes (FOURCC)</A>
  272.                - <A HREF="#FOURCCGUID">Microsoft GUIDs for Video for Windows Codecs</A>
  273.                - <A HREF="#ColorFormats">Color Formats</A>
  274.                - <A HREF="#ALGO">Video Compression Technologies</A>
  275.                         <A HREF="#RLE">Run Length Encoding</A>
  276.             <A HREF="#VQ">Vector Quantization</A>
  277.                         <A HREF="#DCT">Discrete Cosine Transform</A>
  278.                         <A HREF="#DWT">Discrete Wavelet Transform</A>
  279.                         <A HREF="#Contour">Contour-Based Image Coding</A>
  280.                         <A HREF="#FD">Frame Differencing</A>
  281.                         <A HREF="#Motion">Motion Compensation</A>
  282.  
  283.                - <A HREF="#ACM">Audio Codecs</A>
  284.                - <A HREF="#ACMInstalled">How to determine which Audio Codecs are Installed</A>
  285.  
  286.  
  287.         <A HREF="#Glossary">GLOSSARY</A>
  288.  
  289.         <A HREF="#Chronology">CHRONOLOGY</A>
  290.  
  291.         PROGRAMMING/TECHNICAL TOPICS
  292.  
  293.                <A NAME="WinProg">MICROSOFT WINDOWS PROGRAMMING </A>
  294.  
  295.                    THE OLD REGIME
  296.  
  297.                        - <A HREF="#WINMM">Windows Multimedia System</A>
  298.                        - <A HREF="#VFW">Video for Windows</A>
  299.                        - <A HREF="#WAVE">Wave (Waveform Audio)</A>
  300.                        - <A HREF="#Format">AVI file format</A>
  301.                                 - RIFF Files
  302.                                 - Original AVI File Format
  303.                                 - <A HREF="#OpenDML">OpenDML AVI File Format Extensions</A>
  304.                                 - <A HREF="#AVISpec">Where to get the exact specification of AVI?</A>
  305.                                 - <A HREF="#AVIDIB">AVI and Windows Bitmaps (DDB, DIB, ...)</A>
  306.                     THE NEW WAVE
  307.  
  308.                        - <A HREF="#ActiveMovie">ActiveMovie</A>
  309.                        - <A HREF="#GUID">GUID's and AVI</A>
  310.                        - <A HREF="#DirectShow">DirectShow (ActiveMovie 2.0)</A>
  311.                        - <A HREF="#DirectDraw">DirectDraw</A>
  312.                        - <A HREF="#MMX">MMX</A>
  313.                        - <A HREF="#ActiveX">ActiveX</A>
  314.                        - <A HREF="#Names">Microsoft's Changing Names</A>
  315.  
  316.                     HOW TO PROGRAM IN WINDOWS
  317.                        - <A HREF="#AviPlay">Playing an AVI file within a Windows Application</A>
  318.                        - <A HREF="#AviWrite">Reading and Writing an AVI file within a Windows Application</A>
  319.  
  320.  
  321.                     <A NAME="MMProg">USEFUL INFORMATION FOR AVI AND VIDEO PROGRAMMING (NOT WINDOWS)</A>
  322.  
  323.                       SOURCE CODE
  324.                        - <A HREF="#AVISRC">Where to get C source code for an AVI Player Including Many Codecs</A>
  325.                        - <A HREF="#JPEGSRC">Where to get C source code for a JPEG Encoder or Decoder</A>
  326.                        - <A HREF="#H263SRC">Where to get C source code for an H.263 Video Encoder or Decoder</A>
  327.                        - <A HREF="#MPEGSRC">Where to get C source code for an MPEG Video Encoder or Decoder</A>
  328.                        - <A HREF="#WAVELETSRC">Where to get C/C++ Source Code for Wavelet Image Compression</A>
  329.  
  330.                       TECHNICAL INFORMATION 
  331.                        - <A HREF="#COLORFAQ">Where to get an explanation of Color, Color Spaces, Gamma and All That</A>
  332.                        - <A HREF="#FileFormats">Where to get Detailed Information on Graphics File Formats?</A>
  333.                        - <A HREF="#AudioFmts">Where to get Detailed Information on Audio File Formats?</A>
  334.  
  335.                     USEFUL INFORMATION FOR NETWORKED VIDEO PROGRAMMING
  336.                        - <A HREF="#RFC">Internet Video Standards</A>
  337.                               - MIME
  338.                               - RTP (Real Time Protocol)
  339.                               - RSVP (Resource Reservation Protocol)
  340.                               - IP Multicast
  341.                               - UDP (User Datagram Protocol)
  342.                        
  343.                 <A NAME="WinDriver">WINDOWS DEVICE DRIVERS AND VIDEO</A>
  344.                        - <A HREF="#Driver">What is a driver?</A>
  345.                        - <A HREF="#GDI">GDI Device Drivers</A>
  346.                        - <A HREF="#DHAL">DirectDraw Hardware Abstraction Layer</A>
  347.                        - <A HREF="#VXD">Virtual Device Drivers</A>
  348.                        - <A HREF="#NTDM">Windows NT Driver Model</A>
  349.                        - <A HREF="#WDM">Win32 Driver Model (WDM)</A>
  350.                        - <A HREF="#INF">Setup Information Files</A>
  351.  
  352.  
  353.                <A HREF="#Awards">Awards</A>
  354.  
  355.                <A HREF="#Credits">Credits</A>
  356.  
  357.  
  358.                ABOUT THE AUTHOR
  359.  
  360.                - John McGowan is a software engineer with experience
  361. in digital audio and video on PC/Windows, Unix/X Windows, and
  362. PowerMacintosh platforms.  He has developed commercial MPEG-1 and
  363. MPEG-2 player software.  His experience includes development,
  364. optimization, and implementation of audio, video, and still image
  365. compression and decompression algorithms in C/C++ on Intel, MIPS,
  366. SPARC, and PowerPC based platforms.  He has also developed Microsoft
  367. Windows user interface software.  He has a Ph.D. in physics from the
  368. University of Illinois at Urbana-Champaign and a B.S. in physics from
  369. the California Institute of Technology.
  370.  
  371.                - <A HREF="http://www.rahul.net/jfm/index.html">John McGowan's Home Page</A>
  372.  
  373. <A NAME="Disclaimer">
  374. <H2>Disclaimer</H2>
  375.  
  376. In no event shall John McGowan or other contributors be liable for
  377. direct, indirect, special, incidental or consequential damages 
  378. arising out of the use or inability to use information, softwares,
  379. bitstreams and other data found on or referenced by the AVI Graphics
  380. Overview.
  381.  
  382. Permission to copy and distribute this document is granted so long as
  383. the title, author's name, URL, and this disclaimer are retained.  Any
  384. additions or modifications made to the original should be clearly
  385. marked as such.  The author welcomes and encourages suggested changes
  386. and additions to the overview.  Contributors will be credited.
  387.  
  388. <A HREF="#Top">Return to Top</A>
  389.  
  390. <A NAME="Get">
  391. <H2>How to Get the AVI Overview</H2>
  392. </A>
  393.  
  394. The AVI Overview is available at:
  395.  
  396. <A HREF="http://www.rahul.net/jfm/avi.html">http://www.rahul.net/jfm/avi.html</A>
  397.  
  398. If you are in a Web Browser such as Internet Explorer or Netscape
  399. Navigator, you can save a copy of the page you are viewing to your
  400. local hard disk as an HTML File.
  401.  
  402. In Internet Explorer, Select File | Save As...
  403.  
  404. In Netscape Navigator, Select File | Save As...
  405.  
  406. Using FTP (File Transfer Protocol):
  407.  
  408. <A HREF="ftp://ftp.rahul.net/pub/jfm/avi/avi.html">ftp://ftp.rahul.net/pub/jfm/avi/avi.html</A>
  409.  
  410. <A HREF="#Top">Return to Top</A>
  411.  
  412.  
  413. <A NAME="New">
  414. <H2>What's New</H2>               
  415. </A>
  416.  
  417. (May 11, 1999)
  418.  
  419. Aachen, Germany
  420.  
  421. MainConcept releases Linux verson of Main Actor Video Editor.
  422. Linux is a free imlementation of the Unix operating system
  423. for the IBM PC-compatible and other platforms. 
  424.  
  425.  
  426. (April 15, 1999)
  427.  
  428. Aachen, Germany
  429.  
  430. MainConcept releases Main Actove Video Editor 3.0 for
  431. Microsoft Windows 95/98 and Microsoft Windows NT 4.0.
  432.  
  433.  
  434. (April 13, 1999)
  435.  
  436. RealNetworks acquires Xing Technology Corporation.  
  437.  
  438.  
  439. (March 21, 1999)
  440.  
  441. XAnim 2.80.1 released on March 21, 1999.  XAnim is a video and animation
  442. player for the X Windows System and Unix.  It includes support for
  443. AVI files.
  444.  
  445. XAnim 2.80.1 contains some minor changes to XAnim 2.80.0 which was
  446. released on March 14, 1999.
  447.  
  448. (March 14, 1999)
  449.  
  450. XAnim 2.80.0 released on March 14, 1999.  XAnim is a video and animation
  451. player for the X Windows System and Unix.  It includes support for
  452. AVI files.
  453.  
  454. According to the XAnim Web site:
  455.  
  456. XAnim 2.80.0 is now ready for consumption. In addition to several new
  457. video codecs, the new revision also supports dynamically loadable
  458. video decompression libraries. This means you no longer need to
  459. recompile xanim each time a new video codec is released or
  460. upgraded. There are currently dll's for: Creative CYUV, Radius
  461. Cinepak, Intel Indeo 3.2, Intel Indeo 4.1, Intel Indeo 5.0, CCITT
  462. H.261 and CCITT H.263.
  463.  
  464.  
  465. (Feb. 2, 1999)
  466.  
  467. Intel Indeo 5.10 video codec released, supersedes 5.06.
  468.  
  469.  
  470. (November 5, 1998) Guillaume de Bailliencourt writes:
  471.  
  472.  
  473. John,
  474.  
  475. I'm an anonymous reader of your FAQ for years.
  476.  
  477. First, congratulation for your work in this FAQ !
  478.  
  479. I've just released a software MJPEG codec and main features are :
  480.  
  481. Decompress hardware M-JPEG AVI files (Rainbow Runner, DC30, ...) without the
  482. capture hardware.
  483.  
  484. Win9x, WinNT, Video for Windows, ActiveMovie & DirectShow compliant.
  485.  
  486. MMX and 3DNow! optimized.
  487.  
  488. DirectDraw YUV accelarated output supported (YUY2 & UYVY).
  489.  
  490. Most of the M-JPEG formats supported (4:2:2, 4:1:1, mjpg, dmb1, jpeg).
  491.  
  492. You can download it at www.morgan-multimedia.com
  493.  
  494. For me it is better than the Paradigm Matrix codec. I'll send you benchmark
  495. ...
  496.  
  497. For the moment it has been tested on :
  498.  
  499. Play back (decompression) :
  500.  
  501. Paradigm Matrix software codec compressed AVI Files in every resolutions &
  502. compressions.
  503.  
  504. Matrox Rainbow Runner AVI files in every resolutions & compressions.
  505.  
  506. Miro/Pinnacle DC30 AVI files in 384 x 288 & 720x540
  507.  
  508. Fast Screen Machine II + MJPEG card AVI file in 368 x 276
  509.  
  510. AVI files created with MainActor "Software & Harware MJPEG output"
  511.  
  512. AVI file converted from a 'jpeg' QuickTime file with SmartVid
  513.  
  514. Compressed with my codec & played back with :
  515.  
  516. Paradigm Matrix software codec
  517.  
  518. Matrox Rainbow Runner
  519.  
  520. Best regards,
  521.  
  522. Guillaume de Bailliencourt
  523.  
  524. (January 6, 1999)
  525.  
  526. Radius Incorporated, the Cinepak company, renames itself
  527. Digital Origin Incorporated.
  528.  
  529. (August 24, 1998) jim@shansys.com writes:
  530.  
  531. Hi there,
  532. We have an H263+ avi codec and analysis tool at www.shansys.com
  533.  
  534.  
  535. (August 3, 1998) David Gartner of Equilibrium writes:
  536.  
  537. Equilibrium adds AVI with sound support to DeBabelizer Pro 4.5
  538.  
  539. ...
  540.  
  541. **AVI Video with Sound**
  542. DeBabelizer Pro 4.5's new full AVI support enables users to batch process
  543. legacy Video for Windows files for use on most any Macintosh and Windows
  544. systems for the Web, CD-ROM or kiosk.  Video for Windows (AVI) was built
  545. into Windows 95 and NT and runs only on Windows machines.  Now, with a few
  546. keystrokes, DeBabelizer Pro 4.5 users can automatically optimize, convert,
  547. and compress tens, hundreds or thousands of videos to QuickTime 3.0,
  548. animated GIFs or a variety of other cross-platform video and animation
  549. formats.
  550.  
  551. ...
  552.  
  553. (June 6, 1998)  Wolfgang Hesseler writes:
  554.  
  555. Hello,
  556. Hello, I just wanted to let you know that I've released the new
  557. QuickView 2.30. It now supports a bunch of new video codecs like
  558. Motion JPEG, several audio codecs and QuickTime video codecs.
  559. Please update your FAQ. Thanks.
  560.  
  561.  
  562. (May 4, 1998) Microsoft plans to release first public test version
  563. of NetShow 3.0
  564.  
  565. (March 23, 1998) The AVI Overview selected as an
  566. 'Outstanding Page' by the PC Webopaedia
  567.  
  568. (November 12, 1997) Microsoft has a new NetShow distribution NetShow
  569. 2.1 NetShow 2.1 adds support for RealNetworks (formerly Progressive
  570. Networks) RealVideo and RealAudio, NetShow clients for Windows 3.1,
  571. MacOS, and the Linux, Solaris, SunOS, and HP-UX versions of Unix, and
  572. TheaterServer for streaming broadcast-quality video over highbandwidth
  573. networks such as ATM and fast Ethernet.  Microsoft has invested in
  574. RealNetworks within the last few months.
  575.  
  576. (October 30, 1997) Wolfgang Hesseler writes about his AVI viewer
  577. for DOS:
  578.  
  579. Hello, I just wanted to let you know that I've released the new
  580. QuickView 2.20. Besides supporting more hardware and MOV files it
  581. supports the QPEG codec. Please update your FAQ. Thanks.
  582.  
  583. (September 8, 1997) Microsoft distributes Advanced Streaming
  584. Format (ASF) Specification for a "Public Design Review".
  585. <A HREF="http://www.microsoft.com/asf/">Microsoft ASF Page</A>
  586.  
  587. (September, 1997) Lernout and Hauspie Speech Products forms
  588. a strategic partnership with and receives investment capital
  589. from Microsoft.  $45 million in some reports.  BT Alex Brown
  590. acted as financial advisor.  Lernout and Hauspie audio codecs are
  591. used in Microsoft's NetShow product.
  592.  
  593. (September, 1997) avi2mpg1 released.  A Windows 95/NT console
  594. application to convert AVI to MPEG-1.
  595.  
  596. (August 5, 1997) Microsoft acquires VxTreme (wavelet based
  597. streaming video) for its NetShow product line.
  598.  
  599. <A HREF="http://www.vxtreme.com/">VxTreme Inc.</A>
  600.  
  601. Intel's Indeo Video Interactive 5.0 software is
  602. now available on Intel Web site.
  603.  
  604. Wolfgang Hesseler announces version 2.13 of QuickView, an AVI
  605. player for DOS (July 28, 1997)
  606.  
  607. MainConcept announces version 1.1 of MainActor shareware.
  608. MainActor can convert between AVI and many video, animation,
  609. and image formats.  (July 9, 1997)
  610.  
  611. Marcus Moenig of MainConcept writes:
  612.  
  613. John,
  614.  
  615. well here comes the press release of v1.1 We now support full MPEG-I and
  616. MPEG-II without audio. So you can now convert MPEG into AVI and vice versa.
  617.  
  618. I dont want to get on your nerves on what MainActor can and cannot do but
  619. we also support full Motion JPEG for AVIs. Even interlaced JPEG from Miro
  620. and FAST hardware can now be read and written by MainActor.
  621.  
  622. ---End---
  623.  
  624. RAD Game Tools announces a new version of their Smacker
  625. utilities, including the ability to read and write AVI 
  626. files with optimized 8 bit color palettes. (June 27, 1997)
  627.  
  628.  
  629.  
  630. <A HREF="#Top">Return to Top</A>
  631.  
  632. <A NAME="Definition">
  633. <H2>What is AVI?</H2>
  634. </A>
  635.  
  636.     AVI stands for Audio Video Interleave.  It is a special case
  637. of the RIFF (Resource Interchange File Format).  AVI is defined by
  638. Microsoft.  AVI is the most common format for audio/video data on the
  639. PC.  AVI is an example of a de facto (by fact) standard.
  640.  
  641. <A HREF="#Top">Return to Top</A>
  642.  
  643. <A NAME="WINMM">
  644. <H2>Windows Multimedia System</H2>
  645. </A>
  646.  
  647. In Win16 and Win32, Microsoft created a partially unified system
  648. for handling multimedia.  This system consists of the high level
  649. Media Control Interface or MCI Application Programming Interface (API)
  650. and associated MCI drivers.  Playback of AVI files can be controlled
  651. through the high level MCI API and the MCIAVI.DRV MCI driver.
  652.  
  653. The Windows Multimedia System also provides a number of low level
  654. API's such as the WAVE API for waveform audio and associated
  655. device drivers such as the WAVE device drivers for sound cards.
  656.  
  657. Under Windows NT 4.0, the MCI and low level API's are stored in 
  658. the file WINMM.DLL
  659.  
  660. The API's are:
  661.  
  662. MCI   (high level API - useful for AVI playback)
  663. joy   (joystick devices)
  664. midi  (MIDI devices)
  665. mixer (MIXER devices)
  666. wave  (waveform audio input and output devices)
  667. mmio  (low level functions to parse RIFF files)
  668. time  (timers etc.)
  669. aux   (auxiliary sound device)
  670.  
  671. When a program loads the MCIAVI driver, the Multimedia
  672. System has the intelligence to locate and invoke the
  673. appropriate MCI driver (MCIAVI.DRV in 16-bit
  674. Windows or MCIAVI32.DLL in 32 bit windows) and pass the MCI
  675. commands such as MCI_PLAY to the MCI driver.
  676.  
  677. The MCIAVI driver then calls Video for Windows to decompress
  678. the video, GDI (or another graphics API) to display the
  679. decoded frames, and WAVE to output the decoded audio samples.
  680.  
  681. A dump of the functions exported by winmm.dll under NT 4.0
  682. generated with the Microsoft DUMPBIN.EXE utility follows:
  683.  
  684. Microsoft (R) COFF Binary File Dumper Version 5.00.7022
  685. Copyright (C) Microsoft Corp 1992-1997. All rights reserved.
  686.  
  687.  
  688. Dump of file winmm.dll
  689.  
  690. File Type: DLL
  691.  
  692.          Section contains the following Exports for WINMM.dll
  693.  
  694.                    0 characteristics
  695.             31EC70B4 time date stamp Tue Jul 16 21:48:52 1996
  696.                 0.00 version
  697.                    2 ordinal base
  698.                  197 number of functions
  699.                  197 number of names
  700.  
  701.             ordinal hint   name
  702.  
  703.                   3    0   CloseDriver  (000026CE)
  704.                   4    1   DefDriverProc  (00005AF4)
  705.                   5    2   DriverCallback  (0000254E)
  706.                   6    3   DrvGetModuleHandle  (00001D37)
  707.                   7    4   GetDriverModuleHandle  (00001D37)
  708.                   8    5   MigrateAllDrivers  (00013E79)
  709.                   9    6   MigrateMidiUser  (00013E60)
  710.                  10    7   MigrateSoundEvents  (00011A3C)
  711.                  11    8   NotifyCallbackData  (0000B2C2)
  712.                  12    9   OpenDriver  (00002036)
  713.                  13    A   PlaySound  (00008ACB)
  714.                   2    B   PlaySoundA  (00008ACB)
  715.                  14    C   PlaySoundW  (00009AE1)
  716.                  15    D   SendDriverMessage  (00001000)
  717.                  16    E   WOW32DriverCallback  (0000C448)
  718.                  17    F   WOW32ResolveMultiMediaHandle  (0000CC3C)
  719.                  18   10   WOWAppExit  (00009D3F)
  720.                  19   11   aux32Message  (0000C507)
  721.                  20   12   auxGetDevCapsA  (0000A3FD)
  722.                  21   13   auxGetDevCapsW  (00008C77)
  723.                  22   14   auxGetNumDevs  (00006AE4)
  724.                  23   15   auxGetVolume  (0000A4A1)
  725.                  24   16   auxOutMessage  (00008BFF)
  726.                  25   17   auxSetVolume  (0000A4C9)
  727.                  26   18   joy32Message  (0000C768)
  728.                  27   19   joyConfigChanged  (0000AE40)
  729.                  28   1A   joyGetDevCapsA  (0000A99A)
  730.                  29   1B   joyGetDevCapsW  (0000AB40)
  731.                  30   1C   joyGetNumDevs  (0000AB96)
  732.                  31   1D   joyGetPos  (0000ABAA)
  733.                  32   1E   joyGetPosEx  (0000ABFD)
  734.                  33   1F   joyGetThreshold  (0000AC5C)
  735.                  34   20   joyReleaseCapture  (0000ACA8)
  736.                  35   21   joySetCapture  (0000ACFC)
  737.                  36   22   joySetThreshold  (0000AE06)
  738.                  37   23   mci32Message  (00007566)
  739.                  38   24   mciDriverNotify  (00007006)
  740.                  39   25   mciDriverYield  (00008727)
  741.                  40   26   mciExecute  (0000D92C)
  742.                  41   27   mciFreeCommandResource  (000035CE)
  743.                  42   28   mciGetCreatorTask  (0000DCD5)
  744.                  43   29   mciGetDeviceIDA  (0000DCA3)
  745.                  44   2A   mciGetDeviceIDFromElementIDA  (0000DBC6)
  746.                  45   2B   mciGetDeviceIDFromElementIDW  (0000DBF5)
  747.                  46   2C   mciGetDeviceIDW  (00005372)
  748.                  47   2D   mciGetDriverData  (0000158B)
  749.                  48   2E   mciGetErrorStringA  (0000DA46)
  750.                  49   2F   mciGetErrorStringW  (0000352F)
  751.                  50   30   mciGetYieldProc  (0000E1F3)
  752.                  51   31   mciLoadCommandResource  (00002A75)
  753.                  52   32   mciSendCommandA  (000015D4)
  754.                  53   33   mciSendCommandW  (000014A1)
  755.                  54   34   mciSendStringA  (00004927)
  756.                  55   35   mciSendStringW  (00004A24)
  757.                  56   36   mciSetDriverData  (000058BD)
  758.                  57   37   mciSetYieldProc  (000034C9)
  759.                  58   38   mid32Message  (0000BDFD)
  760.                  59   39   midiConnect  (0001019E)
  761.                  60   3A   midiDisconnect  (0001018C)
  762.                  61   3B   midiInAddBuffer  (0001004A)
  763.                  62   3C   midiInClose  (0000FF42)
  764.                  63   3D   midiInGetDevCapsA  (0000FCCC)
  765.                  64   3E   midiInGetDevCapsW  (0000FC71)
  766.                  65   3F   midiInGetErrorTextA  (0000FDEB)
  767.                  66   40   midiInGetErrorTextW  (0000FDB2)
  768.              SetInfo  (0000EBF4)
  769.                 140   8A   mmioStringToFOURCCA  (0000ED9A)
  770.    (00008BC5)
  771.  
  772.  
  773. Under Windows 3.x and Windows 95, the DLL MMSYSTEM.DLL (short for
  774. MultiMedia System) contains the multimedia API's.      
  775.  
  776. <A HREF="#Top">Return to Top</A>
  777.  
  778.  
  779. <A NAME="VFW">
  780. <H2>Video for Windows</H2>
  781. </A>
  782.  
  783. Video for Windows is an entire system for handling video 
  784. in Microsoft Windows.  It was part of MS Windows 3.1  The
  785. original Video for Windows is a collection of 16 bit
  786. windows utilities, dynamic link libraries, and other
  787. components. 
  788.  
  789. The AVI file and file format is a central part of Video 
  790. for Windows.
  791.  
  792. Microsoft Visual C++ 5.0 has a Video for Windows
  793. include file Vfw.h which contains the various API's that
  794. make up Video for Windows:
  795.  
  796.  *          COMPMAN         - Installable Compression Manager.
  797.  *          DRAWDIB         - Routines for drawing to the display.
  798.  *          VIDEO           - Video Capture Driver Interface
  799.  *
  800.  *          AVIFMT          - AVI File Format structure definitions.
  801.  *          MMREG           - FOURCC and other things
  802.  *
  803.  *          AVIFile         - Interface for reading AVI Files and AVI Streams
  804.  *          MCIWND          - MCI/AVI window class
  805.  *          AVICAP          - AVI Capture Window class
  806.  *
  807.  *          MSACM           - Audio compression manager.
  808.  
  809.  
  810. Microsoft released a Video for Windows 1.0 for
  811. Windows 3.1 in November 1992, followed by Video for Windows 1.1.  There
  812. have been several versions of Video for Windows 1.1
  813. identified by a trailing alphabetical character such as
  814. 1.1e   The last and most recent version of Video for
  815. Windows 1.1 for Windows 3.x is Video for Windows 1.1e
  816. This is available by ftp from Microsoft. 
  817.  
  818. Microsoft has provided a 32-bit version of Video for Windows
  819. for Windows 95, while threatening to replace Video for Windows with
  820. ActiveMovie.  This version has 32 bit versions of the Video
  821. for Windows codecs such as Cinepak.  Other DLL's in the
  822. Video for Windows 95 are also 32-bit  How much of the Video for
  823. Windows in Windows 95 is 32 bit code is not clear; many of the
  824. codecs are clearly 32 bit codecs.  Nor is it clear how much has been
  825. changed or modified besides the convesion to 32-bit code.
  826.  
  827. Windows NT 3.5, 3.51 and Windows NT 4.0 include a Video for Windows for
  828. NT.  Presumably this is strictly 32-bit.  It is not clear how
  829. much code is shared between the NT Video for Windows and the
  830. Windows 95 Video for Windows.  Note that hardware device
  831. drivers are different between Windows 95 and NT 3.5/3.51/4.0.
  832.  
  833. ActiveMovie 1.0 and DirectShow (formerly ActiveMovie 2.0) are
  834. 32-bit successors to Video for Windows for both Windows 95
  835. and Windows NT.  These support AVI files.  ActiveMovie started 
  836. out life under the code name Quartz; early Beta releases of
  837. ActiveMovie were known as Quartz.
  838.  
  839. ActiveMovie 1.0 is bundled with Windows 95b (OEM Service Release 2.x)
  840. and Internet Explorer 3.x/4.x for Windows 95.  It can also be downloaded
  841. and installed in Windows 95 separately.  Note that ActiveMovie 1.0
  842. does NOT completely replace Video for Windows.  For example, ActiveMovie
  843. 1.0 does not provide a video capture mechanism.  Video capture still
  844. uses Video for Windows capture drivers.  
  845.  
  846. ActiveMovie 1.0 is a 32 bit software component that can run in NT's
  847. user mode.  It runs under Windows NT 4.0 as well as Windows 95.  
  848.  
  849. DirectShow (ActiveMovie 2.0) will supposedly add a number of new
  850. features including video capture support, kernel mode streaming, and
  851. miscellaneous other features.
  852.  
  853.  
  854. VIDEO FOR WINDOWS under WINDOWS NT 4.0
  855.  
  856. Under NT 4.0, Video for Windows is implemented as a collection of
  857. 32-bit DLL's in the Microsoft 32-bit Common Object File Format or COFF
  858. format.  These are usually located in the \WINNT\SYSTEM32 directory
  859. where Windows NT stores most of the system DLL's, drivers, and so
  860. forth.
  861.  
  862. MSVFW32.DLL        ( Microsoft Video for Windows DLL - NT 4.0 )
  863. AVIFIL32.DLL       ( AVIFILE API for Reading and Writing AVI Files and Streams )
  864. AVICAP32.DLL       ( AVI Capture Window Class )
  865. MCIAVI32.DLL       ( Video for Windows MCI Driver )
  866. MSACM32.DRV        ( Microsoft Audio Compression Manager )
  867. MSACM32.DLL        ( more Microsoft Audio Compression Manager )
  868.  
  869. MSRLE32.DLL        ( Microsoft RLE Video Codec )
  870. IR32_32.DLL        ( Intel Indeo 3.2 Video Codec )
  871. MSVIDC32.DLL       ( Microsoft Video 1 Codec )
  872. ICCVID.DLL         ( Cinepak for Windows 32 - Radius )
  873.  
  874. What is in MSVFW32.DLL?
  875.  
  876. MSVFW32.DLL includes the DRAWDIB, Installable Compression
  877. Manager or ICM, and MCI Windows components of Video for
  878. Windows.  Other components are stored in other DLL's.
  879.  
  880. This is a dump of the functions exported by MSVFW32.DLL
  881. Version 4.00
  882.  
  883. Microsoft (R) COFF Binary File Dumper Version 5.00.7022
  884. Copyright (C) Microsoft Corp 1992-1997. All rights reserved.
  885.  
  886.  
  887. Dump of file msvfw32.dll
  888.  
  889. File Type: DLL
  890.  
  891.          Section contains the following Exports for MSVFW32.dll
  892.  
  893.                    0 characteristics
  894.             31EC70E9 time date stamp Tue Jul 16 21:49:45 1996
  895.                 0.00 version
  896.                    2 ordinal base
  897.                   47 number of functions
  898.                   47 number of names
  899.  
  900.             ordinal hint   name
  901.  
  902.                   3    0   DrawDibBegin  (00001E14)
  903.                   4    1   DrawDibChangePalette  (00008C30)
  904.                   5    2   DrawDibClose  (0000888A)
  905.                   6    3   DrawDibDraw  (000010A6)
  906.                   7    4   DrawDibEnd  (00008BEC)
  907.                   8    5   DrawDibGetBuffer  (00008EFC)
  908.                   9    6   DrawDibGetPalette  (00002F97)
  909.                  10    7   DrawDibOpen  (00003E0A)
  910.                  11    8   DrawDibProfileDisplay  (00003EBA)
  911.                  12    9   DrawDibRealize  (00001D49)
  912.                  13    A   DrawDibSetPalette  (00001C0D)
  913.                  14    B   DrawDibStart  (00002EEB)
  914.                  15    C   DrawDibStop  (00002F42)
  915.                  16    D   DrawDibTime  (00008C2B)
  916.                  17    E   GetOpenFileNamePreview  (0000C7DC)
  917.                  18    F   GetOpenFileNamePreviewA  (0000C7DC)
  918.                  19   10   GetOpenFileNamePreviewW  (0000C6A5)
  919.                  20   11   GetSaveFileNamePreviewA  (0000C7EC)
  920.                  21   12   GetSaveFileNamePreviewW  (0000C7CC)
  921.                  22   13   ICClose  (000035E0)
  922.                  23   14   ICCompress  (00004CE5)
  923.                  24   15   ICCompressorChoose  (00005F61)
  924.                  25   16   ICCompressorFree  (00005615)
  925.                  26   17   ICDecompress  (00004D4B)
  926.                  27   18   ICDraw  (0000106A)
  927.                  28   19   ICDrawBegin  (00001B95)
  928.                  29   1A   ICGetDisplayFormat  (00004D8E)
  929.                  30   1B   ICGetInfo  (00004C60)
  930.                  31   1C   ICImageCompress  (00005A96)
  931.                  32   1D   ICImageDecompress  (00005D2A)
  932.                  33   1E   ICInfo  (00002FEB)
  933.                  34   1F   ICInstall  (00004574)
  934.                  35   20   ICLocate  (0000372E)
  935.                  36   21   ICMThunk32  (0000841C)
  936.                  37   22   ICOpen  (0000337C)
  937.                  38   23   ICOpenFunction  (00003B53)
  938.                  39   24   ICRemove  (0000488B)
  939.                  40   25   ICSendMessage  (00001000)
  940.                  41   26   ICSeqCompressFrame  (000059A7)
  941.                  42   27   ICSeqCompressFrameEnd  (00005907)
  942.                  43   28   ICSeqCompressFrameStart  (000056E4)
  943.                  44   29   MCIWndCreate  (0000C988)
  944.                  45   2A   MCIWndCreateA  (0000C988)
  945.                  46   2B   MCIWndCreateW  (0000C8CC)
  946.                  47   2C   MCIWndRegisterClass  (0000C83F)
  947.                  48   2D   StretchDIB  (00009D13)
  948.                   2   2E   VideoForWindowsVersion  (000041D1)
  949.  
  950.      Summary
  951.  
  952.         8000 .data
  953.         3000 .rdata
  954.         2000 .reloc
  955.         3000 .rsrc
  956.        11000 .text
  957.  
  958.  
  959. VIDEO FOR WINDOWS FOR WINDOWS 95
  960.  
  961. Microsoft distributed a new Video for Windows for Windows 95
  962. while emphasizing Quartz/ActiveMovie/DirectShow in its
  963. marketing.
  964.  
  965. Video for Windows 95 Files
  966.  
  967. MSRLE32.DLL      (32-bit Microsoft RLE Video Codec)
  968. IR32_32.DLL      (32-bit Indeo 3.2 Video Codec)
  969. ICCVID.DLL       (32-bit Radius Cinepak Video Codec)
  970. MSVIDC32.DLL     (32-bit Microsoft Video 1 Video Codec )
  971. MSVIDEO.DLL      (16-bit Video for Windows DLL)      
  972. MCIAVI.DRV       (16-bit AVI Video MCI Driver)
  973. AVIFILE.DLL      (16-bit AVIFILE)
  974. AVICAP.DLL       (16-bit AVICAP)
  975. AVICAP32.DLL     (32-bit AVICAP)
  976. MSVFW32.DLL      (32-bit Video for Windows DLL - with VfW API)
  977. AVIFIL32.DLL     (32-bit AVIFILE)
  978.  
  979.  
  980. SUMMARY
  981.  
  982. Video for Windows 1.0 (Windows 3.x)
  983. Video for Windows 1.1 (a-e) (Windows 3.x)
  984. Video for Windows (Windows 95 - has 32-bit codecs and other 32-bit DLL's)
  985. Video for Windows (Windows NT 3.5, 3.51, and 4.0)
  986.  
  987. Quartz           (Betas of ActiveMovie) (Windows 95)
  988. ActiveMovie 1.0                         (Windows 95 and NT 4.0)
  989. ActiveMovie 2.0  (DirectShow)           (probably Windows 97/98/Memphis and NT 5.0)
  990.  
  991. <A HREF="#Top">Return to Top</A>
  992.  
  993. <A NAME="WAVE">
  994. <H2>WAVE</H2>
  995. </A>
  996.  
  997. The Microsoft Windows audio (sound) input/output system, commonly
  998. referred to as Wave or WAVE, predates Video for Windows, which is
  999. wrapped around WAVE in various ways.  The audio tracks in AVI files
  1000. are simply waveform audio (or WAV) data used by the wave system.
  1001. Video for Windows parses the AVI files, extracts the WAV data, and
  1002. pipes the WAV data to the WAVE system.  Video for Windows handles the
  1003. video track if present.
  1004.  
  1005. Traditionally, audio input and output devices such as Sound Blaster
  1006. Cards have a WAVE audio input/output driver to play WAV (waveform
  1007. audio) files.
  1008.  
  1009. The simplest waveform audio files consists of a header followed by
  1010. Pulse Coded Modulation (PCM) sound data, usually uncompressed 8 or 16
  1011. bit sound samples.  WAVE also provides a mechanism for audio codecs.
  1012. See elsewhere in the AVI Overview for further information on audio
  1013. codecs and audio compression.
  1014.  
  1015. WAVE is present in Windows 3.1 and Windows 95.  A different WAVE
  1016. system is present in Windows NT 3.5, 3.51, and 4.0 At least the
  1017. hardware device drivers for sound cards must be different in NT.
  1018.  
  1019. ActiveMovie appears to be replacing WAVE.
  1020.  
  1021. <A HREF="#Top">Return to Top</A>
  1022.  
  1023.  
  1024. <A NAME="Format">
  1025. <H2>What is the AVI File Format?</H2>
  1026. </A>
  1027.  
  1028.    AVI Files are a special case of RIFF files.  RIFF is
  1029. the Resource Interchange File Format.  This is a general
  1030. purpose format for exchanging multimedia data types
  1031. that was defined by Microsoft and IBM during their
  1032. long forgotten alliance.
  1033.  
  1034. Kevin McKinnon writes:
  1035.  
  1036. In fact, RIFF is a clone of the IFF format invented by Electronic Arts in 
  1037. 1984.  They invented the format for Deluxe Paint on the Amiga, and IFF 
  1038. quickly became the standard for interchange on that platform, 
  1039. maintained eventually by Commodore right up 'til it's demise.  EA also 
  1040. ported Deluxe Paint to the PC platform and brought IFF with it.
  1041.  
  1042. IFF even used the 4-character headers (FourCC), though at the time it was 
  1043. simply called a LONGWORD that some clever people decided to pair into 
  1044. four charcter because they looked good in #define's. ;)
  1045.  
  1046. RIFF is so close to IFF that the good IFF parser routines will (mostly) 
  1047. correctly parse RIFF files.
  1048.  
  1049. ----End of Kevin----
  1050.  
  1051. Further information on the IFF format is available at:
  1052.  
  1053. <A HREF="http://www.ipahome.com/gff/textonly/summary/iff.htm">http://www.ipahome.com/gff/textonly/summary/iff.htm</A>
  1054.  
  1055. <H3>RIFF Files</H3>
  1056.  
  1057.    RIFF files are built from 
  1058.  
  1059.     (1) RIFF Form Header
  1060.  
  1061.               'RIFF' (4 byte file size) 'xxxx' (data)
  1062.  
  1063.                   where 'xxxx' identifies the specialization (or form)
  1064.                   of RIFF.  'AVI ' for AVI files.
  1065.  
  1066.                   where the data is the rest of the file.  The 
  1067.                   data is comprised of chunks and lists.  Chunks
  1068.                   and lists are defined immediately below.
  1069.  
  1070.     (2) A Chunk
  1071.  
  1072.         (4 byte identifier) (4 byte chunk size) (data)
  1073.  
  1074.                 The 4 byte identifier is a human readable sequence
  1075.                 of four characters such as 'JUNK' or 'idx1'
  1076.  
  1077.     (3) A List
  1078.  
  1079.         'LIST' (4 byte list size) (4 byte list identifier) (data)
  1080.  
  1081.                         where the 4 byte identifier is a human readable
  1082.                         sequence of four characters such as 'rec ' or
  1083.                         'movi'
  1084.             
  1085.             where the data is comprised of LISTS or CHUNKS.
  1086.  
  1087. <H3>AVI File Format</H3>
  1088.  
  1089.     AVI is a specialization or "form" of RIFF, described below:
  1090.  
  1091.  
  1092. 'RIFF' (4 byte file length) 'AVI '   // file header (a RIFF form)
  1093.  
  1094. 'LIST' (4 byte list length) 'hdrl'   // list of headers for AVI file
  1095.  
  1096. The 'hdrl' list contains:
  1097.  
  1098. 'avih' (4 byte chunk size)  (data)   // the AVI header  (a chunk)
  1099.  
  1100. 'strl' lists of stream headers for each stream (audio, video, etc.) in
  1101. the AVI file.  An AVI file can contain zero or one video stream and
  1102. zero, one, or many audio streams.  For an AVI file with one video and
  1103. one audio stream:
  1104.  
  1105. 'LIST' (4 byte list length) 'strl'   // video stream list (a list)
  1106.  
  1107. The video 'strl' list contains:
  1108.  
  1109. 'strh' (4 byte chunk size)  (data)   // video stream header (a chunk)
  1110. 'strf' (4 byte chunk size)  (data)   // video stream format (a chunk)
  1111.  
  1112. 'LIST' (4 byte list length) 'strl'   // audio stream list (a list)
  1113.  
  1114. The audio 'strl' list contains:
  1115.  
  1116. 'strh' (4 byte chunk size)  (data)   // audio stream header (a chunk)
  1117. 'strf' (4 byte chunk size)  (data)   // audio stream format (a chunk)
  1118.  
  1119. 'JUNK' (4 byte chunk size) (data - usually all zeros) // an OPTIONAL junk chunk to align on 2K byte boundary
  1120.  
  1121. 'LIST' (4 byte list length) 'movi'   // list of movie data (a list)
  1122.  
  1123. The 'movi' list contains the actual audio and video data.   
  1124.  
  1125. This 'movi' list contains one or more ...
  1126.  'LIST' (4 byte list length) 'rec '  // list of movie records (a list)
  1127.  '##wb' (4 byte chunk size) (data)   // sound data (a chunk)
  1128.  '##dc' (4 byte chunk size) (data)   // video data (a chunk)
  1129.  '##db' (4 byte chunk size) (data)   // video data (a chunk)
  1130.  
  1131. A 'rec ' list (a record) contains the audio and video data for a single frame.
  1132.  '##wb' (4 byte chunk size)  (data)  // sound data (a chunk)
  1133.  '##dc' (4 byte chunk size)  (data)  // video data (a chunk)
  1134.  '##db' (4 byte chunk size)  (data)  // video data (a chunk)
  1135.  
  1136. The 'rec ' list may not be used for AVI files with only audio or only
  1137. video data.  I have seen video only uncompressed AVI files that did
  1138. not use the 'rec ' list, only '00db' chunks.  The 'rec ' list is used
  1139. for AVI files with interleaved audio and video streams.  The 'rec '
  1140. list may be used for AVI file with only video.
  1141.  
  1142.  ## in '##dc' refers to the stream number.  For example, video data chunks
  1143. belonging to stream 0 would use the identifier '00dc'.  A chunk of
  1144. video data contains a single video frame.
  1145.  
  1146. Alexander Grigoriev writes ...
  1147.  
  1148. John,
  1149.  
  1150. ##dc chunk was intended to keep compressed data, whereas ##db chunk
  1151. nad(sic) to be used for uncompressed DIBs (device independent bitmap),
  1152. but actually they both can contain compressed data. For example,
  1153. Microsoft VidCap (more precisely, video capture window class) writes
  1154. MJPEG compressed data in ##db chunks, whereas Adobe Premiere writes
  1155. frames compressed with the same MJPEG codec as ##dc chunks.
  1156.  
  1157. ----End of Alexander
  1158.  
  1159. The ##wb chunks contain the audio data.
  1160.  
  1161. The audio and video chunks in an AVI file do not contain 
  1162. time stamps or frame counts.  The data is ordered in time sequentially as
  1163. it appears in the AVI file.  A player application should display the
  1164. video frames at the frame rate indicated in the headers.  The
  1165. application should play the audio at the audio sample rate indicated
  1166. in the headers.  Usually, the streams are all assumed to start at
  1167. time zero since there are no explicit time stamps in the AVI file.
  1168.  
  1169. The lack of time stamps is a weakness of the original AVI file
  1170. format.  The OpenDML AVI Extensions add new chunks with time
  1171. stamps.  Microsoft's ASF (Advanced or Active Streaming Format), which
  1172. Microsoft claims will replace AVI, has time stamp "objects".
  1173.  
  1174. In principle, a video chunk contains a single frame of video.  By
  1175. design, the video chunk should be interleaved with an audio chunk
  1176. containing the audio associated with that video frame.  The data
  1177. consists of pairs of video and audio chunks.  These pairs may be
  1178. encapsulated in a 'REC ' list.  Not all AVI files obey this simple
  1179. scheme.  There are even AVI files with all the video followed by all
  1180. of the audio; this is not the way an AVI file should be made.
  1181.  
  1182.  The 'movi' list may be followed by:
  1183.  
  1184.  'idx1' (4 byte chunk size) (index data) // an optional index into movie (a chunk)
  1185.  
  1186.   The optional index contains a table of memory offsets to each
  1187. chunk within the 'movi' list.  The 'idx1' index supports rapid
  1188. seeking to frames within the video file.  
  1189.  
  1190.   The 'avih' (AVI Header) chunk contains the following information:
  1191.  
  1192.       Total Frames   (for example, 1500 frames in an AVI)
  1193.       Streams   (for example, 2 for audio and video together)
  1194.       InitialFrames
  1195.       MaxBytes
  1196.       BufferSize
  1197.       Microseconds Per Frame
  1198.       Frames Per Second   (for example, 15 fps)
  1199.       Size  (for example 320x240 pixels)
  1200.       Flags
  1201.  
  1202.   The 'strh' (Stream Header) chunk contains the following information:
  1203.  
  1204.       Stream Type  (for example, 'vids' for video  'auds' for audio)
  1205.       Stream Handler  (for example, 'cvid' for Cinepak)
  1206.       Samples Per Second  (for example 15 frames per second for video)
  1207.       Priority
  1208.       InitialFrames
  1209.       Start
  1210.       Length  (for example, 1500 frames for video)
  1211.       Length (sec)   (for example 100 seconds for video)
  1212.       Flags
  1213.       BufferSize
  1214.       Quality
  1215.       SampleSize
  1216.  
  1217.    For video, the 'strf' (Stream Format) chunk contains the following 
  1218. information:
  1219.  
  1220.       Size  (for example 320x240 pixels)
  1221.       Bit Depth (for example 24 bit color)
  1222.       Colors Used  (for example 236 for palettized color)
  1223.       Compression  (for example 'cvid' for Cinepak)
  1224.  
  1225.    For audio, the 'strf' (Stream Format) chunk contains the following
  1226. information:
  1227.  
  1228.       wFormatTag           (for example, WAVE_FORMAT_PCM)
  1229.       Number of Channels   (for example 2 for stereo sound)
  1230.       Samples Per Second   (for example 11025)
  1231.       Average Bytes Per Second   (for example 11025 for 8 bit sound)
  1232.       nBlockAlign
  1233.       Bits Per Sample      (for example 8 or 16 bits)
  1234.  
  1235.   Each 'rec ' list contains the sound data and video data for a single
  1236. frame in the sound data chunk and the video data chunk.  
  1237.  
  1238.   Other chunks are allowed within the AVI file.  For example, I have
  1239. seen info lists such as
  1240.  
  1241.     'LIST' (4 byte list size) 'INFO' (chunks with information on video)
  1242.  
  1243.   These chunks that are not part of the AVI standard are simply
  1244. ignored by the AVI parser.  AVI can be and has been extended by adding
  1245. lists and chunks not in the standard.  The 'INFO' list is a registered
  1246. global form type (across all RIFF files) to store information that
  1247. helps identify the contents of a chunk.
  1248.  
  1249.   The sound data is typically 8 or 16 bit PCM, stereo or mono,
  1250. sampled at 11, 22, or 44.1 KHz.  Traditionally, the sound has
  1251. typically been uncompressed Windows PCM.  With the advent of
  1252. the WorldWide Web and the severe bandwidth limitations of the
  1253. Internet, there has been increasing use of audio codecs.  The
  1254. wFormatTag field in the audio 'strf' (Stream Format) chunk
  1255. identifies the audio format and codec.
  1256.  
  1257. <A NAME="OpenDML">
  1258. <H3>OpenDML AVI File Format Extensions</H3>
  1259. </A>
  1260.  
  1261.   The Open Digital Media (OpenDML) Consortium has defined an OpenDML
  1262. AVI File Format Extensions which extend AVI to support a variety of
  1263. features required for professional video production.  These include
  1264. support for fields (not just frames), file sizes larger than 1 GB,
  1265. timecodes, and many other features.  Microsoft has reportedly
  1266. incorporated OpenDML AVI support in DirectShow 5.1 (ActiveMovie 5.1).
  1267. It is also used by various professional video applications for the PC,
  1268. in particular Matrox's DigiSuite software.
  1269.  
  1270.   The Open Digital Media Consortium AVI File Format Extensions 
  1271. add new lists and chunks to the AVI file which contain extra
  1272. data such as timecodes not incorporated in the original AVI
  1273. standard.  
  1274.  
  1275.   OpenDML appears to have been spearheaded by Matrox to improve AVI
  1276. for professional video authoring and editing.  Matrox makes a variety
  1277. of PC video products such as DigiSuite for professional and broadcast
  1278. video authoring and editing.  The OpenDML AVI File Format Extensions
  1279. are primarily for the Motion JPEG AVI files used for professional
  1280. video authoring and editing.  The OpenDML effort seems to have been
  1281. pushed to one side with the advent of ActiveMovie, NetShow, Advanced
  1282. (formerly Active) Streaming Format (ASF) Files, and other Microsoft
  1283. initiatives.
  1284.  
  1285.   On Oct. 2, 1997, the OpenDML AVI File Format Extensions Version 1.02
  1286. specification document (dated February 28, 1996) was available at
  1287. the Matrox Electronic Systems, Ltd. Web site at:
  1288.  
  1289. <A HREF="http://www.matrox.com/videoweb/odmlff2.htm">http://www.matrox.com/videoweb/odmlff2.htm</A>
  1290.  
  1291. The specification is in Adobe Portable Document Format (PDF).  Since
  1292. Matrox seems to rearrange their site from time to time and one can't
  1293. always find the specification, I've included a link to a copy of the PDF
  1294. version of the specification on my Web site.
  1295.  
  1296. <A HREF="http://www.rahul.net/jfm/odmlff2.pdf">PDF OpenDML AVI File Format Extensions Specification Document</A>
  1297.  
  1298. <A HREF="http://www.adobe.com/prodindex/acrobat/readstep.html">Get Adobe Acrobat Reader (PDF Viewer)</A>
  1299.  
  1300. <A NAME="AVISpec">
  1301. <H3>Where to get the exact AVI specification?</H3>
  1302. </A>
  1303.  
  1304. Microsoft Visual C++ 5.0 has a Video for Windows include
  1305. file Vfw.h which gives the exact AVI data structures such as
  1306. the various headers used in AVI files.  The file also has
  1307. comments explaining the structure of the AVI file.
  1308.  
  1309. Video for Windows refers to the AVI Format by the mnemonic
  1310. AVIFMT.  At one time, the format information was apparently
  1311. stored in an AVIFMT.H header file.  The format 
  1312. information now appears consolidated in Vfw.h
  1313.  
  1314. In addition to the Video for Windows header files, Chapter Four of the
  1315. Video for Windows Programmer's Guide, "AVI Files", gives a detailed
  1316. specification of the AVI file format.
  1317.  
  1318. <A HREF="#Top">Return to Top</A>
  1319.    
  1320. <A NAME="AVIDIB">
  1321. <H2>AVI and Windows Bitmaps (DDB, DIB, ...)</H2>
  1322. </A>
  1323.  
  1324. Microsoft Windows represents bitmapped images internally and in files
  1325. as Device Dependent Bitmaps (DDB), Device Independent Bitmaps (DIB), and
  1326. DIB Sections.  Uncompressed 'DIB ' AVI files represent video frames as
  1327. DIB's.  Various multimedia API's that work with AVI use Windows
  1328. bitmapped images.
  1329.  
  1330. Prior to Windows 3.0, Windows relied on Device Dependent Bitmaps for
  1331. bitmapped images.  A DDB is stored in a format understood by the
  1332. device driver for a particular video card.  As the name suggests, DDB's
  1333. are not generally portable.
  1334.  
  1335. The structure of a DDB is:
  1336.  
  1337. typedef struct tagBITMAP {  // bm 
  1338.    LONG   bmType;       /* always zero */
  1339.    LONG   bmWidth;      /* width in pixels */
  1340.    LONG   bmHeight;     /* height in pixels */
  1341.    LONG   bmWidthBytes; /* bytes per line of data */
  1342.    WORD   bmPlanes;     /* number of color planes */
  1343.    WORD   bmBitsPixel;  /* bits per pixel */
  1344.    LPVOID bmBits;       /* pointer to the bitmap pixel data */
  1345. } BITMAP; 
  1346.  
  1347. Usually the pixel data immediately follows the BITMAP header.
  1348.  
  1349. (BITMAP header)(Pixel Data)
  1350.  
  1351. The HBITMAP handles used by GDI are handles to Device Dependent Bitmaps.
  1352. The GDI function BitBlt and StretchBlt are actually using Device
  1353. Dependent Bitmaps.
  1354.  
  1355. With Windows 3.0, Microsoft introduced the Device Independent Bitmap or
  1356. DIB, the reigning workhorse of bitmapped images under Windows.  The DIB
  1357. provided a device independent way to represent bitmapped images, both
  1358. monochrome and color.
  1359.  
  1360. Windows retains DDB's despite the introduction of the DIB.  For
  1361. example, to use a DIB, you might call:
  1362.  
  1363. hBitmap = CreateDIBitmap(...)
  1364.  
  1365. CreateDIBitmap creats a DDB from a DIB, returning the GDI HBITMAP
  1366. handle of the DDB for further GDI calls.  At a low level, Windows
  1367. and GDI are still using DDB's.
  1368.  
  1369. The DIB files have a standard header that identifies the format, size,
  1370. color palette (if applicable) of the bitmapped image.  The header
  1371. is a BITMAPINFO structure.
  1372.  
  1373. typedef struct tagBITMAPINFO {
  1374.     BITMAPINFOHEADER    bmiHeader;
  1375.     RGBQUAD             bmiColors[1];
  1376. } BITMAPINFO;
  1377.  
  1378. The BITMAPINFOHEADER is a structure of the form:
  1379.  
  1380. typedef struct tagBITMAPINFOHEADER{ // bmih 
  1381.    DWORD  biSize; 
  1382.    LONG   biWidth; 
  1383.    LONG   biHeight; 
  1384.    WORD   biPlanes; 
  1385.    WORD   biBitCount 
  1386.    DWORD  biCompression; /* a DIB can be compressed using run length encoding */
  1387.    DWORD  biSizeImage; 
  1388.    LONG   biXPelsPerMeter; 
  1389.    LONG   biYPelsPerMeter; 
  1390.    DWORD  biClrUsed; 
  1391.    DWORD  biClrImportant; 
  1392. } BITMAPINFOHEADER; 
  1393.  
  1394. bmiColors[1] is the first entry in an optional color palette or color
  1395. table of RGBQUAD data structures.  True color (24 bit RGB) images
  1396. do not need a color table.  4 and 8 bit color images use a color table.
  1397.  
  1398. typedef struct tagRGBQUAD { // rgbq 
  1399.     BYTE    rgbBlue; 
  1400.     BYTE    rgbGreen; 
  1401.     BYTE    rgbRed; 
  1402.     BYTE    rgbReserved; /* always zero */
  1403. } RGBQUAD; 
  1404.  
  1405. A DIB consists of
  1406.  
  1407.     (BITMAPINFOHEADER)(optional color table of RGBQUAD's)(data for the
  1408. bitmapped image)
  1409.  
  1410. A Windows .BMP file is a DIB stored in a disk file.  .BMP files prepend
  1411. a BITMAPFILEHEADER to the DIB data structure.
  1412.  
  1413. typedef struct tagBITMAPFILEHEADER { // bmfh 
  1414.         WORD    bfType;  /* always 'BM' */
  1415.         DWORD   bfSize;  /* size of bitmap file in bytes */
  1416.         WORD    bfReserved1; /* always 0 */
  1417.         WORD    bfReserved2; /* always 0 */
  1418.         DWORD   bfOffBits;   /* offset to data for bitmap */
  1419. } BITMAPFILEHEADER; 
  1420.  
  1421. Structure of Data in a .BMP File
  1422.  
  1423. (BITMAPFILEHEADER)(BITMAPINFOHEADER)(RGBQUAD color table)(Pixel Data)
  1424.  
  1425. The Win32 API documentation from Microsoft provides extensive 
  1426. information on the data structures in a DIB.
  1427.  
  1428. In Windows 95 and Windows NT, Microsoft added the DIBSection to 
  1429. provide a more efficient way to use DIB's in programs.  The DIBSection
  1430. was originally introduced in Windows NT to reduce the number of
  1431. memory copies during blitting (display) of a DIB. 
  1432.  
  1433. <A HREF="#Top">Return to Top</A>
  1434.  
  1435. <A NAME="Codec">
  1436. <H2>Meet the Codecs</H2>
  1437. </A>
  1438.  
  1439. The video data in an AVI file can be formatted and compressed in
  1440. a variety of ways.  Video for Windows 1.1e comes with several 
  1441. compressors:
  1442.  
  1443. Intel Indeo (version 3.2)
  1444.  
  1445. Microsoft Video 1
  1446.  
  1447. Microsoft RLE (Run Length Encoding)
  1448.  
  1449. Cinepak
  1450.  
  1451.  
  1452. AVI is not restricted to these compressors.  They
  1453. are the compressors provided with Video for Windows.
  1454.  
  1455. These compressors are the Old Guard, the video codecs
  1456. from the early days of Video for Windows and QuickTime (Cinepak originated
  1457. with the Macintosh and QuickTime).  During this period the
  1458. focus of video was playback from hard drives and CD-ROM's.
  1459.  
  1460. The advent of the WorldWide Web and Internet Mania
  1461. has created a New Wave of audio and video codecs, trying to
  1462. apply "advanced" technologies such as sophisticated motion
  1463. estimation and compensation, wavelets, fractals, and other
  1464. techniques to achieve extremely low bitrates (such as 
  1465. 28.8 Kbits/second for phone lines) for the Internet.
  1466.  
  1467. <H3>The Old Guard</H3>
  1468.  
  1469. <A NAME="DIB">
  1470. <H4>Full Frames (Uncompressed)</H4>
  1471. </A>
  1472.  
  1473. Users can store AVI files with uncompressed frames.  No codec is
  1474. required for this.
  1475.  
  1476. The Four Character Code (FOURCC) for this is 'DIB ', DIB for
  1477. the Microsoft Device Independent Bitmap.
  1478.  
  1479. NOTE: Unfortunately, at least three other Four Character Codes are
  1480. somtimes used for uncompressed AVI videos:
  1481.  
  1482. 'RGB '
  1483. 'RAW '
  1484. 0x00000000   ( a FOURCC whose hexadecimal value is 0 )
  1485.  
  1486. <A NAME="ColorFormats">
  1487. <H5>Color Formats</H5>
  1488. </A>
  1489.  
  1490. Not all uncompressed bitmap images and AVI frames are the same!
  1491. A variety of color formats for image pixels exist.  Some of these
  1492. color formats are essentially standard and supported on all systems.
  1493. Some color formats (such as 8 bit grayscaleY8) require special
  1494. drivers to display or capture.
  1495.  
  1496. Color Formats are also known as IMAGE FORMATS or PIXEL FORMATS.  Some
  1497. components of Microsoft Windows identify Color Formats with a Four
  1498. Character Code (FOURCC) such as 'RGB8' or 'YUY2'.  Some components such
  1499. as the Windows Device Independent Bitmap or DIB do not use Four Character
  1500. Codes for color formats.
  1501.  
  1502. 24 BIT RGB   (DE FACTO STANDARD)
  1503.  
  1504. 24-bit RGB is the most well-known color format.  All common graphics
  1505. programs support 24-bit RGB.  In 24 bit
  1506. RGB a pixel is represented as three bytes, one byte for the red
  1507. component, one byte for the green component, and one byte for
  1508. the blue component.  
  1509.  
  1510. 255 0   0    (a bright red pixel in 24 bit RGB)
  1511. 0   255 0    (a bright green pixel in 24 bit RGB)
  1512. 0   0   255  (a bright blue pixel in 24 bit RGB)
  1513. 0   0   0    (a black pixel in 24 bit RGB)
  1514. 255 255 255  (a white pixel in 24 bit RGB)
  1515. 128 128 128  (a gray pixel in 24 bit RGB)
  1516.  
  1517. ... and so forth.
  1518.  
  1519.  
  1520. Other color formats include:
  1521.  
  1522. 8 bit grayscale Y8
  1523. 9 bit YUV9
  1524. 12 bit BTYUV  4:1:1
  1525. 12 bit YUY12   
  1526. 16 bit YUY2   4:2:2
  1527. 8 bit RGB    (uses a color palette)
  1528. 15 bit RGB   (16 bits with most significant bit zero, 5 bits for red, 5 bits for green, and 5 bits for blue)
  1529. 16 bit RGB   (16 bits with 5 bits for red, 6 bits for green, and 5 bits for blue)
  1530. (24 bit RGB - described above)
  1531. 32 bit RGB   (most significant byte is zero, 8 bits for red, 8 bits for green, and 8 bits for blue)
  1532.  
  1533. <H6>Original DIB Color Formats</H6>
  1534.  
  1535. In the Windows 3.1 Software Development Kit, DIB's were defined to
  1536. allow values of 1,4,8, and 24 bits per pixel in the biBitCount
  1537. field of the BITMAPINFOHEADER.  The biCompression field was allowed
  1538. the values BI_RGB, BI_RLE4 (for run length encoding of 4 bit per pixel
  1539. images), and BI_RLE8 (for run length encoding of 8 bit per pixel
  1540. images).  That was it.  This original specification of the DIB
  1541. provided the 8 bit RGB and 24 bit RGB color formats described 
  1542. above.  
  1543.  
  1544. The original DIB specification had no support for 16 bit per pixel
  1545. formats, 32 bit per pixel formats, or special encodings like YUV.
  1546. Not surprisingly, the original formats and specification of the DIB
  1547. are the most widely supported in software.
  1548.  
  1549. <H6>New DIB Color Formats and More Complexity</H6>
  1550.  
  1551. Microsoft added support for 16 bit per pixel and 32 bit per pixel
  1552. images to the DIB specification.  These formats are identified by
  1553. setting the biBitCount field in the BITMAPINFOHEADER of the DIB to 16 or
  1554. 32.  An uncompressed AVI file that stores images using the RGB 15, RGB
  1555. 16, or RGB 32 color formats stores the video frames as DIB's using
  1556. these "new" color formats.
  1557.  
  1558. By default, the Microsoft 16 bit per pixel format is actually RGB 15
  1559. where one bit is unused, 5 bits for red, 5 bits for green, and 5 bits
  1560. for blue.  This was done because the 15-bit RGB or 5-5-5 format was
  1561. used in 16-bit-per-pixel color video cards.  Hardware designers found
  1562. it easier to build chips using a 5-5-5 pixel format with one bit
  1563. unused than the slightly higher resolution 5-6-5 color format.
  1564.  
  1565. The Microsoft 32 bit per pixel format has the most significant byte of
  1566. the pixel set to zero.  Then 8 bits for red, 8 bits for green, and 8
  1567. bits for blue.  This is RGB 32 bit.  Why do this?  The 32-bit pixels
  1568. in this format are DWORD aligned on 32 bit boundaries in this format
  1569. which is more efficient for operations and memory transfers under a 32
  1570. bit processor architecture than the unaligned 24-bit RGB format.
  1571.  
  1572. Microsoft also added a new value for the biCompression field of the
  1573. BITMAPINFOHEADER called BI_BITFIELDS.  If biCompression is set
  1574. to BI_BITFIELDS, then the color table is three DWORD (32 bit)
  1575. masks giving the bits used for the red, green, and blue components
  1576. of a pixel.  In this way, a "custom" format such as RGB 5-6-5 (5 bits
  1577. for Red, 6 bits for Green, and 5 bits for Blue) can be defined.  This
  1578. is 16-bit RGB.
  1579.  
  1580. Although Four Character Codes (FOURCC's) such as 'RGB8' are used to
  1581. identify different Color Formats in some parts of Microsoft Windows,
  1582. the DIB data structures don't use FOURCC's, rather they use combinations
  1583. of biBitCount and biCompression.
  1584.  
  1585. In addition to 16-bit and 32-bit formats, Microsoft also defined a
  1586. mechanism for custom encodings such as YUV, YUY2, and so forth.
  1587. Manufacturers can register the new format with Microsoft.  Microsoft
  1588. also concocted a JPEG-DIB specification for wrapping the JPEG still
  1589. image compression standard in a DIB.  The JPEG DIB specification is
  1590. virtually unused, having lost to the JFIF JPEG file format.  JPEG
  1591. images in general use, such as on Web pages, are JFIF's not JPEG
  1592. DIB's.
  1593.  
  1594. <H6>YUV Color Space and Color Formats</H6>
  1595.  
  1596. YUV is the color space used in the European PAL broadcast television
  1597. standard.  PAL was originally introduced in Britain and Germany in 
  1598. 1967.  PAL is used by most European nations and many nations around
  1599. the world.  The United States and Japan use the NTSC standard.  France
  1600. and a few other nations use the SECAM standard.
  1601.  
  1602. Y refers to the luminance, a weighted sum of the red, green, and blue
  1603. components.  The human visual system is most sensitive to the luminance
  1604. component of an image.  Analog video systems such as NTSC, PAL, and 
  1605. SECAM transmit color video signals as a luminance (Y) signal and
  1606. two color difference or chrominance signals (the U and V above).
  1607.  
  1608. If, R, G, and B are the red, green, and blue values, then:
  1609.  
  1610. Y = 0.299 R + 0.587 G + 0.114 B
  1611.  
  1612. U = 0.493 (B - Y)
  1613.  
  1614. V = 0.877 (R - Y)
  1615.  
  1616. U is very similar to the difference between the blue and yellow
  1617. components of a color image.  V is very similar to the difference
  1618. between the red and green components of a color image.  There is
  1619. evidence that the human visual system processes color information
  1620. into something like a luminance channel, a blue - yellow
  1621. channel, and a red - green channel.  For example, while we
  1622. perceive blue-green hues, we never percieve a hue that is
  1623. simultaneously blue and yellow.  This may be why the YUV 
  1624. color space of PAL is so useful.
  1625.  
  1626. To exploit this, digital color formats such as YUV9 or YUY2
  1627. exist that represent pixels as levels of Y, U, and V.
  1628.  
  1629. <H6>Summary</H6>
  1630.  
  1631. Both BMP still image files and AVI files may be saved in many
  1632. different color formats.  While 24 bit RGB is almost universally
  1633. supported, there is no guarantee that your graphics software or
  1634. AVI playback drivers will support some of the less well-known
  1635. color formats.  You may need to get special software, drivers, or
  1636. even hardware to use some of these formats.
  1637.  
  1638. For example, all of the color formats listed above are supported by
  1639. hardware and software drivers with the miro miroMEDIA PCTV TV Tuner
  1640. and Video Capture card.  Some of these, like 8 bit grayscale Y8, are
  1641. not widely known or supported.
  1642.  
  1643. In general, video capture drivers allow selection of the color
  1644. format used when the video (AVI file) is captured.  These color
  1645. format options should be accessible through the video capture software
  1646. application.
  1647.  
  1648. In Microsoft's VidCap and VidCap32 video capture applications, the
  1649. user may select the color format through Options | Video Format...
  1650.  
  1651. <A HREF="#Top">Return to Top</A>
  1652.  
  1653.  
  1654. <A NAME="MRLE">
  1655. <H4>Microsoft Run Length Encoding</H4>
  1656. </A>
  1657.  
  1658. Microsoft Run Length Encoding uses the Four Character Code MRLE
  1659.  
  1660. [drivers32]
  1661. VIDC.MRLE=MSRLE32.DLL
  1662.  
  1663. in Windows 95
  1664.  
  1665. [drivers]
  1666. VIDC.MRLE=MSRLE.DLL
  1667.  
  1668. in Windows 3.x
  1669.  
  1670. Microsoft Run Length Encoding usually appears with the 
  1671. name "Microsoft RLE" in lists of Video Compression options.
  1672.  
  1673. 8 BIT ONLY
  1674.  
  1675. Microsoft RLE only supports 8 bit color, a maximum of 256 colors using
  1676. a color lookup table.  It does NOT support 16 bit color, also known as
  1677. "High Color" or "Thousands of Colors", or 24 bit color, also known as
  1678. "True Color" or "Millions of Colors".
  1679.  
  1680. WHERE TO GET Microsoft RLE
  1681.  
  1682. Historically, Microsoft RLE has been one of the standard Video for
  1683. Windows codecs from Microsoft.
  1684.  
  1685. The 16 bit Microsoft Video for Windows 1.1e installs a 16 bit
  1686. version of the Microsoft RLE video codec.
  1687.  
  1688. The Microsoft Windows 95 CD-ROM installs a 32 bit Microsoft
  1689. RLE video codec.
  1690.  
  1691. The Microsoft Windows NT Workstation Operating System Version 4.0
  1692. installs a 32 bit Microsoft RLE video codec.
  1693.  
  1694. <A HREF="#Top">Return to Top</A>
  1695.  
  1696. <A NAME="MSVC">
  1697. <H4>Microsoft Video 1</H4>
  1698. </A>
  1699.  
  1700. Microsoft Video uses the Four Character Code MSVC
  1701.  
  1702. [drivers32]
  1703. VIDC.MSVC=MSVIDC32.DLL
  1704.  
  1705. in Windows 95
  1706.  
  1707. [drivers]
  1708. VIDC.MSVC=MSVIDC.DLL
  1709.  
  1710. in Windows 3.x
  1711.  
  1712. <B>NOTE:</B>  The Four Character Code CRAM is also used for Microsoft Video 1.
  1713.  
  1714. 8 OR 16 BIT ONLY
  1715.  
  1716. Microsoft Video 1 supports only 8 bit or 16 bit color.  16 bit color is
  1717. also known as "High Color" or "Thousands of Colors".  Microsoft Video 1
  1718. does not support 24 bit color, also known as "True Color" or "Millions of
  1719. Colors".
  1720.  
  1721. WHERE TO GET Microsoft Video 1
  1722.  
  1723. Historically, Microsoft Video 1 has been one of the standard
  1724. Video for Windows codecs from Microsoft.
  1725.  
  1726. The 16 bit Microsoft Video for Windows 1.1e installs a 16 bit
  1727. version of the Microsoft Video 1 video codec.
  1728.  
  1729. The Microsoft Windows 95 CD-ROM installs a 32 bit version of the
  1730. Microsoft Video 1 video codec.
  1731.  
  1732. The Microsoft Windows NT Workstation Operating System 4.0 CD-ROM
  1733. installs a 32 bit version of the Microsoft Video 1 video codec.
  1734.  
  1735. <A HREF="#Top">Return to Top</A>
  1736.  
  1737. <A NAME="RT21">
  1738. <H4>Intel Real Time Video 2.1 (Indeo 2.1?) (RT21) </H4>
  1739. </A>
  1740.  
  1741. RT21 is the Microsoft Four Character Code for the Intel Real Time
  1742. Video 2.1 (Indeo 2.1?) video compressor-decompressor (codec).
  1743. Microsoft's 16-bit Video for Windows Version 1.1e for Windows 3.x
  1744. includes a 16-bit Video for Windows codec for RT21.
  1745.  
  1746. WHERE TO GET Intel Real Time Video 2.1
  1747.  
  1748. Microsoft appears to have discontinued support for RT21 in the
  1749. 32-bit Video for Windows in Windows 95 and Windows NT 4.0.  There are
  1750. 32-bit Video for Windows codecs for Indeo 3.1/3.2, Indeo 4.x, and
  1751. Indeo 5.0.  
  1752.  
  1753. For example, the Microsoft Windows NT Workstation Operating System
  1754. Version 4.0 CD-ROM DOES NOT install RT21.  It DOES install Intel
  1755. Indeo R 3.2
  1756.  
  1757. See the <A HREF="#VfW16">Where to get the 16-bit Video for Windows</A>
  1758. section.
  1759.  
  1760. <A HREF="#Top">Return to Top</A>
  1761.  
  1762. <A NAME="IV32">
  1763. <H4>Intel Indeo 3.1/3.2</H4>
  1764. </A>
  1765.  
  1766. Indeo uses the Microsoft Four Character Codes IV31 and IV32,
  1767. originally for Indeo 3.1 and Indeo 3.2, but these are usually now
  1768. mapped to Indeo 3.2
  1769.  
  1770. [drivers32]
  1771. VIDC.IV31=IR32_32.DLL
  1772. VIDC.IV32=IR32_32.DLL
  1773.  
  1774. in Windows 95
  1775.  
  1776. [drivers]
  1777. VIDC.IV31=IR32.DLL
  1778. VIDC.IV32=IR32.DLL
  1779.  
  1780. in Windows 3.x
  1781.  
  1782. Indeo 3.x uses Vector Quantization based image compression.
  1783.  
  1784. WHERE TO GET INDEO 3.x
  1785.  
  1786. Indeo R3.2 is one of the default standard Video for Windows codecs.
  1787.  
  1788. Microsoft's 16 bit Video for Windows 1.1e includes a 16 bit Indeo 3.2
  1789. codec (the IR32.DLL above).
  1790.  
  1791. The Microsoft Windows 95 CD-ROM installs a 32 bit Indeo 3.2 video codec.
  1792.  
  1793. Microsoft Windows NT Workstation Operating System 4.0 CD-ROM installs
  1794. a 32 bit Indeo R3.2 video codec.
  1795.  
  1796.  
  1797. <A HREF="#Top">Return to Top</A>
  1798.  
  1799. <A NAME="CVID">
  1800. <H4>Cinepak</H4>
  1801. </A>
  1802.  
  1803. Cinepak is the most widely used Video for Windows codec.  Cinepak
  1804. reportedly provides the fastest playback of video.  While Indeo 3.2
  1805. provides similar or slightly superior image quality for same
  1806. compression, Indeo decompression is much more CPU intensive than
  1807. Cinepak.  Cinepak was originally developed for the Mac and licensed to
  1808. Apple by SuperMac Technology Inc.  It is now free with Video for
  1809. Windows.  It is also free with Apple's QuickTime.
  1810.  
  1811. There are at least three Cinepak Video for Windows codecs in existence:
  1812.  
  1813.              Cinepak by SuperMac    (the original, 16 bit)
  1814.              Cinepak by Radius      (newer, better?, 16 bit)
  1815.              Cinepak by Radius[32]  (32 bit version of Radius Cinepak, shipped with Windows 95)
  1816.  
  1817. Peter Plantec's Caligari TrueSpace2 Bible strongly recommends using
  1818. the Radius codec for superior results when generating AVI files from
  1819. TrueSpace.
  1820.  
  1821. Cinepak uses the Microsoft Four Character Code CVID
  1822.  
  1823. [drivers32]
  1824. VIDC.CVID=ICCVID.DLL
  1825.  
  1826. in Windows 95
  1827.  
  1828. [drivers]
  1829. VIDC.CVID=ICCVID.DRV
  1830.  
  1831. in Windows 3.x
  1832.  
  1833. Apple QuickTime supports Cinepak.
  1834. Mark Podlipec's XAnim Unix X11 video player supports Cinepak.
  1835.  
  1836. Cinepak uses Vector Quantization based image compression and frame
  1837. differencing.
  1838.  
  1839. Historical Note: On or about Jan. 6, 1999, Radius Inc. renamed itself
  1840. Digital Origin Inc..  SuperMac Technology, the original owner
  1841. of Cinepak, was a predecessor to Radius.  
  1842.  
  1843. WHERE TO GET CINEPAK
  1844.  
  1845. Cinepak is one of the default standard video codecs in Video for Windows.
  1846.  
  1847. A 16-bit version of Cinepak is included in the 16 bit Video for Windows 1.1e
  1848.  
  1849. The Microsoft Windows 95 CD-ROM installs a 32 bit Cinepak by Radius video
  1850. codec.
  1851.  
  1852. Microsoft Windows NT Workstation Operating System Version 4.0 CD-ROM installs
  1853. a 32 bit Cinepak by Radius video codec.
  1854.  
  1855. CINEPAK PRO
  1856.  
  1857. Compression Technologies Inc.
  1858. Oakland, CA
  1859. <A HREF="mailto:info@cinepak.com">E-Mail: info@cinepak.com</A>
  1860. <A HREF="http://www.Cinepak.com/">http://www.Cinepak.com/</A>
  1861.  
  1862. sells an improved Cinepak compressor that purportedly can fix
  1863. some common problems with video encoded with Cinepak.  They
  1864. say their product, CinepakPro, generates 100 percent completely
  1865. Cinepak compatible movies.  These movies will play back using all
  1866. existing native Cinepak decompressors.
  1867.  
  1868. CinepakPro and Cinepak Toolkit  (Macintosh OS 7.5 or newer and 
  1869.                                  QuickTime 2.5 or 3)
  1870.  
  1871. CinepakPro QTX                  (Windows 95/98/NT and QuickTime 3.0 for Windows)
  1872.  
  1873. CinepakPro AVI                  (Windows 95/98/NT and Video for Windows/
  1874.                                  ActiveMovie)
  1875.  
  1876. An updated AVI Cinepak codec for Windows is available at the 
  1877. Compression Technologies Inc. Web site (May 12, 1999).
  1878.  
  1879. <A HREF="#VQ">Vector Quantization</A>
  1880.  
  1881. <A HREF="#Top">Return to Top</A>
  1882.  
  1883. <A NAME="MJPG">
  1884. <H4>Motion JPEG</H4>
  1885. </A>
  1886.  
  1887. Most PC video capture and editing systems capture video to AVI
  1888. files using Motion JPEG video compression.  In Motion JPEG, each
  1889. video frame is compressed separately using the JPEG still image
  1890. compression standard.  No frame differencing or motion estimation
  1891. is used to compress the images.  This makes frame accurate 
  1892. editing without any loss of image quality during the editing
  1893. possible.
  1894.  
  1895. The standards situation for Motion JPEG is complicated since
  1896. at one time there was no industry standard for Motion JPEG.  
  1897. Microsoft has a Microsoft Motion JPEG Codec and a JPEG DIB
  1898. Format.  The OpenDML Avi File Format Extensions (another
  1899. standard for extending AVI to support professional video
  1900. features) includes Motion JPEG support.  See the Paradigm
  1901. Matrix site below for more information on these standards.
  1902.  
  1903. Motion JPEG codecs usually use the Four Character Code 'MJPG'.
  1904.  
  1905. Motion JPEG is used for editing and authoring, but rarely for 
  1906. distribution.  Usually, once the video has been edited, it is
  1907. compressed further using Cinepak or another codec for distribution.
  1908. Because Motion JPEG does not use frame differencing or motion
  1909. estimation, better compression is possible with other codecs.
  1910.  
  1911. A software Motion JPEG codec for Windows NT and Windows 95 is available 
  1912. from Paradigm Matrix at:
  1913.  
  1914. <A HREF="http://www.pmatrix.com/Goodies.htm">http://www.pmatrix.com/Goodies.htm</A>
  1915.  
  1916. The Paradigm Matrix Motion JPEG codec uses the Four Character Code
  1917. MJPG.
  1918.  
  1919. A 32-bit software Motion JPEG codec for Windows NT and Windows 95 is
  1920. available from Morgan Multimedia at:
  1921.  
  1922. <A HREF="http://www.morgan-multimedia.com/">http://www.morgan-multimedia.com/</A>
  1923.  
  1924. A 32-bit software Motion JPEG codec for processors with MMX instructions
  1925. (MainConcept Motion JPEG Codec) is available from MainConcept at:
  1926.  
  1927. <A HREF="http://www.mainconcept.com/">http://www.mainconcept.com/</A>
  1928.  
  1929. Motion JPEG uses the Block Discrete Cosine Transform (DCT) for
  1930. image compression.
  1931.  
  1932. <A HREF="#Top">Return to Top</A>
  1933.  
  1934. <A NAME="XMPG">
  1935. <H4>Editable MPEG</H4>
  1936. </A>
  1937.  
  1938. At least two companies defined schmes to wrap editable MPEG (I frames
  1939. only MPEG) in AVI files.  Xing Technology's editable MPEG AVI uses
  1940. the Four Character Code XMPG.  Sigma Designs defined an AVI format
  1941. using the Four Character Code MPGI.
  1942.  
  1943. Editable MPEG consists of only MPEG I frames.  This omits the MPEG
  1944. motion estimation.  It is very similar to Motion JPEG.  By wrapping
  1945. I frames only MPEG in AVI, editable MPEG works with standard Video for
  1946. Windows editing and authoring applications such as Adobe Premiere.
  1947.  
  1948. Xing Technologies
  1949. <A HREF="http://www.xingtech.com/">http://www.xingtech.com/</A>
  1950.  
  1951. Sigma Designs
  1952. <A HREF="http://www.graphcomp.com/info/specs/ms/editmpeg.htm">MPEG Extensions to AVI File 
  1953. Format (Draft 1.1 by Sigma Designs)</A>
  1954.  
  1955. <A HREF="#Top">Return to Top</A>
  1956.  
  1957. <H3>The New Wave</H3>
  1958.  
  1959. Recently (5/18/97), there has been a proliferation of new Video for
  1960. Windows codecs.  A few like H.261 have been around for a while, but
  1961. most represent implementations of new or improved technologies such as
  1962. wavelets.  Many are targetted toward low bitrate video over the
  1963. Internet.  For lack of better terminology, I refer to these as the New
  1964. Wave to differentiate them from the older codecs like Cinepak included
  1965. with Video for Windows 1.1e (the last release prior to Windows 95).
  1966.  
  1967. Microsoft appears to be developing or licensing some of these codecs as part of
  1968. NetShow, NetMeeting, and other Microsoft initiatives.
  1969.  
  1970. <A NAME="VDOW">
  1971. <H4>VDOWave or VDOLive from VDONet</H4>
  1972. </A>
  1973.  
  1974. VDONet <A HREF="http://www.vdo.net/">http://www.vdo.net/</A>
  1975. 4009 Miranda Ave., Suite 250
  1976. Palo Alto, CA  94304
  1977. Voice: (415) 846-7730
  1978. FAX: (415) 846-7900
  1979.  
  1980. markets a wavelet based video codec which includes a Video for Windows
  1981. (32 bit) implementation.  Microsoft has licensed VDOWave as
  1982. part of the NetShow product.  There are two versions of the
  1983. VDOWave codec.  VDOWave 2.0 is a fixed rate video codec which uses
  1984. the Microsoft Four Character Code VDOM.  This codec adds the line
  1985.  
  1986. [drivers32]
  1987. vidc.vdom=vdowave.drv
  1988.  
  1989. to the SYSTEM.INI file in Windows 95.
  1990.  
  1991. VDOWave 3.0 is a "scalable" video codec.  This codec uses the Microsoft Four
  1992. Character Code (FOURCC) VDOW and adds the line
  1993.  
  1994. [drivers32]
  1995. VIDC.VDOW=vdowave.drv
  1996.  
  1997. to the Windows 95 SYSTEM.INI files.
  1998.  
  1999. In NetShow 2.0, the standalone Client Setup installs a VDOWave
  2000. decode-only codec.  The NetShow 2.0 Tools Setup installs a
  2001. VDONet VDOWave encoder.  
  2002.  
  2003. In some of my tests, VDOWave appears significantly superior to MPEG-1
  2004. and the other block Discrete Cosine Transform based codecs at low
  2005. bitrates.
  2006.  
  2007. VDONet uses the trademark VDOWave for its wavelet based video codec.
  2008. VDONet uses the trademark VDOLive for its VDOLive On-Demand Product
  2009. Line.  This includes the VDOLive On-Demand Server, the VDOLive tools
  2010. including VDOCapture and VDOClip, and the VDOLive Player.  Sometimes
  2011. VDOLive and VDOWave are used interchangably by users and in some company
  2012. literature.
  2013.  
  2014. VDONet also has a VDOPhone product for real-time videoconferencing.
  2015.  
  2016. Based on the company documentation, published reports, and viewing the
  2017. technology, VDOWave appears to be a combination of wavelet based image
  2018. compression and motion compensation or frame differencing.
  2019.  
  2020. <A HREF="#Top">Return to Top</A>
  2021.  
  2022. <A NAME="IV41">
  2023. <H4>What is Indeo Video Interactive?</H4>
  2024. </A>
  2025.  
  2026. Indeo Video Interactive, Indeo 4.1, is a new version of Indeo from
  2027. Intel based on a "hybrid wavelet algorithm" according to Intel.  This
  2028. is a different compression algorithm than Indeo 3.2 which is included
  2029. with Video for Windows.  Indeo 3.2 uses Vector Quantization.
  2030.  
  2031. Indeo Video Interactive supports a number of features in addition
  2032. to the new compression algorithm such as transparency.
  2033.  
  2034. Indeo Video Interactive can be installed as a Video for Windows
  2035. codec or in the new ActiveMovie environment from Microsoft.
  2036.  
  2037. For further information on Indeo Video Interactive
  2038.  
  2039. <A HREF="http://www.intel.com/pc-supp/multimed/indeo/index.htm">
  2040. http://www.intel.com/pc-supp/multimed/indeo/index.htm</A>
  2041.  
  2042.  
  2043. How to program "sprites" in Indeo Video Interactive?
  2044.  
  2045. Some of Intel's marketing material touts the ability to
  2046. add sprites to applications using Indeo Video Interactive.
  2047. Most of Intel's technical documentation on Indeo and the API's
  2048. for using Indeo Video Interactive neglects to explain what Intel
  2049. means by "sprite".  There is a brief mention in the Overview
  2050. document for Indeo Video Interactive.
  2051.  
  2052. Indeo "sprite" means TRANSPARENCY.
  2053.  
  2054. Indeo Video Interactive supports TRANSPARENCY.  Indeo has
  2055. transparent pixels to create transparent backgrounds to
  2056. implement effects such as chroma-keying.  The well-known
  2057. example of chroma-keying is the television weather forecaster
  2058. standing in front of a satellite weather picture.  The forecaster
  2059. stands in front of a blue screen (sometimes a green screen) and
  2060. video gadgetry replaced the blue color with another video signal.
  2061. Anything that is not the blue "key" color is left unchanged.  
  2062.  
  2063. In Indeo jargon a "video sprite" is a foreground object such as the
  2064. mythical weather-caster on a transparent background.  Your application
  2065. can then provide a bitmap image or even another video as a background
  2066. in the transparent areas of the image.  This provides a crude
  2067. mechanism for the video to change depending on interactions with
  2068. a user.
  2069.  
  2070. Look up the API's in Intel's documentation for TRANSPARENCY
  2071. to implement video sprites.
  2072.  
  2073.  
  2074. How to identify an AVI file that uses Indeo Video Interactive
  2075. for the video compressor?
  2076.  
  2077. Video for Windows identifies different video compressors through
  2078. four character codes.  For example, 'cvid' is the four character
  2079. code for the widely used Cinepak compressor.  The four character
  2080. code is found in the video stream header 'strh' in the AVI file.
  2081.  
  2082. Indeo Video Interactive (Indeo 4.1) uses the four character code
  2083. 'iv41'
  2084.  
  2085. If Indeo Video Interactive is not installed installed Video for
  2086. Windows will report an error, indicating that it cannot find the
  2087. compressor for 'iv41'.  The specific message appears to be:
  2088.  
  2089. "Video not available, cannot find 'vids:iv41' decompressor."
  2090.  
  2091. <B>NOTE:</B> Indeo 4.1 claims to implement a hybrid wavelet transform.
  2092. Some of the behavior of the codec at low bitrates differs from other
  2093. wavelet based image and video compressors such as VDOWave, Infinop's
  2094. Lightning Strike, and some public domain wavelet compression software.
  2095. In particular, at low bitrates, I have seen the characteristic checkerboard
  2096. pattern of 8x8 pixel blocks seen in block based transform coding methods such
  2097. as MPEG-1.  I'm not sure what Intel means by hybrid wavelet transform.
  2098.  
  2099. In general, at low bitrates, image and video compression schemes using the
  2100. Discrete Wavelet Transform (DWT) exhibit a blurring at the edges of objects and
  2101. also "ringing" artifacts near edges.  They do not exhibit the blocking 
  2102. artifacts, checkerboard pattern in extreme cases, seen in block Discrete Cosine
  2103. Transform based image and video compression.
  2104.  
  2105. <A HREF="#Top">Return to Top</A>
  2106.  
  2107. <A NAME="IV50">
  2108. <H4>Indeo Video Interactive 5.0</H4>
  2109.  
  2110. Intel is now (2/22/99) distributing an Indeo Video Interactive 5.10
  2111. software on their Web site.  Indeo 5.0 claims to use a new better
  2112. wavelet compression algorithm for improved video quality.  Indeo 5
  2113. includes features such as progressive download for the Internet,
  2114. transparency, sprites, etc.
  2115.  
  2116. As of 2/22/99, the latest version of Intel Indeo Video appears to
  2117. be Indeo Video 5.10.  The latest version of Intel Indeo Audio appears
  2118. to be Indeo Audio 2.5
  2119.  
  2120. The previous version of Intel Indeo Video was Indeo 5.06
  2121.  
  2122. <A HREF="http://developer.intel.com/ial/indeo/video/">http://developer.intel.com/ial/indeo/video/</A>
  2123.  
  2124. Known releases of Indeo Video 5.x
  2125.  
  2126. Intel Indeo 5.10 (02-Feb-1999)
  2127. Intel Indeo 5.06 (1998)
  2128. Intel Indeo 5.0  (1997????)
  2129.  
  2130. NOTE: All releases of Indeo 5.x appear to use the Four Character
  2131. Code IV50
  2132.  
  2133. Apple QuickTime 4 includes support for Indeo 5, allowing playback on
  2134. Apple Macintosh platforms.
  2135.  
  2136. <A HREF="http://www.apple.com/quicktime/technologies/indeo/">http://www.apple.com/quicktime/technologies/indeo/</A>
  2137.  
  2138.  
  2139. <A HREF="#Top">Return to Top</A>
  2140.  
  2141. <A NAME="UCOD">
  2142. <H4>ClearVideo (aka RealVideo)</H4>
  2143. </A>
  2144.  
  2145. ClearVideo is a video codec from Iterated Systems(<A
  2146. HREF="http://www.iterated.com/"> http://www.iterated.com</A>
  2147.  
  2148. Iterated has also licensed the ClearVideo technology to Progressive
  2149. Networks, makers of RealAudio, under the name RealVideo.
  2150.  
  2151. You can (or could at one time) download a Video for Windows demo of
  2152. ClearVideo from the Iterated Web site.  This includes a demo Video for
  2153. Windows codec that allows both encoding and decoding The video can
  2154. only be played on the same machine with the demo encoder.  This codec
  2155. works with Video for Windows applications such as Media Player and
  2156. VidEdit.
  2157.  
  2158. Fractal video encoding appears to be very slow (computationally 
  2159. intensive).  The video is similar or somewhat
  2160. superior to MPEG-1 in quality.
  2161.  
  2162. ClearVideo uses Fractal Image Compression.  Iterated is the main
  2163. (only?) producer of commercial fractal image and video compression
  2164. technology.
  2165.  
  2166. The Video for Windows evaluation version of ClearVideo
  2167. installs
  2168.  
  2169. [drivers32]
  2170. VIDC.UCOD=CLRVIDCD.DLL
  2171.  
  2172. in SYSTEM.INI in Windows 95.
  2173.  
  2174. <A HREF="#Top">Return to Top</A>
  2175.  
  2176. <A NAME="SFMC">
  2177. <H4>SFM (Surface Fitting Method)</H4>
  2178. </A>
  2179.  
  2180. Crystal Net Corporation (<A
  2181. HREF="http://www.crystalnet.com/">http://www.crystalnet.com/</A> seeks
  2182. to license a technology called SFM or Surface Fitting Method.  This is
  2183. supposed to be a low bitrate video technology for ISDN and POTS (Plain
  2184. Old Telephone Service) bitrates.  They have a Video for Windows demo
  2185. to download from their Web site.
  2186.  
  2187. SFM used the Microsoft Four Character Code (FOURCC)  SFMC.
  2188.  
  2189. The demo installs (actually the instructions tell you to manually install):
  2190.  
  2191. [drivers32]
  2192. VIDC.SFMC=SFMdemo.dll
  2193.  
  2194. in Windows 95.
  2195.  
  2196. The demo does not include an encoder which presents problems in evaluating 
  2197. the technology.  However, SFM appears to be some sort of edge detection based
  2198. encoding technology.  
  2199.  
  2200. White Pine's Enhanced CU-See Me desktop videoconferencing product uses
  2201. Crystal Net's SFM under the name White Pine Color Software Codec.
  2202. NEC has reportedly licensed SFM for its Network Video Audio Tool (NVAT).
  2203. (February, 1998)
  2204.  
  2205. Crystal Net also reportedly has relationships with Shepherd Surveillance
  2206. and Winnov.  (February, 1998)
  2207.  
  2208. <A HREF="#Top">Return to Top</A>
  2209.  
  2210. <A NAME="QPEG">
  2211. <H4>QPEG</H4>
  2212. </A>
  2213.  
  2214. Q-Team Dr. Knabe produces a Video for Windows codec known as QPEG.
  2215. Currently (6/27/97), QPEG supports 8 bit color.  Q-Team plans 16 and
  2216. 24 bit color, MMX support, and other additional features in the
  2217. future.
  2218.  
  2219. Sample AVI/QPEG files and Video for Windows QPEG codecs for
  2220. Windows 3.x and Windows 95/NT are available at the Q-Team
  2221. Web site.
  2222.  
  2223. <A HREF="http://www.q-team.de/">http://www.q-team.de/</A>
  2224.  
  2225. Q-Team is also working on MPEG-4 for the PC.
  2226.  
  2227. <A HREF="#Top">Return to Top</A>
  2228.  
  2229. <A NAME="H261">
  2230. <H4>H.261</H4>
  2231. </A>
  2232.  
  2233. H.261 is an international standard, widely used for video conferencing
  2234. in the 128 Kbits/second to 384 Kbits/second range.  This is a block
  2235. Discrete Cosine Transform method.  Actually, H.261 was the first
  2236. international standard developed using the block Discrete Cosine
  2237. Transform and motion compensation.  MPEG-1, which is probably better
  2238. known, followed the H.261 effort.
  2239.  
  2240. Intel's ProShare videoconferencing product installs a Video for Windows H.261 codec.
  2241.  
  2242. <B>NOTE:</B>  I've never generated an AVI files with Intel's H.261, so it
  2243. may only be used for Intel ProShare videoconferencing and not with AVI.
  2244.  
  2245. Microsoft has a Microsoft H.261 Video for Windows 32 bit codec.
  2246.  
  2247. [drivers32]
  2248. VIDC.M261=MSH261.DRV
  2249.  
  2250. in Windows 95.
  2251.  
  2252. <A HREF="#Top">Return to Top</A>
  2253.  
  2254. <A NAME="H263">
  2255. <H4>H.263</H4>
  2256. </A>
  2257.  
  2258. H.263 is another international standard, based on the Block Discrete
  2259. Cosine Transform (DCT) and motion compensation.  H.263 has a number of
  2260. improvements, mostly in the area of motion compensation, over the
  2261. earlier H.261 standard.  It is targeted toward very low bitrate video
  2262. compression.
  2263.  
  2264. Microsoft's NetShow 2.0 installs a Microsoft H.263 video codec.
  2265. Microsoft H.263 uses the Four Character Code M263.
  2266.  
  2267. [drivers32]
  2268. VIDC.M263=msh263.drv
  2269.  
  2270. in Windows 95.
  2271.  
  2272. The Microsoft H.263 video codec is one of several "keyed" codecs
  2273. installed by NetShow.  Others are Vivo H.263 and Duck's TrueMotion 2.0.
  2274. These codecs will not encode video as AVI files, although they
  2275. apparently will create Microsoft ASF files or provide compression for
  2276. streaming video products such as Microsoft's NetMeeting
  2277. videoconferencing.  See the section on NetShow for more information
  2278. on the NetShow video codecs.
  2279.  
  2280. Some versions of the msh263.drv driver will crash when trying to
  2281. encode an AVI file from VidEdit or similar applications.  Other
  2282. versions of msh263.drv don't crash but give an "Unable to begin
  2283. compression" message box.
  2284.  
  2285. Vivo Software Inc. markets streaming H.263 and G.723 audio for the
  2286. Web under the brand name VivoActive.  Vivo has its own file format
  2287. called .VIV which can be embedded in Web pages.  Vivo provides
  2288. a player called VivoActive player and an authoring tool for
  2289. creating .VIV files called VivoActive Producer. 
  2290.  
  2291. Microsoft NetShow installs a "keyed" codec that identifies itself as
  2292. Vivo H.263 Video Codec[32] which installs
  2293.  
  2294. [drivers32]
  2295. VIDC.VIVO=IVVIDEO.DLL
  2296.  
  2297. in Windows 95.  Vivo H.263 uses the four character code 'VIVO'.
  2298.  
  2299. The Vivo Software Web Site:
  2300.  
  2301. <A HREF="http://www.vivo.com/">http://www.vivo.com/</A>
  2302.  
  2303. Intel distributes an Intel "I263" H.263 video codec at there Web
  2304. site as part of the NetCard product.  This installs
  2305.  
  2306. [drivers32]
  2307. VIDC.I263=C:\WINDOWS\I263_32.DLL
  2308. VIDC.I420=C:\WINDOWS\I263_32.DLL
  2309.  
  2310. in Windows 95.
  2311.  
  2312.  
  2313. As of June 18, 1998, this codec could be found at:
  2314.  
  2315. <A HREF="http://support.intel.com/support/createshare/camerapack/CODINSTL.HTM">http://support.intel.com/support/createshare/camerapack/CODINSTL.HTM</A>
  2316.  
  2317. Note that Intel, like Microsoft, seems to rearrange their Web site
  2318. constantly.
  2319.  
  2320. Unlike the keyed Microsoft H.263 video codecs, this codec can be
  2321. used to encode AVI's through Microsoft VidEdit 1.1 (and presumably
  2322. other video editing products).  How well this codec in fact
  2323. implements the H.263 standard is not clear.
  2324.  
  2325.  
  2326. Shannon Communication Systems (SCS) has an H.263+ AVI codec and
  2327. analysis tool available for download at their Web site:
  2328.  
  2329. <A HREF="http://www.shansys.com/">http://www.shansys.com/</A>
  2330.  
  2331.  
  2332. Telenor R&D of Norway distributes the source code for an H.263 encoder
  2333. and decoder that will reportedly compile and run under Windows.  This
  2334. is a standalone application not a Video for Windows codec or
  2335. ActiveMovie filter.  See elsewhere in the AVI Overview for a link to
  2336. the Telenor Web site.
  2337.  
  2338. <A HREF="#Top">Return to Top</A>
  2339.  
  2340. <A NAME="MPG4">
  2341. <H4>MPEG-4</H4>
  2342. </A>
  2343.  
  2344. Microsoft's NetShow 2.0 installs a Video for Windows codec for
  2345. MPEG-4.   MPEG-4 is a new international standard that has not
  2346. been officially released as yet.  Microsoft is deeply involved in
  2347. the MPEG-4 standardization effort.  Microsoft has been using
  2348. its MPEG-4 for the Microsoft NBC Business Video broadcasting over
  2349. the Internet.
  2350.  
  2351. The Microsoft MPEG-4 Video for Windows Codec identifies itself
  2352. as "MPEG-4 High Speed Compressor" in Control Panel | Multimedia | 
  2353. Devices | Video Compression Codecs.
  2354.  
  2355. Adding to confusion in true Microsoft fashion, there are two
  2356. versions of each NetShow video codec.  The NetShow 2.0 Player (Client)
  2357. installation program installs codecs that provide only decoding
  2358. functionality.  The MPEG-4 video codec installed by NetShow 2.0 Player
  2359. can only play back an MPEG-4 AVI.  The MPEG-4 video codec installed by
  2360. the NetShow 2.0 Tools can encode AVI files with MPEG-4 video
  2361. compression.
  2362.  
  2363. If you want to author MPEG-4 compressed AVI, make sure to get and
  2364. install the NetShow 2.0 Tools, not just the NetShow 2.0 Player.
  2365.  
  2366. The Microsoft MPEG-4 High Speed Compressor Video Codec installed
  2367. by the NetShow 2.0 Tools will not encode arbitrary dimension
  2368. video.  The video must have the dimensions 176 x 144 (QCIF).
  2369. In Microsoft VidEdit, "MPEG-4 High Speed Compressor" becomes
  2370. visible in the list of compression options only if the video
  2371. is sized to 176x144.
  2372.  
  2373. MPEG-4 uses the Microsoft Four Character Code (FOURCC) MPG4.
  2374.  
  2375. [drivers32]
  2376. VIDC.MPG4=msscrc32.dll
  2377.  
  2378. <A HREF="#Top">Return to Top</A>
  2379.  
  2380. <A NAME="LS">
  2381. <H4>Lightning Strike (Infinop)</H4>
  2382. </A>
  2383.  
  2384. Infinop markets a wavelet based video codec called Lightning Strike
  2385. Streaming Video.  A Lightning Strike video decoder compatible with
  2386. Microsoft NetShow can be dowloaded from the Infinop Web site.  There
  2387. are several sample Lightning Strike Video files at the Infinop
  2388. site.  The Lightning Strike encoder does not seem to be generally
  2389. available.
  2390.  
  2391. <A HREF="http://www.infinop.com/">http://www.infinop.com/</A>
  2392.  
  2393. <A HREF="#Top">Return to Top</A>
  2394.  
  2395. <A NAME="VxTreme">
  2396. <H4>VxTreme</H4>
  2397. </A>
  2398.  
  2399. VxTreme was acquired by Microsoft in September of 1997.
  2400. Microsoft has invested in numerous low bitrate audio and video
  2401. companies during the second half of 1997, include VxTreme, VDONet,
  2402. Progressive Networks/RealNetworks, and Lernout and Hauspie Speech
  2403. Products.
  2404.  
  2405. Although I have not seen a Video for Windows implementation of VxTreme
  2406. (12/20/97), I thought that I should include this codec.  Undoubtedly,
  2407. it will be ported to Video for Windows and/or ActiveMovie if this has
  2408. not already happened.
  2409.  
  2410. VxTreme(<A HREF="http://www.vxtreme.com/">http://www.vxtreme.com/</A>
  2411. markets a video codec that is usually identified as a wavelet based
  2412. codec.
  2413.  
  2414. A VxTreme player, a Plug-In for Internet Explorer and Netscape, is
  2415. available at the VxTreme Web site.
  2416.  
  2417. VxTreme has some very impressive demos of QCIF (160x120) talking heads
  2418. material on their Web sites.  The subjective image quality during
  2419. scenes with small changes is quite good, much superior to the block
  2420. Discrete Cosine Transform based codecs and probably VDONet's VDOWave.
  2421. Text such as movie titles and credits appears to encode very well.
  2422. Preserving the sharp edges of text is a major problem in block
  2423. Discrete Cosine Transform based encoders such as the JPEG still image
  2424. compression standard and the MPEG video compression standard.  In
  2425. general, wavelet image compression encounters problems with sharp
  2426. edges as well.
  2427.  
  2428. VxTreme clearly uses some sort of motion compensation or frame
  2429. differencing.  Image quality drops dramatically during periods with
  2430. rapid changes.  I viewed a number of movie trailers encoded with
  2431. VxTreme for 28.8 Kbits/second such as the trailer for "Goldeneye".
  2432. These trailers contain many scene changes and motion.  Video quality
  2433. is poor, hardly superior to competitors such as H.261 or Microsoft's
  2434. MPEG-4.  The talking heads material at 28.8 looks almost natural.
  2435.  
  2436. VxTreme may be a combination of the Discrete Wavelet Transform (??)
  2437. and motion compensation.  The preservation of sharp edges suggests
  2438. something beyond the vanilla Discrete Wavelet Transforms described in
  2439. the technical literature on wavelet based image and video compression.
  2440.  
  2441. <A HREF="#Top">Return to Top</A>
  2442.  
  2443. <A NAME="#Sorenson">
  2444. <H2>Sorenson Video</H2>
  2445. </A>
  2446.  
  2447. Sorenson Video, from Sorenson Vision, is a low bitrate video codec
  2448. that appears to be available only for Apple QuickTime as of May 10,
  2449. 1999.  Sorenson Video was used to compress the Star Wars trailer for
  2450. "Star Wars Episode I: The Phantom Menace" distributed over the Internet
  2451. as a QuickTime file in the spring of 1999.  No Video for Windows
  2452. Sorenson Video codec appears to be available.
  2453.  
  2454. Sorenson Video is reportedly based on some kind of vector
  2455. quantization technology that can achieve very high compression.
  2456.  
  2457. According to Mark Podlipec's XAnim site (May 10, 1999), he contacted
  2458. Sorenson Vision to find out if he could license Sorenson Video for
  2459. incorporation in the XAnim Unix X11 animation, audio, and video
  2460. player.  According to his Web site, Sorenson replied that Apple will
  2461. not allow Sorenson to license Sorenson Video to others.
  2462.  
  2463. <A HREF="http://www.s-vision.com/">http://www.s-vision.com/</A>
  2464.  
  2465. <A HREF="#Top">Return to Top</A>
  2466.  
  2467.  
  2468. <A NAME="VfWInstalled">
  2469. <H2>How to determine which Video for Windows decompressors are installed on a PC?</H2>
  2470. </A>
  2471.  
  2472. In the SYSTEM.INI file, there is a section [drivers] which will contain
  2473. some lines as follows:
  2474.  
  2475. [drivers]
  2476. VIDC.MSVC=msvidc.drv
  2477. VIDC.YVU9=isvy.drv
  2478. VIDC.IV31=indeor3.drv
  2479. VIDC.RT21=indeo.drv
  2480. VIDC.CVID=iccvid.drv
  2481. VIDC.MRLE=msrle.drv
  2482.  
  2483. AVI files contain a four character code (such as 'IV31' or 'CVID')
  2484. in the stream header for the video stream.  This four character
  2485. code identifies the video compressor used for the video stream.
  2486. For example, 'CVID' is the identifier for Cinepak (formerly Compact
  2487. Video) compression.
  2488.  
  2489. Video for Windows prefixes the four character code with VIDC. and
  2490. uses it to look up the video decompressor driver in SYSTEM.INI
  2491. iccvid.drv is the driver for Cinepak in the example above.
  2492.  
  2493. Note: These are 16-bit drivers.  Windows 95 adds a section [drivers32]
  2494. for 32 bit drivers.  There are 32 bit versions of the Video for
  2495. Windows drivers.  See below (and notice that the 32 bit drivers have
  2496. different names from the 16 bit drivers).
  2497.  
  2498. [drivers32]
  2499. vidc.cvid=iccvid.dll          ; Cinepak for Windows 32
  2500. vidc.iv31=ir32_32.dll
  2501. vidc.iv32=ir32_32.dll
  2502. vidc.msvc=msvidc32.dll
  2503. vidc.mrle=msrle32.dll
  2504.  
  2505. WINDOWS 95
  2506.  
  2507. In Windows 95:
  2508.  
  2509. (1) Open the Control Panel
  2510.  
  2511. (2) Double click on the Multimedia Icon (applet)
  2512.  
  2513. (3) Select the "Advanced" Tab
  2514.  
  2515. (4) Under the Multimedia Drivers icon, double click on the Video Compression Codecs icon
  2516. to open it.  This gives a list of installed video codecs.
  2517.  
  2518. <A HREF="#Top">Return to Top</A>
  2519.  
  2520. <A NAME="WhichAVICodec">
  2521. <H3>How to determine which codec was used to compress an AVI file</H3>
  2522. </A>
  2523.  
  2524. LOW LEVEL WAY THAT WORKS ON ANY OPERATING SYSTEM WITH A FILE EDITOR!
  2525.  
  2526. A low level way to find out is to view the avi file with an editor,
  2527. for example the standard EDIT command in DOS will work.  Search for
  2528. the four character code vids (usually lower case).  vids indicates a
  2529. VIDeo Stream.  vids is immediately followed by the four character code
  2530. for the compressor used for the AVI file.  For example, a full frames
  2531. (uncompressed) AVI will contain the string:
  2532.  
  2533. vidsDIB
  2534.  
  2535. An AVI compressed using Microsoft Video 1 will contain the string:
  2536.  
  2537. vidsmsvc
  2538.  
  2539. And so forth.
  2540.  
  2541. See elswhere in this overview for information on the Microsoft Four Character Codes.
  2542.  
  2543.  
  2544. WINDOWS 95
  2545.  
  2546. In Windows 95 (or Windows NT 4.0):
  2547.  
  2548. Right click on the avi file's icon.
  2549.  
  2550. This brings up a menu of items.
  2551.  
  2552. Select Properties.
  2553.  
  2554. Click on the Details tab in the Properties sheet.
  2555.  
  2556. Look under Video Format in the Details.  This will list the
  2557. compression used.  The compression is identified using an explanatory
  2558. human-readable string such as "16 x 16, 24 Bits, 8 Frames, 60.150
  2559. Frames/Sec, 76 KB/Sec, Uncompressed".  The Microsoft Four Character
  2560. Code is not used.
  2561.  
  2562. NOTE: Windows 95 needs to have the Video for Windows codec installed
  2563. to correctly identify the codec used in the AVI file.  If you have
  2564. an AVI that Windows 95 can't play because the codec is not
  2565. installed, you will have to use another method.
  2566.  
  2567. <A HREF="#Top">Return to Top</A>
  2568.  
  2569. <A NAME="BestCodec">
  2570. <H3>Which AVI video compressor is best?</H3>
  2571. </A>
  2572.  
  2573. "Best" depends on what the user is trying to do.  Selection of a
  2574. video codec depends on several variables: time to encode the video,
  2575. how widely known and available the video codec is, compression ratios
  2576. that can be achieved for a target subjective quality level.  The
  2577. <A HREF="#CodecPerformance">Performance of AVI Codecs</A> section gives
  2578. detailed information on the performance, compression ratios, video
  2579. quality, etc. of AVI video codecs.
  2580.  
  2581. Cinepak is the most widely used AVI video codec.  Cinepak reportedly
  2582. provides the fastest playback of video.  While Indeo 3.2 provides
  2583. similar or slightly superior image quality for same compression, Indeo
  2584. decompression is much more CPU intensive than Cinepak.  Cinepak was
  2585. originally developed for the Mac and licensed to Apple by SuperMac.
  2586. It is now free with Video for Windows.  It is also free with Apple's
  2587. QuickTime.
  2588.  
  2589. There are at least three Cinepak codecs in existence:
  2590.  
  2591.              Cinepak by SuperMac    (the original, 16 bit)
  2592.              Cinepak by Radius      (newer, better?, 16 bit)
  2593.              Cinepak by Radius[32]  (32 bit version of Radius Cinepak, shipped with Windows 95)
  2594.  
  2595. Peter Plantec's Caligari TrueSpace2 Bible strongly recommends using the Radius
  2596. codec for superior results when generating AVI files from TrueSpace.
  2597.  
  2598. Cinepak is the best codec to use to insure ease of playback.  Few people
  2599. will have problems or need to install special codecs or software
  2600. to play an AVI compressed with Cinepak.
  2601.  
  2602. Cinepak is based on Vector Quantization and Frame Differencing to
  2603. achieve video compression.  Other technologies such as the
  2604. Block Discrete Cosine Transform and Motion Compensation can achieve
  2605. superior compression (smaller files for the same subjective visual
  2606. quality).
  2607.  
  2608. Codecs that beat Cinepak
  2609.  
  2610. H.263 (probably H.261)              Block DCT/Motion Compensation
  2611. MPEG-4 Video Verification Model     Block DCT/Motion Compensation
  2612. Indeo Video Interactive (Indeo 4.x) "hybrid wavelet"
  2613. VDONet's VDOWave                    Discrete Wavelet Transform/Motion Compensation
  2614.  
  2615. Iterated System's RealVideo or ClearVideo   Fractal Compression
  2616.  
  2617. Although not integrated into AVI, the MPEG-1 digital video standard
  2618. with IPB frames outperforms Cinepak.
  2619.  
  2620. The block DCT/Motion Compensation based codecs seem to perform 1.5 - 2.0
  2621. times better than Cinepak.  VDOWave, a wavelet based codec, seems somewhat
  2622. better than this.
  2623.  
  2624. <A HREF="#Top">Return to Top</A>
  2625.  
  2626. <A NAME="CodecPerformance">
  2627. <H2>Performance of AVI Codecs</H2>
  2628. </A>
  2629.  
  2630. <H3>How do the Video Codecs Perform on Typical Video?</H3>
  2631.  
  2632. To test the performance of the many Video for Windows codecs, I
  2633. created a ten second video of myself using the U.S. Robotics
  2634. Bigpicture video capture card which is based on the Brooktree Bt848
  2635. chip.  I am talking, picking up a microphone, and waving my hands
  2636. against an essentially static background.  This sequence was captured
  2637. at: 30 frames per second, 320 by 240 pixels, with 24 bit RGB color, no
  2638. frames dropped during video capture.  Note that 320 by 240, RGB 24, at 
  2639. 30 frames per second is similar to a single field of NTSC television
  2640. video and to the spatial resolution and frame rates of the successful
  2641. VideoCD products based on MPEG-1 digital video compression.
  2642.  
  2643. I then compressed the video using different codecs and Microsoft's VidEdit
  2644. 1.1 video editor.
  2645.  
  2646. A table of results follows.  Except where noted, the video
  2647. resembles the original uncompressed video closely.  In case where the
  2648. video was significantly degraded, this is noted IN CAPS.
  2649.  
  2650. The encoders for most codecs have an adjustable quality factor,
  2651. frequently displayed as a value between 0 and 100.  A higher quality
  2652. factor means the compressed video looks better but has a higher
  2653. bitrate, a lower compression ratio.  There is a trade-off between
  2654. quality and bitrate.  In the technical literature on image and video
  2655. compression this is known as the rate-distortion function R(D).  In
  2656. the table below, the entries give the quality factor used to encode
  2657. the test video where appropriate.
  2658.  
  2659. Results:
  2660.  
  2661. Codec                                      File Size    Compression Ratio/
  2662.                                                         Bitrate
  2663. --------------------------------------------------------------------------
  2664.  
  2665. Raw 24 bit RGB (Full Frames Uncompressed)  66.187 MB    1:1 / 53 Mbps
  2666. 30 frames per second
  2667. 320 by 240 pixels
  2668. a talking head with some hand waving
  2669.  
  2670. Radius Cinepak (32-bit)                    6.92   MB    9.6:1 / 5.5 Mbps
  2671. Quality Factor 100, keyframe every 15 frames
  2672. Compression Technology: Vector Quantization
  2673.  
  2674. Intel Indeo 5.1  (32-bit)                  4.41   MB    15.0:1 / 3.5 Mbps
  2675. Quality Factor 85, keyframe every 15 frames
  2676. Compression Technology: Wavelet
  2677.  
  2678. Intel Indeo 5.1  (32-bit)                  0.98   MB    67.8:1 / 784 Kbps
  2679. Quality Factor 50, keyframe every 15 frames
  2680. Compression Technology: Wavelet
  2681.  
  2682. Intel Indeo 5.1  (32-bit)                  0.81   MB    81.7:1 / 648 Kbps
  2683. Quality Factor 25, keyframe every 30 frames
  2684. Compression Technology: Wavelet
  2685.  
  2686. Intel Indeo 4.3  (32-bit)                  2.46   MB    26.9:1 / 2 Mbps
  2687. Quality Factor 85
  2688. Compression Technology: "Hybrid Wavelet"
  2689.  
  2690. Intel Indeo R3.2  (32-bit)                 3.93   MB    16.8:1 / 3.1 Mbps
  2691. Quality Factor 65, keyframe every 4 frames
  2692. Version 3.24.15.03
  2693. Compression Technology: Vector Quantization
  2694.  
  2695. Microsoft Video 1 (32-bit)                 3.16   MB    20.7:1 / 2.5 Mbps
  2696. Microsoft Video 1 Compressor Version 1.0
  2697. LOW QUALITY - NOTICABLY GRAINY
  2698.  
  2699. Microsoft MPEG-4 (32-bit)                  0.625  MB    105.9:1 / 500 Kbps
  2700. MPEG-4 Video High Speed Compressor
  2701. keyframe every 3600 frames
  2702. Compression Control 0
  2703. Data Rate 128 Kilobits/second
  2704. LOW QUALITY - BLOCKING ARTIFACTS
  2705. Compression Technology: Block Discrete Cosine Transform
  2706.                         Motion Compensation
  2707.  
  2708. Intel Indeo Raw R1.2  (32-bit)             24.6   MB    2.7:1 / 19.7 Mbps
  2709. Version 1.20.15.01
  2710.  
  2711. Intel I.263 H.263  (32-bit)                0.764  MB    86.6:1 / 612 Kbps
  2712. keyframe every 15 frames
  2713. Quality Factor 50 %
  2714. LOW QUALITY - BLOCKING ARTIFACTS
  2715. Compression Technology: Block Discrete Cosine Transform
  2716.                         Motion Compensation
  2717.  
  2718. Intel I.263 H.263   (32-bit)               1.99   MB    33.2:1 / 1.6 Mbps
  2719. keyframe every 15 frames
  2720. Quality Factor 100 %
  2721. Compression Technology: Block Discrete Cosine Transform
  2722.                         Motion Compensation
  2723.  
  2724. Brooktree YUV 411 Raw                     32.6    MB    2.0:1 / 26 Mbps
  2725. BtV MediaStream
  2726. Verson: 2.01
  2727.  
  2728.  
  2729. With a 160 by 120, 30 frames per second, 239 frame (7.996) second, 24
  2730. bit color video "Space Shuttle" sequence, from a NASA promotional
  2731. video showing the launch of the space shuttle and some crowds watching
  2732. and cheering.  Here I was able to calculate and report the <A
  2733. HREF="#PSNR">Peak Signal to Noise Ratio</A> (in dB, decibels), an
  2734. objective measure of image and video quality.
  2735.  
  2736. Codec                         File Size           Compression Ratio/
  2737.                                                   Bitrate/<A HREF="#PSNR">PSNR</A>
  2738.  
  2739. -----------------------------------------------------------------------
  2740.  
  2741. Full Frames (Uncompressed)    13.1 MB             1 : 1 / 13.5 Mbps
  2742. 24 bits, 160 x 120, 30 fps                          / INFINITE 
  2743.  
  2744. Cinepak Codec by Radius [32]   0.85 MB            15.9 : 1 / 848 Kbps
  2745. Version 1.8.0.12                                    / 31.08 dB
  2746. Key frame every 15 frames
  2747. Quality Factor 100
  2748. (DEFAULT ENCODING PARAMETERS)
  2749.  
  2750. Cinepak Codec by Radius[32]    0.78 MB            17.7 : 1 / 780 Kbps
  2751. Version 1.8.0.12                                    / 30.49 dB
  2752. Key Frame every 15 frames
  2753. Target Data Rate 100 KBytes/sec
  2754. Quality Factor 100
  2755.  
  2756. Cinepak Codec by Radius[32]    0.42 MB             32.93 : 1 / 420 Kbps
  2757. Version 1.8.0.12                                    / 27.087 dB
  2758. Key Frame every 15 frames
  2759. Target Data Rate 50 KBytes/sec
  2760. Quality Factor 100
  2761. VISIBLE BLOCKING
  2762.  
  2763. Cinepak Codec by Radius[32]    0.23 MB            59.6 : 1 / 231 Kbps
  2764. Version 1.8.0.12                                    / 23.762 dB
  2765. Key Frame every 15 frames
  2766. Target Data Rate 25 KBytes/sec
  2767. Quality Factor 100
  2768. HEAVY BLOCKING/UNACCEPTABLE VIDEO
  2769.  
  2770.  
  2771. Intel Indeo 5.10               0.993 MB           13.2 : 1 / 992 Kbps
  2772. Key frame every 15 frames                           / 32.43 dB
  2773. Quality Factor 85
  2774. (DEFAULT ENCODING PARAMETERS)
  2775.  
  2776. Intel Indeo 5.10               0.22 MB            59.6 : 1 / 216 Kbps
  2777. Key frame every 15 frames                           / 29.6 dB
  2778. Quality Factor 50
  2779. RINGING ARTIFACTS JUST VISIBLE
  2780.  
  2781. Intel Indeo 5.10              0.177 MB            74 : 1 / 176 Kbps
  2782. Key frame every 15 frames                           / 28.4 dB
  2783. Quality Factor 25
  2784. RINGING ARTIFACTS
  2785.  
  2786. Intel Indeo 5.10              0.158 MB            82.9 : 1 / 152 Kbps
  2787. Key frame every 15 frames                           / 27.82 dB
  2788. Quality Factor 10
  2789. RINGING ARTIFACTS
  2790.  
  2791.  
  2792. Intel Indeo Video Interactive[32]  1.564 MB       8.8 : 1 / 1.564 Mbps
  2793. Indeo V 4.11.15.62                                  / 28.686 dB
  2794. Key frame every 15 frames
  2795. Target Data Rate 1687 KBytes/sec
  2796. Quality Factor 85
  2797. (DEFAULT)
  2798.  
  2799. Intel Indeo Video Interactive[32]  0.732 MB       18.9 : 1 / 732 Kbps
  2800. Indeo V 4.11.15.62                                  / 28.284 dB
  2801. Key frame every 15 frames
  2802. Target Data Rate DISABLED
  2803. Quality Factor 85
  2804.  
  2805. Intel Indeo Video Interactive[32]  0.297 MB       46.5 : 1 / 297 Kbps
  2806. Indeo V 4.11.15.62                                  / 26.622 dB
  2807. Key frame every 15 frames
  2808. Target Data Rate DISABLED
  2809. Quality Factor 50
  2810. BLOCKING AND RINGING ARTIFACTS
  2811.  
  2812. Intel Indeo Video Interactive[32]  0.256 MB       53.9 : 1 / 256 Kbps
  2813. Indeo V 4.11.15.62                                  / 25.389 dB
  2814. Key frame every 15 frames
  2815. Target Data Rate DISABLED
  2816. Quality Factor 25
  2817. HEAVY BLOCKING AND RINGING ARTIFACTS/UNACCEPTABLE
  2818.  
  2819.  
  2820. Microsoft Video 1             5.198 MB            2.7 : 1 / 5.198 Mbps
  2821. Key frame every 15 frames                           / 32.209 dB
  2822. Quality Factor 100
  2823. SLIGHTLY GRAINY
  2824.  
  2825. Microsoft Video 1             0.79 MB             17.5 : 1 / 790 Kbps
  2826. Key frame every 15 frames                           / 30.286 dB
  2827. Quality Factor 75 (DEFAULT)
  2828. BANDING AND BLOCKING
  2829.  
  2830. Microsoft Video 1             0.17 MB            82.8 : 1 / 166 Kbps
  2831. Key frame every 15 frames                           / 23.915 dB
  2832. Quality Factor 50
  2833. VERY BLOCKY/UNACCEPTABLE
  2834.  
  2835. Microsoft Video 1             0.08 MB            163.7 : 1 / 84 Kbps
  2836. Key frame every 15 frames                           / 18. 524 dB
  2837. Quality Factor 25
  2838. VERY VERY BLOCKY/UNACCEPTABLE
  2839.  
  2840.  
  2841. With a 160 by 120 pixel, 15 frames per second, 24 bit color version of
  2842. the "Talking Head" 10 second video sequence, created by downsampling in
  2843. space and time with Microsoft VidEdit 1.1
  2844.  
  2845. Codec                          File Size           Compression Ratio/
  2846.                                                    Bitrate
  2847. ------------------------------------------------------------------------
  2848. Full Frames Uncompressed       8.53 MB             1:1 / 6.816 Mbps
  2849. 24 bit RGB
  2850. 160 x 120 pixels
  2851. 15 frames per second
  2852.  
  2853. Cinepak from Radius (32 bit)   1.20 MB             7.1:1 / 960 Kbps
  2854. Version 1.10.0.6
  2855. Quality Factor 100
  2856. Keyframe every 15 frames
  2857.  
  2858. Intel Indeo 4.5 (32 bit)       0.677 MB            12.6:1 / 541 Kbps
  2859. Quality Factor 85
  2860. Keyframe every 15 frames
  2861.  
  2862. Intel Indeo R3.2 (32 bit)      0.98 MB             8.7:1 / 784 Kbps
  2863. Version 3.24.15.03
  2864. Quality Factor 65
  2865. Keyframe every 4 frames
  2866.  
  2867. Microsoft Video 1              0.947 MB            9:1 / 758 Kbps
  2868. Quality Factor 75
  2869. SOME BLOCKING ARTIFACTS
  2870.  
  2871. Intel Indeo Raw 1.2            3.25 MB             2.6:1 / 2.6 Mbps
  2872.  
  2873. Intel I.263 H.263              0.67 MB             12.8:1 / 535 Kbps
  2874.  
  2875. Intel Indeo 5.10 (32 bit)      0.973 MB            8.8:1 / 778 Kbps
  2876. Quality Factor 85
  2877. Keyframe every 15 frames
  2878.  
  2879. Intel Indeo 5.10 (32 bit)      0.367 MB            23.2:1 / 294 Kbps
  2880. Quality Factor 50
  2881. Keyframe every 15 frames
  2882.  
  2883. Intel Indeo 5.10 (32 bit)      0.339 MB            25.2:1 / 271 Kbps
  2884. Quality Factor 25
  2885. No fixed keyframes
  2886. LOW QUALITY - BLURRY
  2887.  
  2888. Brooktree YUV 411 Raw          4.42 MB             1.9:1 / 3.536 Mbps
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894. <A HREF="#Top">Return to Top</A>
  2895.  
  2896. <A NAME="QTCodec">
  2897. <H2>Which Video for Windows Codecs are Available for QuickTime on Apple Macintosh?</H2>
  2898. </A>
  2899.  
  2900. As of June 24, 1998, this is an incomplete list:
  2901.  
  2902. Cinepak (formerly Apple Compact Video)
  2903.  
  2904.  
  2905. The Video for Windows 1.1 Apple Macintosh utilities include
  2906. QuickTime system extensions for:
  2907.  
  2908. Microsoft Video 1
  2909. Microsoft Full Frames (uncompressed)
  2910. Microsoft RLE (Run Length Encoding)
  2911.  
  2912.  
  2913. Intel provided a QuickTime system extension for Intel Indeo
  2914. 3.2.  As of June 24, 1998 this was available at:
  2915.  
  2916. <A HREF="http://developer.intel.com/ial/indeo/video/driver.htm">
  2917. http://developer.intel.com/ial/indeo/video/driver.htm</A>
  2918.  
  2919. As of June 24, 1998 Intel did NOT provide QuickTime versions
  2920. of Indeo 4.x or 5.x for the Apple Macintosh.  Intel did provide
  2921. a version of Indeo 4.4 for QuickTime for Windows.
  2922.  
  2923. <A HREF="#Top">Return to Top</A>
  2924.  
  2925. <A NAME="FourCC">
  2926. <H2>Microsoft Four Character Codes (FOURCC)</H2>
  2927. </A>
  2928. A Four Character Code or FOURCC is a four byte code defined by
  2929. Microsoft as part of Video for Windows to identify various types
  2930. of video data.
  2931.  
  2932. Microsoft defined FOURCC's to uniquely identify pixel layouts and
  2933. video compressor types in Video for Windows.  For example, the FOURCC
  2934. 'CVID' identifies the Cinepak (formerly Compact Video) video
  2935. compressor.  AVI files contain the FOURCC for the video compressor in the
  2936. video stream header.  
  2937.  
  2938. In addition to codecs, Four Character Codes identify the pixel layouts
  2939. used in uncompressed images and video.  For example, codes such as
  2940. 'YUY2' identify layouts of pixels in YUV space (as opposed to RGB).
  2941. These codes are used in interfacing with graphics cards.  For example,
  2942. the S3 ViRGE/VX chip supports the YUY2 pixel layout. YUY2 is popular
  2943. because it refers to the 4:2:2 format used in <A
  2944. HREF="#CCIR601">CCIR-601</A> (D1) digital video.
  2945.  
  2946. Video for Windows, Display Control Interface (DCI), and Direct Draw 
  2947. all use FOURCC's.  
  2948.  
  2949. Incomplete List of Four Character Codes for Video for Windows Codecs
  2950. (This is followed by a list of Codes Registered with Microsoft)
  2951.  
  2952. DIB                    Full Frames (Uncompressed)
  2953. RGB                    Full Frames (Uncompressed)
  2954. RAW                    Full Frames (Uncompressed)
  2955. 0x00000000             Full Frames (Uncompressed)
  2956.  
  2957.     0x00000000 indicates the hexadecimal value of the Four Character
  2958. Code is zero.  A Four Character Code 'AAAA' has hexadecimal value
  2959. 0x41414141 where 0x41 is the ASCII code for 'A'.
  2960.  
  2961.     Some video capture and editing products will use the non-standard
  2962. FOURCC 0x00000000 for uncompressed AVI video instead of the easier to
  2963. understand 'DIB ' or 'RGB ' or 'RAW '.
  2964.  
  2965. MSVC or CRAM or WHAM   Microsoft Video 1
  2966. MRLE                   Microsoft Run Length Encoding
  2967. IV31                   Indeo 3.1/3.2
  2968. IV32                   Indeo 3.1/3.2
  2969. CVID                   Cinepak (Radius)
  2970. ULTI                   Ultimotion (IBM)
  2971. MJPG                   Motion JPEG  (Microsoft, Paradigm Matrix, video capture companies)
  2972. IJPG                   Intergraph JPEG
  2973. CYUV                   Creative YUV
  2974. YVU9                   Intel Indeo Raw YUV9
  2975. XMPG                   Editable (I frames only) MPEG  (Xing)
  2976. MPGI                   Editable MPEG (Sigma Designs)
  2977.  
  2978. VIXL                   miro Video XL
  2979. MVI1                   Motion Pixels
  2980. SPIG                   Radius Spigot
  2981. PGVV                   Radius Video Vision
  2982. TMOT                   Duck TrueMotion S
  2983.  
  2984. DMB1                   Custom Format Used by Matrox Rainbow Runner. This
  2985.                        appears to be a type of Motion JPEG
  2986.  
  2987. IV41                   Indeo Interactive (Indeo 4.1 from Intel)
  2988. IV50                   Indeo 5.x, including 5.0, 5.06, and 5.10
  2989. UCOD                   ClearVideo (Iterated Systems)
  2990. VDOW                   VDOWave (VDONet)
  2991. SFMC                   Surface Fitting Method (CrystalNet)
  2992. QPEG                   Q-Team Dr.Knabe 's QPEG video compressor
  2993. H261                   H.261
  2994. M261                   Microsoft H.261
  2995. VIVO                   Vivo H.263
  2996. M263                   Microsoft H.263
  2997. I263                   Intel "I.263" H.263
  2998. MPG4                   Microsoft MPEG-4
  2999.  
  3000.  
  3001. LIST OF CODES REGISTERED WITH MICROSOFT ( July 19, 1999 )
  3002.  
  3003. Compressor Code  Description 
  3004.  
  3005. ANIM  Intel - RDX 
  3006. AUR2  AuraVision - Aura 2 Codec - YUV 422 
  3007. AURA  AuraVision - Aura 1 Codec - YUV 411 
  3008. BT20  Brooktree - MediaStream codec 
  3009. BTCV  Brooktree - Composite Video codec 
  3010. CC12  Intel - YUV12 codec 
  3011. CDVC  Canopus - DV codec 
  3012. CHAM  Winnov, Inc. - MM_WINNOV_CAVIARA_CHAMPAGNE 
  3013. CPLA  Weitek - 4:2:0 YUV Planar 
  3014. CVID  Supermac - Cinepak  
  3015. CWLT  reserved 
  3016. DUCK  Duck Corp. - TrueMotion 1.0 
  3017. DVE2  InSoft - DVE-2 Videoconferencing codec 
  3018. DXT1  reserved 
  3019. DXT2  reserved 
  3020. DXT3  reserved 
  3021. DXT4  reserved 
  3022. DXT5  reserved 
  3023. DXTC  DirectX Texture Compression 
  3024. FLJP  D-Vision - Field Encoded Motion JPEG With LSI Bitstream Format 
  3025. GWLT  reserved 
  3026. H260  Intel - Conferencing codec 
  3027. H261  Intel - Conferencing codec 
  3028. H262  Intel - Conferencing codec 
  3029. H263  Intel - Conferencing codec 
  3030. H264  Intel - Conferencing codec 
  3031. H265  Intel - Conferencing codec 
  3032. H266  Intel - Conferencing codec 
  3033. H267  Intel - Conferencing codec 
  3034. H268  Intel - Conferencing codec 
  3035. H269  Intel - Conferencing codec 
  3036. I263  Intel - I263 
  3037. I420  Intel - Indeo 4 codec 
  3038. IAN  Intel - RDX 
  3039. ICLB  InSoft - CellB Videoconferencing codec 
  3040. ILVC  Intel - Layered Video 
  3041. ILVR  ITU-T - H.263+ compression standard 
  3042. IRAW  Intel - YUV uncompressed 
  3043. IV30  Intel - Indeo Video 3 codec 
  3044. IV31  Intel - Indeo Video 3.1 codec 
  3045. IV32  Intel - Indeo Video 3 codec 
  3046. IV33  Intel - Indeo Video 3 codec 
  3047. IV34  Intel - Indeo Video 3 codec 
  3048. IV35  Intel - Indeo Video 3 codec 
  3049. IV36  Intel - Indeo Video 3 codec 
  3050. IV37  Intel - Indeo Video 3 codec 
  3051. IV38  Intel - Indeo Video 3 codec 
  3052. IV39  Intel - Indeo Video 3 codec 
  3053. IV40  Intel - Indeo Video 4 codec 
  3054. IV41  Intel - Indeo Video 4 codec 
  3055. IV42  Intel - Indeo Video 4 codec 
  3056. IV43  Intel - Indeo Video 4 codec 
  3057. IV44  Intel - Indeo Video 4 codec 
  3058. IV45  Intel - Indeo Video 4 codec 
  3059. IV46  Intel - Indeo Video 4 codec 
  3060. IV47  Intel - Indeo Video 4 codec 
  3061. IV48  Intel - Indeo Video 4 codec 
  3062. IV49  Intel - Indeo Video 4 codec 
  3063. IV50  Intel - Indeo 5.0  
  3064. MP42  Microsoft - MPEG-4 Video Codec V2 
  3065. MPEG  Chromatic - MPEG 1 Video I Frame 
  3066. MRCA  FAST Multimedia - Mrcodec 
  3067. MRLE  Microsoft - Run Length Encoding 
  3068. MSVC  Microsoft - Video 1 
  3069. NTN1  Nogatech - Video Compression 1 
  3070. qpeq  Q-Team - QPEG 1.1 Format video codec 
  3071. RGBT  Computer Concepts - 32 bit support 
  3072. RT21  Intel - Indeo 2.1 codec 
  3073. RVX  Intel - RDX 
  3074. SDCC  Sun Communications - Digital Camera Codec 
  3075. SFMC  Crystal Net - SFM Codec 
  3076. SMSC  Radius - proprietary 
  3077. SMSD  Radius - proprietary 
  3078. SPLC  Splash Studios - ACM audio codec 
  3079. SQZ2  Microsoft - VXtreme Video Codec V2 
  3080. SV10  Sorenson - Video R1 
  3081. TLMS  TeraLogic - Motion Intraframe Codec 
  3082. TLST  TeraLogic - Motion Intraframe Codec 
  3083. TM20  Duck Corp. - TrueMotion 2.0 
  3084. TMIC  TeraLogic - Motion Intraframe Codec 
  3085. TMOT  Horizons Technology - TrueMotion Video Compression Algorithm 
  3086. TR20  Duck Corp. - TrueMotion RT 2.0 
  3087. V422  Vitec Multimedia - 24 bit YUV 4:2:2 format (CCIR 601). 
  3088. For this format, 2 consecutive pixels are represented by a 32 bit (4 byte) Y1UY2V color value. 
  3089. V655  Vitec Multimedia - 16 bit YUV 4:2:2 format. 
  3090. VCR1  ATI - VCR 1.0 
  3091. VIVO  Vivo - H.263 Video Codec 
  3092. VIXL  Miro Computer Products AG - for use with the Miro line of capture cards. 
  3093. VLV1  Videologic - VLCAP.DRV 
  3094. WBVC  Winbond Electronics - W9960 
  3095. XLV0  NetXL, Inc. - XL Video Decoder 
  3096. YC12  Intel - YUV12 codec 
  3097. YUV8  Winnov, Inc. - MM_WINNOV_CAVIAR_YUV8 
  3098. YUV9  Intel - YUV9 
  3099. YUYV  Canopus - YUYV compressor 
  3100. ZPEG  Metheus - Video Zipper 
  3101.  
  3102.  
  3103. The following list shows the FOURCC values for DIB compression.
  3104.  
  3105. Compressor Code  Description 
  3106. CYUV  Creative Labs, Inc - Creative Labs YUV 
  3107. FVF1  Iterated Systems, Inc. - Fractal Video Frame 
  3108. IF09  Intel - Intel Intermediate YUV9 
  3109. JPEG  Microsoft - Still Image JPEG DIB 
  3110. MJPG  Microsoft - Motion JPEG DIB Format 
  3111. PHMO  IBM - Photomotion 
  3112. ULTI  IBM - Ultimotion 
  3113. VDCT  Vitec Multimedia - Video Maker Pro DIB 
  3114. VIDS  Vitec Multimedia - YUV 4:2:2 CCIR 601 for V422 
  3115. YU92  Intel - YUV 
  3116.  
  3117.  
  3118.  
  3119. Extensive information on Microsoft's Four Character Codes (FOURCC) may be
  3120. found at 
  3121.  
  3122. <A HREF="http://www.webartz.com/fourcc">Dave Wilson's The Almost Definitive FOURCC 
  3123. Definition List</A>
  3124.  
  3125. Microsoft maintains a web page of FOURCC's for video, both pixel
  3126. layouts and compression, with the FOURCC's registered with Microsoft.
  3127.  
  3128. <A HREF="http://www.microsoft.com/hwdev/devdes/fourcc.htm">http://www.microsoft.com/hwdev/devdes/fourcc.htm</A>
  3129.  
  3130.  
  3131. Microsoft has defined 128-bit (16 byte) identifiers known as
  3132. Globally Unique Identifiers (GUIDs) to identify virtually everything
  3133. in the Microsoft Universe.  Microsoft has defined mappings from
  3134. the Four Character Codes used for video and audio codecs to GUID's.
  3135.  
  3136. <A HREF="#FOURCCGUID">GUIDs for Video for Windows Codecs</A>
  3137.  
  3138. <A HREF="#Top">Return to Top</A>
  3139.  
  3140. <A NAME="ALGO">
  3141. <H2>Video Compression Technologies</H2>
  3142. </A>
  3143.  
  3144. There are several underlying technologies used by different Video for
  3145. Windows Codecs.  For example, Indeo 3.2 and Cinepak both use Vector
  3146. Quantization.  The international standards MPEG-1, MPEG-2, MPEG-4,
  3147. H.261, and H.263 all use a combination of the block Discrete Cosine
  3148. Transform (DCT) and motion estimation/compensation.  Several of the
  3149. New Wave codecs use wavelet transform based image compression (the
  3150. Discrete Wavelet Transform or DWT).  Other technologies include
  3151. Fractal Image Compression, represented by Iterated Systems.
  3152.  
  3153. Some general comments on image and video compression:
  3154.  
  3155. (1) Image compression may be lossless where no information is
  3156. lost during the compression process.  The image produced by
  3157. the decompression (also known as decoding) process is identical
  3158. bit by bit with the original image.  The widely used GIF format
  3159. is a lossless image and video (GIF89a or animated GIF) compression
  3160. format.
  3161.  
  3162. LOSSLESS COMPRESSION
  3163.  
  3164. (2) Image compression may be lossy where information is lost during
  3165. the compression process.  These schemes exploit limitations of the
  3166. human visual system.  Some errors are undetectable by the human
  3167. eye.  Even though two images are different at the bit by bit level, the
  3168. human viewer cannot distinguish them.  Some errors are detectable by
  3169. the human eye but acceptable.  Some errors are detectable and very
  3170. annoying.  The widely used JPEG image compression standard is a lossy
  3171. compression scheme.
  3172.  
  3173. LOSSY COMPRESSION
  3174.  
  3175. (3) Within lossy image and video compression, a compression scheme may
  3176. be perceptually lossless, in which case the human viewer cannot 
  3177. distinguish between the original image or video and the decompressed 
  3178. compressed image or video which has errors introduced by the lossy
  3179. compression.  Most lossy image and video compression have some sort of
  3180. quality factor or factors.  If the quality is good enough, then the image will
  3181. be perceptually lossless.
  3182.  
  3183. PERCEPTUALLY LOSSLESS COMPRESSION
  3184.  
  3185. (3) JPEG's and MPEG's and other lossy compression of images and video
  3186. are often compressed beyond the point of perceptual losslessness, but
  3187. the compressed images and video are still acceptable to the human viewer.
  3188. If the compression and decompression degrades the image in a way that
  3189. is very similar or identical to the natural degradation of images that might
  3190. occur in the world then the human visual system will not object greatly.
  3191.  
  3192. Loss of fine detail in an image is often acceptable because humans
  3193. perceive objects in the natural world with widely varying levels of
  3194. detail depending on how close the human viewer is to the object and
  3195. whether the human viewer is looking directly at the object or not.
  3196. The human viewer sees less detail if an object is further away.
  3197. When a human viewer looks directly at an object, the viewer uses a
  3198. small very high resolution part of the retina.  If an object is to one
  3199. side of the direction of view, the viewer is using lower resolution
  3200. parts of the retina.  Human beings are also used to certain natural
  3201. forms of degradation such as rain, snow, and fog.
  3202.  
  3203. Note that in all these natural viewing situation, the human viewer
  3204. will still perceive sharp edges and lines in an image regardless of
  3205. the level of detail.  The human viewer will usually perceive the
  3206. objects as the same object despite the variations in level of detail.
  3207. A horse is a horse is a horse.
  3208.  
  3209. NATURALLY LOSSY COMPRESSION
  3210.  
  3211. (4) Sufficiently low quality lossy compression will introduce visual
  3212. artifacts that are highly annoying to the human viewer.  An example
  3213. is the blocking artifacts visible in highly compressed MPEG video and
  3214. other block Discrete Cosine Transform based image compression codecs.
  3215. At some point the lossy compression will introduce artifacts that are
  3216. very unnatural and are perceived as new objects in the scene or spurious
  3217. lines within the image. 
  3218.  
  3219. The human visual system is very sensitive to lines or edges.  One of its
  3220. main functions appears to be to detect and characterize physical
  3221. objects such as other people, potential threats such as predators, food
  3222. plants, and other things.  Objects in the visual system are dilineated by
  3223. edges.  Anything such as a codec algorithm that destroys or creates an
  3224. edge in an image is noticed, particularly if the edge is interpreted as
  3225. the border of an object by the human visual and cognitive system.
  3226.  
  3227. UNNATURAL LOSSY COMPRESSION 
  3228.  
  3229. All of the widely used video codecs are lossy compression algorithms.
  3230. At sufficiently high compression most of them will have problems with the
  3231. edges in the image.  Vector quantization, block Discrete Cosine Transform,
  3232. and wavelet based image and video compression inherently do not 
  3233. mathematically represent the intuitive notion of an edge or line.
  3234.  
  3235. THE POINT:  In using and selecting video codecs, the author of an
  3236. AVI file (or a compressed digital video in general) needs to achieve
  3237. NATURALLY LOSSY COMPRESSION or better.  Once the compression 
  3238. introduces noticable AND unnatural artifacts, the video is of very
  3239. limited use even in cases where some features and objects are 
  3240. recognizable.
  3241.  
  3242. A basic description of video compression technologies follows.  I have
  3243. tried to avoid the dense mathematics found in most of the technical
  3244. video and image compression literature.
  3245.  
  3246. <A HREF="#Top">Return to Top</A>
  3247.  
  3248. <A NAME="RLE">
  3249. <H3>Run Length Encoding</H3>
  3250. </A>
  3251.  
  3252. VIDEO CODECS THAT USE RUN LENGTH ENCODING
  3253.  
  3254. Microsoft RLE (MRLE)
  3255.  
  3256. Run length encoding is also used to encode the DCT coefficients in
  3257. the block Discrete Cosine Transform (DCT) based international
  3258. standards MPEG, H.261, H.263, and JPEG.
  3259.  
  3260.  
  3261. STRENGTHS AND WEAKNESSES
  3262.  
  3263. 1.  Works for bilevel or 8 bit graphic images such as cel animation.
  3264.  
  3265. 2.  Not good for high resolution natural images.
  3266.  
  3267.  
  3268. OVERVIEW
  3269.  
  3270. Run length encoding encodes a sequence or run of consecutive
  3271. pixels of the same color (such as black or white) as a single
  3272. codeword.
  3273.  
  3274. For example, the sequence of pixels
  3275.  
  3276. 77 77 77 77 77 77 77
  3277.  
  3278. could be coded as
  3279.  
  3280. 7 77  (for seven 77's)
  3281.  
  3282. Run length encoding can work well for bi-level images (e.g.
  3283. black and white text or graphics) and for 8 bit images, particularly
  3284. images such as cel animations which contain many runs of the same
  3285. color.
  3286.  
  3287. Run length encoding does not work well for 24 bit natural images
  3288. in general.  Runs of the same color are not that common.
  3289.  
  3290. <A HREF="#Top">Return to Top</A>
  3291.  
  3292. <A NAME="VQ">
  3293. <H3>Vector Quantization</H3>
  3294. </A>
  3295.  
  3296. VIDEO CODECS THAT USE VECTOR QUANTIZATION
  3297.  
  3298. Indeo 3.2
  3299. Cinepak
  3300.  
  3301. Indeo 3.2 and Cinepak both use vector quantization.  As with most
  3302. digital video, Indeo and Cinepak work in the YUV color space (not RGB
  3303. for example).
  3304.  
  3305. STRENGTHS AND WEAKNESSES
  3306.  
  3307. 1.  The encoding process is computationally intensive.  Still cannot
  3308. be done in real time without dedicated hardware.
  3309.  
  3310. 2.  The decoding process is very fast.
  3311.  
  3312. 3.  Blocking artifacts at high compression.
  3313.  
  3314. 4.  Generally, block Discrete Cosine Transform and Discrete Wavelet
  3315. Transform based image compression methods can achieve higher compression.
  3316.  
  3317. OVERVIEW
  3318.  
  3319. The basic idea of Vector Quantization based image compression is to
  3320. divide the image up into blocks (4x4 pixels in YUV space for Indeo and
  3321. Cinepak).  Typically, some blocks (hopefully many) are similar to
  3322. other blocks although usually not identical.  The encoder identifies a
  3323. class of similar blocks and replaced these with a "generic" block
  3324. representative of the class of similar blocks.  The encoder encodes a
  3325. lookup table that maps short binary codes to the "generic" blocks.
  3326. Typically, the shortest binary codes represent the most common classes
  3327. of blocks in the image.
  3328.  
  3329. The Vector Quantization (VQ) decoder uses the lookup table to assemble
  3330. an approximate image comprised of the "generic" blocks in the lookup
  3331. table.
  3332.  
  3333. Note that this is inherently a lossy compression process because the
  3334. actual blocks are replaced with a generic block that is a "good
  3335. enough" approximation to the original block.
  3336.  
  3337. The encoding process is slow and computationally intensive because the
  3338. encoder must accumulate statistics on the frequency of blocks and
  3339. calculate the similarity of blocks in order to build the lookup table.
  3340.  
  3341. The decoding process is very quick because it is lookup table based.
  3342. In Vector Quantization, the lookup table may be called a codebook.
  3343. The binary codes that index into the table may be called codewords.
  3344.  
  3345. Higher compression is achieved by making the lookup table smaller,
  3346. fewer classes of similar blocks in the image.  The quality of the
  3347. reproduced approximate image degrades as the lookup table becomes
  3348. smaller.
  3349.  
  3350. Vector Quantization is prone to blocking artifacts as compression is increased.
  3351.  
  3352. Vector Quantization is an entire sub-field in signal and image
  3353. processing.  It goes well beyond the brief description above and  
  3354. is applied to other uses than video compression.
  3355.  
  3356. The standard reference book on Vector Quantization is:
  3357.  
  3358. Vector Quantization and Signal Compression
  3359. A. Gersho and R. Gray
  3360. Boston, MA : Kluwer, 1992
  3361.  
  3362. Like many image and signal processing books, this is heavy on
  3363. abstract math.
  3364.  
  3365. <H4>A Simple Example</H4>
  3366.  
  3367. Consider the following 4 by 4 blocks of pixels.  Each pixel has a value
  3368. in the range of 0-255.  This is a grayscale image for simplicity.
  3369.  
  3370. (Block 1)
  3371. 128 128 128 128
  3372.  
  3373. 128 128 128 128
  3374.  
  3375. 128 128 128 128
  3376.  
  3377. 128 128 128 128
  3378.  
  3379. (Block 2)
  3380. 128 127 128 128
  3381.  
  3382. 128 128 128 128
  3383.  
  3384. 128 128 127 128
  3385.  
  3386. 128 128 128 128
  3387.  
  3388. (Block 3)
  3389. 128 127 126 128
  3390.  
  3391. 128 128 128 128
  3392.  
  3393. 127 128 128 128
  3394.  
  3395. 128 128 128 128
  3396.  
  3397. In practice, the blocks will look the same to a human viewer.
  3398. The second and third blocks could be safely replaced by the first
  3399. block.  By itself, this does not compress the image.  However, the
  3400. replacement block (Block 1) could be represented by a short index into
  3401. a lookup table of 4x4 blocks.  For example, the index, in this case,
  3402. could be 1.
  3403.  
  3404. Lookup Table[1] = 128 128 128 128
  3405.                   128 128 128 128
  3406.                   128 128 128 128
  3407.                   128 128 128 128
  3408.  
  3409. The original image could be converted into a lookup table and a series
  3410. of indexes into the lookup table, achieving substantial compression.
  3411. In video, the same lookup table could be used for many frames, not just
  3412. a single frame.
  3413.  
  3414. <A HREF="#Top">Return to Top</A>
  3415.  
  3416. <A NAME="DCT">
  3417. <H3>Discrete Cosine Transform</H3>
  3418. </A>
  3419.  
  3420. VIDEO CODECS THAT USE DCT
  3421.  
  3422. Motion JPEG
  3423. Editable MPEG
  3424. MPEG-1
  3425. MPEG-2
  3426. MPEG-4
  3427. H.261
  3428. H.263
  3429. H.263+
  3430.  
  3431.  
  3432. STRENGTHS AND WEAKNESSES
  3433.  
  3434. 1.  Blocking artifacts at high compression.
  3435.  
  3436. 2.  Ringing at sharp edges.  Occasional blurring at sharp edges.
  3437.  
  3438. 3.  Computationally intensive.  Only recently has it been possible
  3439. to implement in real time on general purpose CPU's as opposed to
  3440. specialized chips.
  3441.  
  3442.  
  3443. OVERVIEW
  3444.  
  3445.    The Discrete Cosine Transform (DCT) is a widely used transform in
  3446. image compression.  The JPEG still image compression standard, the
  3447. H.261 (p*64) video-conferencing standard, the H.263 video-conferencing
  3448. standard and the MPEG (MPEG-1, MPEG-2, and MPEG-4) digital video
  3449. standards use the DCT.  In these standards, a two-dimensional (2D) DCT
  3450. is applied to 8 by 8 blocks of pixels in the image that is compressed.
  3451. The 64 (8x8 = 64) coefficients produced by the DCT are then quantized
  3452. to provide the actual compression.  In typical images, most DCT
  3453. coefficients from a DCT on an 8 by 8 block of pixels are small and
  3454. become zero after quantization.  This property of the DCT on real world
  3455. images is critical to the compression schemes.
  3456.  
  3457.    In addition, the human eyes are less sensitive to the high frequency
  3458. components of the image represented by the higher DCT coefficients.
  3459. A large quantization factor can and usually is applied to these
  3460. higher frequency components.  The de facto standard quantization
  3461. matrix (a matrix of 64 quantization factors, one for each of the 64
  3462. DCT coefficients) in the JPEG standard has higher quantization factors
  3463. for higher frequency DCT coefficients.
  3464.  
  3465.    The quantized DCT coefficients are then run-length encoded as variable
  3466. length codes that indicate some number of zero coefficients followed by
  3467. a non-zero coefficient.  For example, a run-length code might indicate
  3468. 4 zero coefficients followed by a non-zero coefficient of level 2.  Short
  3469. variable length codes (e.g. 0110) are used for common combinations of
  3470. runs of zero and levels of the non-zero coefficient.  Longer variable
  3471. length codes (e.g. 0000001101) are used for less common combinations of
  3472. runs of zero and levels of the non-zero coefficient.  In this way,
  3473. substantial compression of the image is possible.
  3474.  
  3475.    The Discrete Cosine Transform itself is best explained as a 1 dimensional
  3476. (1D) DCT first.  The 2D DCT is equivalent to performing a 1D DCT on each
  3477. row of a block of pixels followed by a 1D DCT on each column of the block of
  3478. pixels produced by the 1D DCT's on the rows.
  3479.  
  3480.    The one dimensional Discrete Cosine Transform is applied to a block of
  3481. N samples (pixels in an image or sound pressure samples in an audio file).
  3482. The Discrete Cosine Transform is an NxN matrix whose rows are sampled
  3483. cosine functions:
  3484.  
  3485.             DCT(m,n) = sqrt( (1 - delta(m,1) ) / N )
  3486.  
  3487.                             * cos( (pi/N) * (n - 1/2) *  (m-1) )
  3488.  
  3489.               where
  3490.  
  3491.                           DCT(m,n) is the 1D DCT Matrix
  3492.                           m,n = 1,...,N
  3493.                           pi = 3.14159267...
  3494.                           N = number of samples in block
  3495.                           delta(m,1) = 1 if m is 1
  3496.                                        0 otherwise
  3497.                           cos(x) = cosine of x (radians)
  3498.                           *      = multiply
  3499.  
  3500.  
  3501.    Naively, performing a DCT on a block of N samples would require
  3502. N*N multiplies and adds.  However, the DCT matrix has
  3503. a recursive structure that allows implementation with order
  3504. N log(N) multiplies and adds (many fewer).  This makes the DCT practical
  3505. for implementation on current CPUs and DSPs.  
  3506.  
  3507. <A HREF="#Top">Return to Top</A>
  3508.  
  3509. <A NAME="DWT">
  3510. <H3>Discrete Wavelet Transform (DWT)</H3>
  3511. </A>
  3512.  
  3513. Video Codecs Using the Discrete Wavelet Transform:
  3514.  
  3515. VDONet's VDOWave
  3516. VxTreme
  3517. Intel Indeo 5.x
  3518. (possibly) Intel Indeo 4.x
  3519.  
  3520.  
  3521. STRENGTHS AND WEAKNESSES
  3522.  
  3523. 1.  Most video and image compression implemented using the 
  3524. Discrete Wavelet Transform does not exhibit the blocking, also known
  3525. as tiling, artifacts seen with the block Discrete Cosine Transform.
  3526.  
  3527. 2.  DWT based video and image compression often outperforms block DCT
  3528. compression if evaluated using the Peak Signal to Noise Ratio (PSNR)
  3529. or Mean Squared Error (MSE) metric (these are mathematically
  3530. equivalent).
  3531.  
  3532. 3.  The subjective quality of video or images compressed with
  3533. DWT can appear better than block DCT methods for the same
  3534. compression ratio.
  3535.  
  3536. 4.  Wavelet compression exhibits blurring and ringing artifacts
  3537. at sharp edges as compression increases.  This is an inherent
  3538. weakness of the method, shared with the Discrete Cosine Transform
  3539. which also exhibits the same type of artifacts.  The ringing artifacts
  3540. are also known as contouring, mosquito noise, and the Gibbs effect.
  3541.  
  3542.  
  3543. OVERVIEW
  3544.  
  3545. The Discrete Wavelet Transform essentially consists of passing a
  3546. signal, such as an image, through a pair of filters, a low pass filter
  3547. and a high pass filter.  The low pass filter yields a coarse or low
  3548. resolution version of the signal.  The high pass filter yields an
  3549. added detail or difference signal.  The outputs of the two filters are
  3550. then downsampled by two.  Thus, at this point the downsampled outputs
  3551. have the same number of bits as the input signal.  The parameters of
  3552. the two filters are selected so that when the upsampled output of the
  3553. low pass filter is added to the upsampled output of the high pass
  3554. filter, the original signal is reproduced.
  3555.  
  3556. The output of the high pass filter, the added detail signal, may then be fed
  3557. into another pair of filters and the process repeated.
  3558.  
  3559. A simple example of the discrete wavelet transform is the Haar
  3560. wavelet transform.
  3561.  
  3562. The input signal is x[n], a series of samples indexed by n. 
  3563.  
  3564. Haar Low Pass Filter (the average of two successive samples)
  3565.  
  3566. g[n] = 1/2 * ( x[n] + x[n+1] )
  3567.  
  3568. Haar High Pass Filter (the difference of two successive samples)
  3569.  
  3570. h[n] = 1/2 * ( x[n+1] - x[n] )
  3571.  
  3572.  
  3573. Note that:
  3574.  
  3575. x[n] = g[n] - h[n]
  3576.  
  3577. x[n+1] = g[n] + h[n]
  3578.  
  3579. The output sequences g[n] and h[n] contain redundant information.  
  3580. One can safely downsample by two, that is omit the even or odd
  3581. samples, and still reproduce the original input signal x[n].
  3582. Usually the odd samples are omitted.
  3583.  
  3584. The complete input signal x[n] can be reproduced from
  3585.  
  3586. g[0], g[2], g[4], ....
  3587. h[0], h[2], h[4], ....
  3588.  
  3589. alone.
  3590.  
  3591. x[0] = g[0] - h[0]
  3592. x[1] = g[0] + h[0]
  3593.  
  3594. x[2] = g[2] - h[2]
  3595. x[3] = g[2] + h[2]
  3596.  
  3597. and so on.
  3598.  
  3599. The output of the low pass filter is a coarse approximation of the
  3600. original input signal.  When the input signal is an image, this
  3601. means a - sometimes blurry - low resolution version of the original image.
  3602.  
  3603. The output of the high pass filter is an added detail or difference
  3604. signal.  When combined with the coarse approximation, as described, the
  3605. original input signal is exactly reproduced.
  3606.  
  3607. The coarse approximation is sometimes called a base layer and the 
  3608. added detail is sometimes called an enhancement layer.
  3609.  
  3610. The output of the high pass filter, h[n], can be fed into another
  3611. pair of filters, repeating the process.  The Discrete Wavelet Transforms
  3612. used in wavelet image and video compression iterate the process many
  3613. times.
  3614.  
  3615. So far, no compression has occured.  The transform produces the same
  3616. number of bits as the input signal.
  3617.  
  3618. The output values are called transform coefficients or wavelet transform
  3619. coefficients.
  3620.  
  3621. The Haar wavelet is used primarily for illustrative purposes.  More
  3622. complex filters are used for most real wavelet implementations.
  3623.  
  3624. Compression is typically achieved by applying some form of quantization,
  3625. scalar quantization in simple implementations and vector quantization 
  3626. in more complex implementations, to the added detail signals.  Some type of
  3627. <A HREF="#Entropy">entropy coding</A> may be applied to the quantized
  3628. transform coefficients.
  3629.  
  3630. For example, in the crude Haar wavelet example, the input signal x[n]
  3631. might be a series of 8 bit samples such as a raster scan of a gray
  3632. scale image.  One could continue to use 8 bits for the output of the
  3633. low pass filter, g[n].  However, use only 6 bits (divide by 4) for the
  3634. output of the high pass filter, h[n] - the detail signal.  This is
  3635. scalar quantization.  Further, the output of the high pass filter in
  3636. the Haar case will tend to be peaked toward zero, that is small
  3637. coefficients will be more common than large coefficients.  Thus, some
  3638. form of <A HREF="#Entropy">entropy coding</A> of the detail signal
  3639. h[n] is possible.
  3640.  
  3641. In fact, for most natural images, the low pass signal g[n] 
  3642. will be correlated with
  3643. previous samples g[n-1] except at edges.  g[n] will tend to be close
  3644. to or the same as g[n-1].  Objects tend to
  3645. have a continuous surface material, such as skin, with a constant
  3646. surface reflectance, a texture.  The texture can be a simple
  3647. constant color level or a complex periodic or quasi-periodic
  3648. pattern, for example wallpaper or marble.  Thus the low
  3649. pass signal g[n] could be encoded as a difference from previous
  3650. samples g[n-1] to achieve further compression.
  3651.  
  3652. For image coding, the notion is that the human visual system is less
  3653. sensitive to fine details in the image than to the gross features.
  3654. Thus quantization can be applied to the detail signals more strongly.
  3655.  
  3656. <A HREF="#Top">Return to Top</A>
  3657.  
  3658. <A NAME="Contour">
  3659. <H3>Contour-Based Image Coding</H3>
  3660. </A>
  3661.  
  3662. Video Codecs Using Contour-Based Image Coding:
  3663.  
  3664. Crystal Net's Surface Fitting Method (SFM) may be an example of
  3665. Contour-Based Image Coding.
  3666.  
  3667. The emerging ISO standard MPEG-4 incorporates some ideas associated
  3668. with Contour-Based Image Coding.
  3669.  
  3670. OVERVIEW
  3671.  
  3672. A contour is a line representing the outline of a figure, body, or
  3673. mass.  A texture is a representation of the structure of a surface.
  3674. Contour-based image coding represents images as contours bounding
  3675. textured regions.  Since contours frequently correspond to the boundaries
  3676. of objects in a scene there is a close relationship between 
  3677. contour-based image coding and object-based image coding.  Object-based
  3678. image coding represents an image as a collection of objects.
  3679.  
  3680. For example, once contours and textures have been extracted from an
  3681. image, the contours can be encoded as the control points of a spline -
  3682. a polynomial function used to represent curves - fitted to the
  3683. contour.  The textures can be encoded as the transform coefficients
  3684. from a spatial frequency transform such as the Discrete Cosine
  3685. Transform or the many variants of the Discrete Wavelet Transform.
  3686. Compression can be achieved through <A HREF="#Entropy">entropy
  3687. coding</A> of scalar or vector quantization of the control parameters
  3688. of the spline and the transform coeffecients used for the texture.
  3689.  
  3690. Contour-Based Image Coding is a very leading edge image coding
  3691. technology (May, 1999).  Extracting contours, also known as
  3692. edge or line detection, remains an unsolved problem in computer
  3693. science.  Whereas human viewers have an easy sense of what is and
  3694. is not a contour or line in a scene, computer algorithms - so far -
  3695. miss some contours, as defined by humans, and also find spurious
  3696. contours, as defined by humans.  Extracting contours is one of a number
  3697. of pattern recognition and reasoning tasks that seem almost effortless
  3698. in humans but have proven difficult - impossible so far - to emulate
  3699. with computers.
  3700.  
  3701. A number of edge detection and image segmentation algorithms exist that
  3702. could be applied to the contour extraction in contour-based image
  3703. coding.
  3704.  
  3705. In principle, contour based image coding could circumvent the 
  3706. problems that transform coding methods such as the Discrete Cosine
  3707. Transform (JPEG, MPEG, H.261, H.263, DV, etc.) and the Discrete
  3708. Wavelet Transform (Intel Indeo, VDONet VDOWave, etc.) encounter at
  3709. sharp edges, achieving higher compression.
  3710.  
  3711. <A NAME="FD">
  3712. <H3>Frame Differencing</H3>
  3713. </A>
  3714.  
  3715. VIDEO CODECS THAT USE FRAME DIFFERENCING
  3716.  
  3717. Cinepak
  3718.  
  3719. STRENGTHS AND WEAKNESSES
  3720.  
  3721. 1. Generally can achieve better compression than independent encoding
  3722. of individual frames.
  3723.  
  3724. 2. Errors accumulate in successsive frames after a key frame, eventually
  3725. requiring another key frame.  (see below)
  3726.  
  3727. OVERVIEW
  3728.  
  3729. Frame Differencing exploits the fact that little changes from frame to
  3730. frame in many video or animation sequences.  For example, a video
  3731. might show a ball flying through the air in front of a static
  3732. background.  Most of the image, the background, does not change from
  3733. frame to subsequent frame in the scene.
  3734.  
  3735. In frame differencing, the still image compression method such as
  3736. vector quantization is applied to the difference between the frame and
  3737. the decoded previous frame.  Often, most of the difference is zero or
  3738. small values which can be heavily compressed.
  3739.  
  3740. Most often, frame differencing uses "key frames" which are frames
  3741. compressed without reference to a previous frame.  This limits accumulated
  3742. errors and enables seeking within the video stream.
  3743.  
  3744. In the widely used Cinepak, a key frame is often set every 15 frames.
  3745. Cinepak movies usually use frame differencing combined with vector
  3746. quantization.
  3747.  
  3748. If the compression scheme is lossy (vector quantization is lossy), errors
  3749. will accumulate from frame to frame.  Eventually these errors will become
  3750. visible.  This necessitates key frames!
  3751.  
  3752. <A HREF="#Top">Return to Top</A>
  3753.  
  3754. <A NAME="Motion">
  3755. <H3>Motion Compensation</H3>
  3756. </A>
  3757.  
  3758. VIDEO CODECS THAT USE MOTION COMPENSATION
  3759.  
  3760. ClearVideo (RealVideo) Fractal Video Codec from Iterated Systems
  3761. VDOWave from VDONet
  3762. VxTreme
  3763. MPEG-1,2, and 4
  3764. H.261
  3765. H.263
  3766. H.263+
  3767.  
  3768. STRENGTHS AND WEAKNESSES
  3769.  
  3770. 1. Motion compensation achieves high video compression in video
  3771. generally superior to frame differencing.
  3772.  
  3773. 2. The encoding phase of motion compensation (known as motion
  3774. estimation) is computationally intensive.  MPEG-1 with IP and
  3775. B frames cannot be encoded in real time without dedicated
  3776. hardware, a silicon implementation of motion estimation.
  3777.  
  3778. 3. The motion compensation scheme used in the international
  3779. standards MPEG, H.261, and H.263 works best for scenes with
  3780. limited motion such as talking heads.  In general, video with
  3781. heavy motion such as sports video is hard to compress with
  3782. motion compensation.
  3783.  
  3784. OVERVIEW
  3785.  
  3786. Motion Compensation codes for motion within a scene such as a ball
  3787. moving across a background.  The block Discrete Cosine Transform (DCT)
  3788. based international video standards MPEG-1, MPEG-2, MPEG-4, H.261, and
  3789. H.263 use motion compensation.  Iterated Systems ClearVideo (Real
  3790. Video) fractal Video Codec, VDOWave from VDONet, and VxTreme's video
  3791. codec use forms of motion compensation.
  3792.  
  3793. Motion Compensation refers to a number of ideas and algorithms.  The
  3794. motion compensation method used in MPEG and related international
  3795. standards (H.261 and H.263) is described below.  This motion
  3796. compensation works for translational motion only.  This is suited for
  3797. objects moving across a background or panning of the camera.  It does
  3798. not work well for spinning objects, resizing objects, or camera zooms.
  3799. Alternative forms of motion compensation exist which handle
  3800. rotational, scaling, skewing, and other kinds of motion in a scene.
  3801.  
  3802. Recognizing objects such as a flying ball in a scene is an unsolved
  3803. problem in image processing and understanding.  A way to exploit
  3804. the motion of the ball to achieve image compression is to partition the
  3805. image into blocks (16x16 pixels in MPEG-1).  Code a "motion vector" for
  3806. each block which points to the 16x16 pixel block in a previous (or
  3807. future) frame that most closely approximates the block being coded.
  3808. In many cases this reference block will be the same block (no motion).
  3809. In some cases this reference block will be a different block (motion).
  3810. The encoder need not recognize the presence of a ball or other object, only
  3811. compare blocks of pixels in the decoded and reference frames.
  3812.  
  3813. COMPRESSION IS ACHIEVED BY SENDING OR STORING ONLY THE MOTION VECTOR
  3814. (AND A POSSIBLE SMALL ERROR) INSTEAD OF THE PIXEL VALUES FOR THE
  3815. ENTIRE BLOCK.
  3816.  
  3817. Note that the reference block can be anywhere in the image.  The coded
  3818. or "predicted" blocks must form a partition or tiling of the image (frame)
  3819. being decoded.  A reference block can be any 16x16 pixel block in 
  3820. the reference frame (image) that most closely approximates the coded
  3821. or "predicted" block.  The reference frame must be decoded prior to
  3822. the current frame being decoded.
  3823.  
  3824. However, the reference frame need not be PRESENTED before the current
  3825. frame being decoded.  In fact, the reference frame could be a future
  3826. frame!!  MPEG allows for this through so-called B (bi-directionally
  3827. predicted) frames.
  3828.  
  3829. In the example of the ball in front of a static background, no motion
  3830. occurs in most of the blocks.  For these cases, the motion vectors
  3831. are zero.  Motion compensation for these blocks is then equivalent
  3832. to frame differencing, where the difference between the block and the
  3833. same block in a previous (or future) frame is coded.
  3834.  
  3835. For the block or blocks containing the moving ball, the motion vectors
  3836. will be non-zero, pointing to a block in a previous (or future) frame
  3837. that contains the ball.  The displaced block is subtracted from
  3838. the current block.  In general, there will be some left over non-zero
  3839. values, which are then coded using the still image compression scheme
  3840. such as Vector Quantization, the Block Discrete Cosine Transform, or
  3841. the Discrete Wavelet Transform.
  3842.  
  3843. MPEG style motion compensation does not require recognition of the
  3844. ball.  An encoder simply compares the block being coded with displaced
  3845. blocks in the reference frame (a previous or future frame).  The
  3846. comparison can use mean squared error or some other metric of
  3847. differences between images.  The encoder selects the displaced block
  3848. with the smallest mean squared error difference!  At no point has the
  3849. encoder recognized an object in the image.
  3850.  
  3851. In MPEG, the motion vectors are encoded as variable length codes for
  3852. greater compression.
  3853.  
  3854. The encoding process is called Motion Estimation.  This finds the
  3855. motion vector (or vectors) for each block.
  3856.  
  3857. The decoding process is called Motion Compensation.
  3858.  
  3859. Motion Compensation achieves greater compression than simple Frame
  3860. Differencing.
  3861.  
  3862. ILLUSTRATIVE EXAMPLE:
  3863.  
  3864.   Predicted Region                        Reference Region
  3865. (the current frame being decoded)       (a previously decoded frame)
  3866.   _________                              _________
  3867.  |    |    |                            |    |    |
  3868.  | *  |    |                            |    | *  |  (moving ball)
  3869.  | 4  | -4 |                            |    |    |
  3870.  |    |    |                            |    |    |
  3871.   _________                              _________
  3872.  |    |    |                            |    |    |
  3873.  | 0  | 0  |                            |    |    |  (no change)
  3874.  |    |    |                            |    |    |
  3875.  |    |    |                            |    |    |
  3876.   _________                              _________
  3877.  
  3878. The asterisk (*) represents a ball flying across the scene from right
  3879. to left.  
  3880.  
  3881. Four blocks with associated motion vectors (4, -4, 0, and 0).  The
  3882. upper left block looks like the upper right block in the reference
  3883. region (where the ball was).  The upper right block looks like the
  3884. upper left region in the reference region.  The lower left and
  3885. lower right blocks were unchanged.  In this simple example, the
  3886. vertical displacement is zero and is ignored.  
  3887.  
  3888. In this simple example, the region can be decoded using the
  3889. motion vectors alone.  In more general cases, there is an 
  3890. error between the frame predicted using motion vectors alone
  3891. and the actual frame.  This error is coded using a still image
  3892. compression scheme such as the block Discrete Cosine Transform (DCT).
  3893.  
  3894. In this simple example, the previously decoded frame is also
  3895. previous in the presentation order.  The previously decoded or
  3896. reference frame precedes the current frame in time.  In general, keep
  3897. in mind the distinction between decode order and presentation order.
  3898. The reference frame could be a future frame.
  3899.  
  3900. <A HREF="#Top">Return to Top</A>
  3901.  
  3902. <A NAME="ACM">
  3903. <H3>Audio Codecs</H3>
  3904. </A>
  3905.  
  3906. The sound tracks in an AVI file are Microsoft Waveform Audio (WAV) files.
  3907. The Waveform Audio files can be uncompressed PCM (Pulse Code Modulated) audio
  3908. or compressed with many different audio codecs (compressor/decompressors).
  3909.  
  3910. The windows multimedia system uses the terms WAVE or waveform audio to
  3911. refer to audio that consists of digitally sampled sound.  In contrast
  3912. to notes of music as in MIDI, another type of audio incorporated in
  3913. the Windows multimedia system.
  3914.  
  3915. The WAV, WAVE, or waveform audio system (different authors use all
  3916. three to refer to the Microsoft Windows audio system) predates
  3917. Video for Windows.  Video for Windows was wrapped around
  3918. WAVE.  Various compromises were made to insure backward compatibility
  3919. with existing WAVE applications, drivers, and files.  Keep this
  3920. in mind as there are various differences between the audio
  3921. system and the video system described in other sections of this
  3922. overview.
  3923.  
  3924. To play a waveform audio (WAV) file or the sound track of an AVI
  3925. compressed with a codec, the codec must be installed in the Audio
  3926. Compression Manager under Windows.  Windows PCM files (uncompressed)
  3927. are always supported.  The Audio Compression Manager (ACM) is the
  3928. software system in Windows that manages waveform audio codecs and
  3929. filters.
  3930.  
  3931. Different audio codecs are identified with different waveform audio
  3932. tags, 32 bit numbers.  Wave audio format tags are registered with
  3933. Microsoft.  
  3934.  
  3935. The following list of registered wave audio formats if from the
  3936. mmreg.h file in the Win32 SDK.  mmreg.h is the Registered Multimedia
  3937. Information Public Header File
  3938.  
  3939. /* WAVE form wFormatTag IDs */
  3940. #define  WAVE_FORMAT_UNKNOWN    0x0000  /*  Microsoft Corporation  */
  3941. #define  WAVE_FORMAT_ADPCM      0x0002  /*  Microsoft Corporation  */
  3942. #define  WAVE_FORMAT_IBM_CVSD   0x0005  /*  IBM Corporation  */
  3943. #define  WAVE_FORMAT_ALAW       0x0006  /*  Microsoft Corporation  */
  3944. #define  WAVE_FORMAT_MULAW      0x0007  /*  Microsoft Corporation  */
  3945. #define  WAVE_FORMAT_OKI_ADPCM  0x0010  /*  OKI  */
  3946. #define  WAVE_FORMAT_DVI_ADPCM  0x0011  /*  Intel Corporation  */
  3947. #define  WAVE_FORMAT_IMA_ADPCM  (WAVE_FORMAT_DVI_ADPCM) /*  Intel Corporation  */
  3948. #define  WAVE_FORMAT_MEDIASPACE_ADPCM   0x0012  /*  Videologic  */
  3949. #define  WAVE_FORMAT_SIERRA_ADPCM       0x0013  /*  Sierra Semiconductor Corp  */
  3950. #define  WAVE_FORMAT_G723_ADPCM 0x0014  /*  Antex Electronics Corporation  */
  3951. #define  WAVE_FORMAT_DIGISTD    0x0015  /*  DSP Solutions, Inc.  */
  3952. #define  WAVE_FORMAT_DIGIFIX    0x0016  /*  DSP Solutions, Inc.  */
  3953. #define  WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017  /*  Dialogic Corporation  */
  3954. #define  WAVE_FORMAT_YAMAHA_ADPCM       0x0020  /*  Yamaha Corporation of America  */
  3955. #define  WAVE_FORMAT_SONARC     0x0021  /*  Speech Compression  */
  3956. #define  WAVE_FORMAT_DSPGROUP_TRUESPEECH        0x0022  /*  DSP Group, Inc  */
  3957. #define  WAVE_FORMAT_ECHOSC1    0x0023  /*  Echo Speech Corporation  */
  3958. #define  WAVE_FORMAT_AUDIOFILE_AF36     0x0024  /*    */
  3959. #define  WAVE_FORMAT_APTX       0x0025  /*  Audio Processing Technology  */
  3960. #define  WAVE_FORMAT_AUDIOFILE_AF10     0x0026  /*    */
  3961. #define  WAVE_FORMAT_DOLBY_AC2  0x0030  /*  Dolby Laboratories  */
  3962. #define  WAVE_FORMAT_GSM610     0x0031  /*  Microsoft Corporation  */
  3963. #define  WAVE_FORMAT_ANTEX_ADPCME       0x0033  /*  Antex Electronics Corporation  */
  3964. #define  WAVE_FORMAT_CONTROL_RES_VQLPC  0x0034  /*  Control Resources Limited  */
  3965. #define  WAVE_FORMAT_DIGIREAL   0x0035  /*  DSP Solutions, Inc.  */
  3966. #define  WAVE_FORMAT_DIGIADPCM  0x0036  /*  DSP Solutions, Inc.  */
  3967. #define  WAVE_FORMAT_CONTROL_RES_CR10   0x0037  /*  Control Resources Limited  */
  3968. #define  WAVE_FORMAT_NMS_VBXADPCM       0x0038  /*  Natural MicroSystems  */
  3969. #define  WAVE_FORMAT_CS_IMAADPCM 0x0039 /* Crystal Semiconductor IMA ADPCM */
  3970. #define  WAVE_FORMAT_G721_ADPCM 0x0040  /*  Antex Electronics Corporation  */
  3971. #define  WAVE_FORMAT_MPEG       0x0050  /*  Microsoft Corporation  */
  3972. #define  WAVE_FORMAT_CREATIVE_ADPCM     0x0200  /*  Creative Labs, Inc  */
  3973. #define  WAVE_FORMAT_CREATIVE_FASTSPEECH8       0x0202  /*  Creative Labs, Inc  */
  3974. #define  WAVE_FORMAT_CREATIVE_FASTSPEECH10      0x0203  /*  Creative Labs, Inc  */
  3975. #define  WAVE_FORMAT_FM_TOWNS_SND       0x0300  /*  Fujitsu Corp.  */
  3976. #define  WAVE_FORMAT_OLIGSM     0x1000  /*  Ing C. Olivetti & C., S.p.A.  */
  3977. #define  WAVE_FORMAT_OLIADPCM   0x1001  /*  Ing C. Olivetti & C., S.p.A.  */
  3978. #define  WAVE_FORMAT_OLICELP    0x1002  /*  Ing C. Olivetti & C., S.p.A.  */
  3979. #define  WAVE_FORMAT_OLISBC     0x1003  /*  Ing C. Olivetti & C., S.p.A.  */
  3980. #define  WAVE_FORMAT_OLIOPR     0x1004  /*  Ing C. Olivetti & C., S.p.A.  */
  3981.  
  3982. //
  3983. //  the WAVE_FORMAT_DEVELOPMENT format tag can be used during the
  3984. //  development phase of a new wave format.  Before shipping, you MUST
  3985. //  acquire an official format tag from Microsoft.
  3986. //
  3987. #define WAVE_FORMAT_DEVELOPMENT         (0xFFFF)
  3988.  
  3989. <A HREF="#Top">Return to Top</A>
  3990.  
  3991. <A NAME="ACMInstalled">
  3992. <H3>How to determine which Audio Codecs are Installed</H3>
  3993. </A>
  3994.  
  3995. View the SYSTEM.INI file.  In Windows 95, 32 bit Audio Codecs are
  3996. listed in the [drivers32] section.
  3997.  
  3998. [drivers32]
  3999. msacm.lhacm=lhacm.acm
  4000. msacm.l3codec=l3codecb.acm
  4001. msacm.msg723=msg723.acm
  4002. msacm.msnaudio=msnaudio.acm
  4003.  
  4004. The string msacm stands for Microsoft Audio Compression Manager (ACM).
  4005. This is the system software component that manages audio codecs (and
  4006. other audio components) in 16 bit Windows and in Win32.  The different
  4007. codecs are identified by a string of arbitrary length such as msnaudio
  4008. for Microsoft Network Audio.  Note that this differs from Video for
  4009. Windows where everything is a Four Character Code.
  4010.  
  4011. The audio codecs in the example above were installed in Windows 95 by
  4012. Microsoft's NetShow streaming audio/video product.
  4013.  
  4014. The Audio Compression Manager (ACM) is in the process of being displaced by
  4015. ActiveMovie.
  4016.  
  4017. In Windows 95, 
  4018.  
  4019. (1) Open the Control Panel
  4020.  
  4021. (2) Double Click on the Multimedia Icon
  4022.  
  4023. (3) Select the Advanced tab 
  4024.  
  4025. (4) Under the Multimedia Drivers icon, double click on the Audio
  4026. Compression Codecs icon to see a list of installed audio codecs.  This
  4027. information is the same as the information stored in the SYSTEM.INI
  4028. file (see above).
  4029.  
  4030. <A HREF="#Top">Return to Top</A>
  4031.  
  4032. <A NAME="ActiveMovie">
  4033. <H2>ActiveMovie</H2>
  4034. </A>
  4035.  
  4036. Active Movie is a new multimedia architecture for Windows 95 and
  4037. Windows NT (4.0 and after).  ActiveMovie includes support for
  4038. playing AVI, QuickTime (.MOV), and MPEG files.  ActiveMovie is
  4039. apparently intended to supersede Video for Windows.
  4040.  
  4041. ActiveMovie 1.0 ships with the OEM Service Release 2 (OSR2) of Windows 95.
  4042. It did not ship with prior releases of Windows 95 but was available
  4043. separately through the ActiveMovie SDK.  
  4044.  
  4045. ActiveMovie 1.0 is also bundled with Microsoft's Internet Explorer for
  4046. Windows 95 and NT 4.0  Internet Explorer can be downloaded from the
  4047. Microsoft Web site at:
  4048.  
  4049. <A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>
  4050.  
  4051. Active Movie 1.0 can be downloaded by itself from the Microsoft Internet
  4052. Explorer site.  (6/6/97)
  4053.  
  4054. ActiveMovie 1.0 appears to be a 32 bit software component that runs
  4055. under both Windows 95 and Windows NT 4.0 user mode.  
  4056.  
  4057. ActiveMovie provides at least three different programming
  4058. interfaces:
  4059.  
  4060.                - The ActiveMovie ActiveX Control
  4061.                - ActiveMovie Component Object Model (COM) interfaces
  4062.                - The OM-1 MPEG MCI (Media Control Interface) command set
  4063.  
  4064. Amongst other things, the ActiveMovie ActiveX Control can be embedded
  4065. in HTML Web pages and programmed via VBScript or JavaScript.  It can also
  4066. be programmed using Visual C++ or Visual Basic as part of applications.
  4067.  
  4068. The ActiveMovie COM interaces can be accessed through Visual C++ or
  4069. Visual Basic.
  4070.  
  4071. ActiveMovie supports a subset of the Media Control Interface (MCI)
  4072. commands familiar to Video for Windows programmers.  These commands can
  4073. be accessed through the mciSendCommand(...) and mciSendString(...)
  4074. functions in C/C++.
  4075.  
  4076. ActiveMovie 1.0 does NOT provide video capture.  Windows 95 with
  4077. ActiveMovie 1.0 continues to use the Video for Windows video capture system
  4078. and drivers.
  4079.  
  4080. ActiveMovie 2.0 (renamed DirectShow in 1997) will provide a new,
  4081. alternative mechanism for video capture.  According to information
  4082. distributed by Microsoft at the WDM Device Driver Conference in April,
  4083. 1997, ActiveMovie 2.0 will use the WDM Stream Class under Memphis
  4084. (formerly Windows 97) and Windows NT 5.0 to implement video capture.
  4085. This is subject to possible change since neither Memphis nor NT 5.0
  4086. has been released (7/27/97).
  4087.  
  4088. Extensive information on ActiveX and ActiveMovie is available at the
  4089. Microsoft Web site.
  4090.  
  4091. ActiveMovie 1.0 SDK Documentation at (6/28/97):
  4092.  
  4093. <A 
  4094. HREF="http://www.microsoft.com/devonly/tech/amov1doc/">http://www.microsoft.com/devonly/tech/amo
  4095. v1doc/</A>
  4096.  
  4097. <A HREF="#Top">Return to Top</A>
  4098.  
  4099. <A NAME="GUID">
  4100. <H2>GUID's and AVI</H2>
  4101. </A>
  4102.  
  4103. GUID stands for Global Unique IDentifier.
  4104.  
  4105. In Microsoft's Component Object Model (COM) morass, an object oriented
  4106. programming model that incorporates MFC (Microsoft Foundation
  4107. Classes), OLE (Object Linking Embedding), ActiveX, ActiveMovie and
  4108. everything else Microsoft is hawking lately, a GUID is a 16 byte or
  4109. 128 bit number used to uniquely identify objects, data formats,
  4110. everything.
  4111.  
  4112. Within ActiveMovie, there are GUID's for video formats, corresponding
  4113. to the FOURCC's or Four Character Codes used in Video for Windows.
  4114. These are specified in the file uuids.h in the Active Movie Software
  4115. Developer Kit (SDK).  ActiveMovie needs to pass around GUID's that
  4116. correspond to the FOURCC for the video in an AVI file.
  4117.  
  4118. With proper programming, this should be hidden from end users but
  4119. ActiveMovie programmers need to know about GUID's.
  4120.  
  4121. <A HREF="#Top">Return to Top</A>
  4122.  
  4123.  
  4124. <A NAME="FOURCCGUID">
  4125. <H2>What are the GUIDs for the Video for Windows Codecs?</H2>
  4126. </A>
  4127.  
  4128. Video for Windows codecs are identified by a thirty-two bit Four
  4129. Character Code (FOURCC).  A Four Character Code is a thirty-two bit
  4130. value formed from the ASCII codes for four characters.  Typically, the
  4131. four characters are a memnonic for the item identified. For example,
  4132. the popular Cinepak video codec is 'CVID'.
  4133.  
  4134. Microsoft has introduced 128-bit (16 byte) Globally Unique
  4135. Identifiers (GUIDs) for identifying everything in the
  4136. Microsoft Universe.  Microsoft has established a mapping
  4137. procedure from the human readable Four Character Codes to
  4138. GUIDs for video codecs.  Replace the "x"'s in the GUID
  4139. below with the 32-bit value built from the Four Character
  4140. Code. The Four Character Code is in 7-bit ASCII.
  4141.  
  4142. xxxxxxxx-0000-0010-8000-00AA00389B71
  4143.  
  4144. For example, the GUID for Radius Cinepak is:
  4145.  
  4146. 44495643-0000-0010-8000-00AA00389B71
  4147.  
  4148. 44 is the hexadecimal (base 16) ASCII code for 'D'
  4149. 49 is the hexadecimal (base 16) ASCII code for 'I'
  4150. 56 is the hexadecimal (base 16) ASCII code for 'V'
  4151. 43 is the hexadecimal (base 16) ASCII code for 'C'
  4152.  
  4153. Note that the order of the characters is reversed from 
  4154. naive expectation.
  4155.  
  4156.  
  4157. <A HREF="#Top">Return to Top</A>
  4158.  
  4159.  
  4160. <A NAME="DirectShow">
  4161. <H2>DirectShow</H2>
  4162. </A>
  4163.  
  4164. DirectShow is Microsoft's new name for ActiveMovie 2.0  Microsoft
  4165. has shifted to marketing ActiveMovie as an integral part of
  4166. DirectX.  
  4167.  
  4168. Apparently DirectShow (ActiveMovie 2.0) will be released to the general
  4169. public as part of Direct X 5.0.
  4170.  
  4171. <A HREF="#Top">Return to Top</A>
  4172.  
  4173. <A NAME="DirectDraw">
  4174. <H2>DirectDraw</H2>
  4175. </A>
  4176.  
  4177. DirectDraw, one of the components of DirectX, is a new Applications
  4178. Programming Interface (API) that is part of Windows 95 and Windows NT
  4179. 4.0.  DirectDraw allows programs to directly access video memory and
  4180. other hardware features in video display cards.  Direct Draw also
  4181. defines new device drivers for graphic/video display adapters to
  4182. supersede the GDI display drivers.  DirectDraw needs the new
  4183. device drivers.
  4184.  
  4185. DirectDraw consists of a new API and new hardware drivers known as
  4186. the Direct Draw Hardware Abstraction Layer (HAL).  
  4187.  
  4188. In the Windows 3.1 Graphic Device Interface (GDI), an application
  4189. program never writes directly to the memory in a display card.  It
  4190. writes to a buffer in main memory within Windows.  GDI invokes a GDI
  4191. video device driver and copies the image from main memory to the video
  4192. memory of the video card.  This multiple copying of the image
  4193. inevitably slows down the display.
  4194.  
  4195. The DirectDraw API provides a mechanism allowing appliation programs
  4196. to write directly into the video card's memory.  It also provides a
  4197. mechanism to access various special features in video cards such as
  4198. color space conversion, hardware scaling, z-buffering, alpha blending,
  4199. and so forth.
  4200.  
  4201. Video card manufacturers must provide a DirectDraw driver for DirectDraw
  4202. to work with their card.  
  4203.  
  4204. Microsoft's ActiveMovie uses DirectDraw to achieve faster playback of
  4205. AVI, QuickTime, and MPEG files.
  4206.  
  4207. There is extensive information on the DirectDraw and DirectX API's at the
  4208. Microsoft Web site.
  4209.  
  4210. The DirectX 3 SDK can be downloaded from the Microsoft Developer
  4211. Online Web site (6/28/97):
  4212.  
  4213. <A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>
  4214.  
  4215. Select Microsoft SDKs from the Technical Information section, or point
  4216. your browser at:
  4217.  
  4218. <A HREF="http://www.microsoft.com/msdn/sdk/">http://www.microsoft.com/msdn/sdk/</A>
  4219.  
  4220.  
  4221. Versions of DirectX
  4222.  
  4223.    - DirectX 1
  4224.    - DirectX 2
  4225.    - DirectX 3
  4226.    - DirectX 3A (latest as of 2/18/97)
  4227.    - DirectX 5.0 (in development?)
  4228.    - DirectX 6.0 (mentioned occasionally by Microsoft)    
  4229.  
  4230. <A HREF="#Top">Return to Top</A>
  4231.  
  4232. <A NAME="Driver">
  4233. <H2>What is a driver?</H2>
  4234. </A>
  4235.  
  4236. Most often, driver refers to a software component that handles 
  4237. control and communication with hardware in a computer.  Most
  4238. but not all hardware device drivers run in a privileged mode
  4239. such as the Ring Zero mode of the Intel 80x86 processors.
  4240.  
  4241. Microsoft Windows uses the term driver to refer to several different
  4242. software components.
  4243.  
  4244.                 - Hardware Device Drivers
  4245.                 - Windows 3.x or 95 Virtual Device Drivers (VxD's)
  4246.                          - not all VxD's access hardware
  4247.                 - Microsoft Windows Installable Drivers
  4248.  
  4249.                      such as
  4250.  
  4251.                       - Media Control Interface or MCI Drivers
  4252.                       - Video for Windows Codecs (Compressor/Decompressors)
  4253.                       - Audio Codecs (Compressor/Decompressors)
  4254.  
  4255. Hardware Device Drivers include MS-DOS device drivers, DOS Terminate
  4256. and Stay Resident Programs that access hardware, Windows 3.x and 95
  4257. VxD's (Virtual Device Drivers) that access hardware, Windows DLL's
  4258. that access hardware but do not run in Ring Zero, Windows NT
  4259. kernel-mode device drivers, and the new Win32 Driver Model (WDM) drivers
  4260. for Memphis/Windows 98 and NT 5.0
  4261.  
  4262. Microsoft Windows Installable Drivers are Ring Three (Windows 95) or
  4263. user-mode (Windows NT) Dynamic Link Libraries (DLL's) with a single
  4264. entry point DriverProc().  MCI drivers, Video for Windows Codecs,
  4265. Microsoft Audio Compression Manager Codecs, and a variety of other
  4266. software components are Installable Drivers.  Some installable
  4267. drivers are hardware drivers.
  4268.  
  4269. <A HREF="#Top">Return to Top</A>
  4270.  
  4271. <A NAME="GDI">
  4272. <H2>GDI Device Drivers</H2>
  4273. </A>
  4274.  
  4275. In Windows 3.1, and to a lesser extent Windows 95, the Graphic Device
  4276. Interface or GDI is the system that handles graphic display, including
  4277. putting bitmaps on the display monitor.  Amongst other things, GDI
  4278. defines a set of GDI functions that application programs call such as
  4279. BitBlt(...) to display graphics on the screen.  GDI also controls
  4280. printers and other graphic output devices.
  4281.  
  4282. Windows NT also provides a GDI system, but the underlying hardware
  4283. device drivers are different.  Windows 3.1 GDI drivers won't work
  4284. under NT.  Application programs written using the GDI API will usually
  4285. work under NT.
  4286.  
  4287. GDI is device independent.  To achieve this, GDI uses GDI device
  4288. drivers loaded dynamically as needed.
  4289.  
  4290. The most commonly used GDI device driver is the DISPLAY device (for
  4291. display monitors).  In Windows 3.1, this is specified by lines such
  4292. as:
  4293.  
  4294. display.drv=SUPERVGA.DRV
  4295.  
  4296. in the SYSTEM.INI file.  SUPERVGA.DRV is a generic super vga graphic
  4297. display adapter driver shipped with Windows 3.1 SUPERVGA.DRV is a GDI
  4298. Device Driver
  4299.  
  4300. The printer driver is another common GDI device driver.
  4301.  
  4302. In Windows 3.1 or Windows 95 without DirectDraw, GDI handles display
  4303. of video frames on the display monitor.
  4304.  
  4305. GDI defines a set of standard functions exported by GDI Device
  4306. Drivers.  A GDI Device Driver can also report that it does not support
  4307. a particular function.
  4308.  
  4309. Standard Functions for GDI Device Driver
  4310.  
  4311. Entry                Name                 Description
  4312.  
  4313. 01                     BitBlt                Transfer bits from src (source) to dest (destination) rect (rectangle)
  4314. 02                     ColorInfo          Converts between logical and physical colors.
  4315. .
  4316. .
  4317. .
  4318. 30                     BitmapBits        Sets, retrieves, copies bitmap data.
  4319.  
  4320. Video card manufacturers write and provide GDI Device Drivers for video cards.
  4321.  
  4322. When Video for Windows plays an AVI file, Video for Windows usually
  4323. uses the Media Control Interface (MCI) driver for AVI files
  4324. (MCIAVI.DRV).  The MCI driver will call GDI to display each decoded
  4325. frame of video and WAVE to output the decoded audio to the sound card.
  4326.  
  4327. In Windows 95 or NT 4.0, ActiveMovie 1.0 has "renderers" which can
  4328. invoke GDI or DirectDraw depending on the situation to display the
  4329. decoded video frames.  There are also audio renderers to output the
  4330. decoded audio from an AVI, QuickTime, or MPEG file.
  4331.  
  4332. <A HREF="#Top">Return to Top</A>
  4333.  
  4334. <A NAME="DHAL">
  4335. <H2>Direct Draw Hardware Abstraction Layer</H2>
  4336. </A>
  4337.  
  4338. DirectDraw is a replacement for GDI for Windows 95 and
  4339. Windows NT 4.0.   See elsewhere in this overview for sections on
  4340. GDI and DirectDraw.
  4341.  
  4342. The Direct Draw Hardware Abstraction Layer (HAL) defines
  4343. Direct Draw device drivers for graphics/video display
  4344. adapters.   Graphics and video card manufacturers 
  4345. provide DirectDraw device drivers.  For Direct Draw
  4346. to work it must have these device drivers.
  4347.  
  4348. DirectDraw also defines a DirectDraw Applications Programming
  4349. Interface (API), a standard set of function calls invoked by
  4350. applications.  The DirectDraw API in turn calls the Direct
  4351. Draw HAL to access the graphics/video display adapter.
  4352.  
  4353. ActiveMovie can invoke DirectDraw for video output under
  4354. Windows 95 and Windows NT 4.0.
  4355.  
  4356. <A HREF="#Top">Return to Top</A>
  4357.  
  4358.  
  4359. <A NAME="VXD">
  4360. <H2>Virtual Device Drivers</H2>
  4361. </A>
  4362.  
  4363. In Windows 3.x and Windows 95, Virtual Device Drivers or VXD's are
  4364. usually the hardware device drivers.  They run in a privileged mode of
  4365. the Intel 80x86 processor known as Ring Zero.  Video display adapters
  4366. and video capture cards usually have an associated VXD written by the
  4367. card or chip manufacturer.
  4368.  
  4369. Note that some Windows device drivers are implemented as Dynamic Link
  4370. Libraries (DLL's) that do not run in the privileged, Ring Zero, mode
  4371. of the 80x86 processor or as MS-DOS programs that access hardware.
  4372. These device drivers are not VXD's.  There are some things that only
  4373. VXD's can do.  Most PC hardware, especially with high bandwidth
  4374. requirements, use VXD's.
  4375.  
  4376. Device drivers for video display adapters are rarely a single VXD.
  4377. Often the Device Driver Interface (DDI) is implemented as a Dynamic
  4378. Link Library which does not run at Ring Zero.  Only parts of the
  4379. device driver that need to run at Ring Zero are in the VXD.  
  4380. A full video display device driver is often built of several
  4381. files,  frequently including one or more VXDs.
  4382.  
  4383. VXD's are usually found in the \WINDOWS\SYSTEM directory.
  4384.  
  4385. VXD's will not work for hardware under Windows NT 3.51 or NT 4.0
  4386. Windows NT has its own Windows NT Driver Model for device drivers.
  4387.  
  4388. In "Memphis", formerly Windows 97, and NT 5.0, Microsoft is attempting
  4389. to provide a common driver model known as WDM or Win32 Driver Model so
  4390. that the same drivers can be used in both Memphis and NT.
  4391.  
  4392. <A HREF="#Top">Return to Top</A>
  4393.  
  4394. <A NAME="NTDM">
  4395. <H2>Windows NT Driver Model</H2>
  4396. </A>
  4397.  
  4398. Windows NT (3.51, 4.0) has its own system of hardware device
  4399. drivers.  While NT can often run Windows 3.x and Windows 95
  4400. applications, NT cannot use Windows 3.x or Windows 95
  4401. device drivers (the Virtual Device Drivers or VxD's).
  4402.  
  4403. For most people working with AVI, or video in general, the main
  4404. point to remember is that different drivers are needed for
  4405. NT than Windows 95 (or Windows 3.x).  Most hardware manufacturers
  4406. provide both Windows 3.x, 95, and NT drivers.
  4407.  
  4408. TOOLS
  4409.  
  4410. Programmers will need the Windows NT DDK (Device Driver Kit)
  4411. to develop Windows NT drivers.  This is available in a
  4412. subscription to Microsoft Developer Network (Professional).
  4413.  
  4414. <A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>
  4415.  
  4416. <A HREF="#Top">Return to Top</A>
  4417.  
  4418. <A NAME="WDM">
  4419. <H2>Win32 Driver Model (WDM)</H2>
  4420. </A>
  4421.  
  4422. The Win32 Driver Model (WDM) is a new device driver system for
  4423. Memphis (formerly Windows 97) and Windows NT 5.0  The notion is that
  4424. the same device drivers will work under both Memphis and NT 5.0
  4425.  
  4426. WDM is largely the Windows NT Driver Model used in NT 3.51 and 4.0
  4427. It is still under development.  Video display card and video capture
  4428. card companies will presumably be providing WDM drivers for
  4429. Memphis and NT 5.0 in the future.
  4430.  
  4431. Memphis is supposed to be backward compatible so that 
  4432. Windows 95 Device Drivers will still work under Memphis.
  4433. Similarly, NT 4.0 Device Drivers will still work under
  4434. NT 5.0   A WDM Device Driver will work under both Memphis and
  4435. NT 5.0.
  4436.  
  4437. <A HREF="#Top">Return to Top</A>
  4438.  
  4439. <A NAME="INF">
  4440. <H2>Setup Information or INF Files</H2>
  4441. </A>
  4442.  
  4443. When a video codec or hardware device driver is installed under
  4444. Windows 3.x, Windows 95, or Windows NT, Windows uses a special
  4445. file known as a Setup Information file.  This is also known as
  4446. a Device Information file in the case of device drivers.  These
  4447. files have the extension .INF and are also known as INF files.
  4448.  
  4449. When a user installs a codec or device driver through the Control
  4450. Panel, the user points the Windows system to a directory containing
  4451. an INF file and the various files, such as VxD's or DLLs, to be
  4452. installed.
  4453.  
  4454. A Setup Information, Device Information, or INF file contains
  4455. directives that tell Windows how to install the new software or
  4456. hardware.  These include changes to the Windows Registry, names and
  4457. locations of files to install, and other things.
  4458.  
  4459. If you are providing a hardware or software product, you may need to
  4460. create an INF file to install your product, driver, etc.
  4461.  
  4462. End users are often unaware of the INF file.  Indeed, its purpose is to
  4463. hide the complexity of installing hardware or software.  But it is
  4464. good to be aware that these files exist and Windows needs them to
  4465. properly install many drivers, codecs, and so forth.
  4466.  
  4467. Where AVI is concerned, there are frequently INF files for video
  4468. codecs, video display adapters, and video capture cards.
  4469.  
  4470. <A HREF="#Top">Return to Top</A>
  4471.  
  4472.  
  4473. <A NAME="MMX">
  4474. <H2>MMX</H2>
  4475. </A>
  4476.  
  4477. MMX or Multimedia Extensions to the Pentium instruction set are
  4478. 57 new instructions that accelerate some graphics, imaging, and
  4479. multimedia operations.  Multimedia often involves small data types
  4480. such as 8 bit or 16 bit pixels that can be processed in parallel.
  4481. For example, in principle, a 32 bit instruction could operate of
  4482. four 8 bit pixels in parallel.  
  4483.  
  4484. A simple example would be adding four 8 bit pixels in parallel.
  4485. The MMX instructions add clipping for underflow and overflow 
  4486. situations.
  4487.  
  4488.   255 0 0 255       Normal addition of four 8 bit pixels backed in 32 bits
  4489. +   0 0 0 255
  4490. -------------
  4491.  255  0 1   0
  4492.  
  4493.   255 0 0 255      MMX style clipping of overflow
  4494. +   0 0 0 255
  4495. --------------
  4496.   255 0 0 255
  4497.  
  4498. Intel developed the MMX instructions and added them to recent
  4499. versions of the Pentium chip known as the P55C or Pentium with MMX.
  4500. The MMX instructions were also added to the Pentium Pro.  The Pentium
  4501. Pro with MMX was code named Klamath, but called the Pentium II when
  4502. actually shipped in 1997.
  4503.  
  4504. MMX can accelerate various graphics and multimedia operations.  It can
  4505. accelerate video codecs.  In particular, the block Discrete Cosine
  4506. Transform used in JPEG, Motion JPEG, H.261, H.263, H.263+, MPEG-4,
  4507. MPEG-1, and MPEG-2 can be accelerated using MMX instructions.
  4508.  
  4509. Initially compilers have not supported generation of MMX instructions, so
  4510. critical portions of the multimedia algorithms must be hand-coded in 
  4511. Pentium assembler using the MMX instructions.
  4512.  
  4513. An MMX version of a codec may be able to encode and decode an AVI
  4514. file (for example) faster on a PC with MMX.
  4515.  
  4516. DOCUMENTATION ON MMX
  4517.  
  4518. Further information on MMX is available at the Intel Web site for
  4519. developers:
  4520.  
  4521. <A HREF="http://developer.intel.com/sites/developer">http://developer.intel.com/sites/developer</A>
  4522.  
  4523. Click on the Literature Center link, then select "Pentium Processor
  4524. with MMX" from the pull down list of products.
  4525.  
  4526. This information is dated August 1, 1997.  The Intel Web site changes
  4527. from time to time.
  4528.  
  4529.  
  4530. In addition to various on-line documentation at the Web site, Intel
  4531. has some manuals on MMX:
  4532.  
  4533. Intel Architecture MMX Technology Developers Manual (Order No. 243013)
  4534.  
  4535. Intel Architecture MMX Technology Programmer's Reference Manual
  4536. (Order No. 243007)
  4537.  
  4538. TOOLS FOR WORKING WITH MMX
  4539.  
  4540. Intel provides an MMX Technology Macro Package for use with
  4541. the Microsoft Macro Assembler (MASM).  This can be downloaded from:
  4542.  
  4543. <A HREF="http://developer.intel.com/design/perftool/mmx1mac/">http://developer.intel.com/design/perftool/mmx1mac/</A>
  4544.  
  4545. Intel markets an Intel C/C++ compiler plug-in for Microsoft
  4546. Visual C/C++ 4.x/5.0.  This plug-in includes "special
  4547. compiler intrinsics" to support MMX.  These allow a programmer
  4548. to use the call syntax of C functions instead of manually
  4549. coding in assembly language.  
  4550.  
  4551. Example of an "intrinsic"
  4552.  
  4553. __m64 _m_pmaddwd(__m64 m1, __m64 m2)
  4554.  
  4555. <A HREF="http://developer.intel.com/design/perftool/icl24/">http://developer.intel.com/design/perftool/icl24/</A>
  4556.  
  4557. The Intel C/C++ compiler plug-in is available on the VTune
  4558. CD-ROM.  VTune is discussed below.
  4559.  
  4560. Intel markets a product called the VTune (TM) Performance Analyzer for
  4561. profiling programs on the Intel architecture at the machine
  4562. instruction level.  VTune includes support for the MMX instructions
  4563. and has been used to profile and optimize MMX code.  The VTune CD-ROM
  4564. includes a number of other Intel freebies and products such as the
  4565. Intel C/C++ compiler plug-in that may be useful developing MMX
  4566. software.
  4567.  
  4568. <A HREF="http://developer.intel.com/design/perftool/vtune/">http://developer.intel.com/design/perftool/vtune/</A>
  4569.  
  4570. <A HREF="#Top">Return to Top</A>
  4571.  
  4572. <A NAME="ActiveX">
  4573. <H2>ActiveX</H2>
  4574. </A>
  4575.  
  4576. NOTE: ActiveX is NOT ActiveMovie.  There is an ActiveMovie ActiveX
  4577. control, but ActiveX is far more than this.
  4578.  
  4579. ActiveX is a stripped down version of OLE (Object Linking and
  4580. Embedding) targetted for the World Wide Web.  An ActiveX component or
  4581. control is a software component written in Visual Basic, Visual C++, or
  4582. Java that conforms to the ActiveX API.  This API is a variant of
  4583. OLE, designed to create small objects that can be dowloaded over the
  4584. Internet.
  4585.  
  4586. An ActiveX object or control may reside on a Web page to be downloaded
  4587. and run when Microsoft's Internet Explorer views the page.  An ActiveX
  4588. control can be the ActiveMovie ActiveX control which plays AVI and other
  4589. video formats supported by ActiveMovie.  An ActiveX control can be an
  4590. entertaining animation, a game like tic tac toe, anything.  In this
  4591. sense, ActiveX objects are similar to Java applets.
  4592.  
  4593. Unlike Java applets, once an ActiveX control has been downloaded once
  4594. it remains on the downloading machine and can be used again without
  4595. being dowloaded again.
  4596.  
  4597. Also unlike Java, ActiveX controls are tied to a particular
  4598. architecture, Windows 95 or Windows NT.  It is not clear how much
  4599. support Microsoft will give for ActiveX on non-Windows platforms.
  4600. Java applets are compiled to a Java bytecode that will run on any
  4601. platform with a Java virtual machine implemented.  Java applets will
  4602. run on Windows 3.1, Windows 95, Windows NT, PowerMacintosh, Linux,
  4603. Sun, and various other Unix platforms.
  4604.  
  4605. There is extensive information on ActiveX at the Microsoft Web site.
  4606. The ActiveX SDKs can be downloaded from the Microsoft Developer Online
  4607. Web Site (6/28/97):
  4608.  
  4609. <A HREF="http://www.microsoft.com/msdn/">http://www.microsoft.com/msdn/</A>
  4610.  
  4611. Select Microsoft SDKs from the Technical Information section or point your
  4612. browser at:
  4613.  
  4614. <A HREF="http://www.microsoft.com/msdn/sdk/">http://www.microsoft.com/msdn/sdk/</A>
  4615.  
  4616. Netscape Fans:
  4617.  
  4618. ScriptActive is a Netscape Plug-In that adds support for ActiveX to
  4619. Netscape.
  4620.  
  4621. <A HREF="http://www.ncompasslabs.com/">ScriptActive Web Site</A>
  4622.  
  4623.  
  4624. <A HREF="#Top">Return to Top</A>
  4625.  
  4626. <A NAME="AviPlay">
  4627. <H2>Playing an AVI File within a Windows Application</H2>
  4628. </A>
  4629.  
  4630. Programmers can play an AVI File within a Windows application by
  4631. several means.  The simplest traditional way is to use the
  4632. Media Control Interface (MCI).  Video for Windows includes an
  4633. MCI driver mciavi.drv for AVI files.  
  4634.  
  4635. Within the Windows API, programmers can use two C language API
  4636. functions, mciSendString(...) and mciSendCommand(...), to communicate with
  4637. the MCI driver.  mciSendString(...) sends MCI command strings such as
  4638. "play from 0 to 100" to the MCI driver.  mciSendCommand(...) sends MCI
  4639. command messages, a straight C type interface, to the MCI driver.
  4640.  
  4641. The syntax for mciSendString is:
  4642.  
  4643. MCIERROR mciSendString(LPCTSTR lpszCommand, LPTSTR lpszReturnString,
  4644.     UINT cchReturn, HANDLE hwndCallback);
  4645.  
  4646. The pointer lpszCommand points to the MCI command string such as
  4647. "play from 0 to 100".  Consult the Microsoft SDK documentation for
  4648. more details.
  4649.  
  4650. The syntax for mciSendCommand is:
  4651.  
  4652. MCIERROR mciSendCommand(MCIDEVICEID IDDevice, UINT uMsg, 
  4653.     DWORD fdwCommand, DWORD dwParam);
  4654.  
  4655. where uMsg is an MCI command message such as MCI_PLAY defined in an
  4656. include file.  Consult the Microsoft SDK documentation for more
  4657. details on MCI command messages.
  4658.  
  4659. mciSendString(...) and mciSendCommand(...) are essentially equivalent.
  4660. The MCI driver should convert the MCI command string to an MCI command
  4661. message internally.  The MCI command strings provide a more English like
  4662. interface to MCI.
  4663.  
  4664. For C++ programmers, Microsoft provides a window class MCIWnd to wrap
  4665. the MCI operations.  Quoting the Microsoft SDK documentation:
  4666.  
  4667. Microsoft sayeth....
  4668.  
  4669. MCIWnd is a window class for controlling multimedia devices. A library
  4670. of functions, messages, and macros associated with MCIWnd provides a
  4671. simple method to add multimedia playback or recording capabilities to
  4672. your applications.
  4673.  
  4674. Using a single function, your application can create a control that
  4675. plays devices such as video, CD audio, waveform audio, MIDI (Musical
  4676. Instrument Digital Interface), or any device that uses the Media
  4677. Control Interface (MCI). Automating playback is also quick and
  4678. easy. Using a function and two macros, an application can create an
  4679. MCIWnd window with the appropriate media device, play the device, and
  4680. close both the device and the window when the content has finished
  4681. playing.
  4682.  
  4683. ... end Microsoft sayeth.
  4684.  
  4685.  
  4686. Consult the Microsoft documentation for more details on MCIWnd.
  4687.  
  4688. ActiveMovie appears intended to supersede MCI.  ActiveMovie includes
  4689. a restricted subset of MCI for (partial) backward compatibility.
  4690. However, Microsoft appears to want developers to switch over to
  4691. new API's such as ActiveX and ActiveMovie, built on top of Microsoft's
  4692. Component Object Model (COM) object oriented framework.
  4693.  
  4694. <A HREF="#Top">Return to Top</A>
  4695.  
  4696. <A NAME="AviWrite">
  4697. <H2>Reading and Writing an AVI file within a Windows Application</H2>
  4698. </A>
  4699.  
  4700. The Microsoft Windows Win32 SDK (Windows NT and Windows 95) includes a
  4701. set of functions and macros known as AVIFile for reading, writing, and
  4702. manipulating RIFF files including AVI files within a Windows program.
  4703. These functions are contained within a Dynamic Link Library
  4704. avifile.dll.
  4705.  
  4706. The AVIFile functions include:
  4707.  
  4708. AVIFileInit(...)
  4709. AVIFileOpen(...)
  4710. AVIFileReadData(...)
  4711. AVIFileWriteData(...)
  4712. AVIFileExit(...)
  4713.  
  4714. and many many others.  Consult Microsoft documentation for details.
  4715.  
  4716. <A HREF="#Top">Return to Top</A>
  4717.  
  4718.  
  4719. <A NAME="AVISRC">
  4720. <H2>Where to get C Source Code for AVI Player Including Many Codecs</H2>
  4721. </A>
  4722.  
  4723. Marc Podlipec's Xanim is a free AVI Player for X Windows and Unix.
  4724. Most of Xanim is available in source code format.  The Xanim home
  4725. page is:
  4726.  
  4727. <A HREF="http://xanim.va.pubnix.com/">http://xanim.va.pubnix.com/</A>
  4728.  
  4729. Unfortunately, Xanim's Cinepak and Indeo support is only available in
  4730. object module (binary format).  
  4731.  
  4732. <A HREF="#Top">Return to Top</A>
  4733.  
  4734.  
  4735. <A NAME="FileFormats">
  4736. <H2>Where to get Detailed Information on Graphics File Formats</H2>
  4737. </A>
  4738.  
  4739. Programmers often need to know the details of the many
  4740. graphics file formats, both still image and moving.  
  4741.  
  4742. There are a number of Web sites,  books, and other resources
  4743. that provide detailed information on the many still image and 
  4744. video/animation graphics file formats.
  4745.  
  4746. Wotsit's File Format Collection
  4747.  
  4748. <A HREF="http://wotsit.simsware.com/">http://wotsit.simsware.com/</A>
  4749.  
  4750. and
  4751.  
  4752. <A HREF="http://www.ipahome.com/gff/textonly/summary/">http://www.ipahome.com/gff/textonly/summary/</A>
  4753.  
  4754. <A HREF="#Top">Return to Top</A>
  4755.  
  4756.  
  4757. <A NAME="AudioFmts">
  4758. <H2>Where to get Detailed Information on Audio File Formats</H2>
  4759. </A>
  4760.  
  4761. On the Internet, Guido Van Rossum distributes an Audio Formats FAQ (in
  4762. two parts) to the alt.binaries.sounds.misc, 
  4763. alt.binaries.sounds.d, and comp.dsp USENET newsgroups.
  4764.  
  4765. On the Web:
  4766.  
  4767. <A HREF="http://www.cs.ruu.nl/wais/html/na-dir/audio-fmts/.html">http://www.cs.ruu.nl/wais/html/na-dir/audio-fmts/.html</A>
  4768.  
  4769. <A HREF="#Top">Return to Top</A>
  4770.  
  4771.  
  4772. <A NAME="JPEGSRC">
  4773. <H2>Where to get C Source Code for a JPEG Encoder or Decoder?</H2>
  4774. </A>
  4775.  
  4776. Maybe you want to write your own Motion JPEG codec for AVI.  It
  4777. happens.
  4778.  
  4779. The Independent JPEG Group, also known as IJG, distributes the source
  4780. code for a JPEG encoder and decoder.  The IJG code is incorporated in
  4781. many JPEG viewers, is optimized, is free.  This is available by
  4782. anonymous ftp from the UUNET FTP archive.
  4783.  
  4784. <A HREF="ftp://ftp.uu.net/graphics/jpeg/">ftp://ftp.uu.net/graphics/jpeg/</A>
  4785.  
  4786. <A HREF="#Top">Return to Top</A>
  4787.  
  4788. <A NAME="H263SRC">
  4789. <H2>Where to get C Source Code for an H.263 Video Encoder or Decoder?</H2>
  4790. </A>
  4791.  
  4792. Telenor Research distributes a free H.263 video encoder and decoder.
  4793. The code is not optimized.  Note that H.263 is subject to a variety
  4794. of patents and Telenor includes a disclaimer with the code.
  4795.  
  4796. <A HREF="http://www.fou.telenor.no/brukere/DVC/h263_software/">http://www.fou.telenor.no/brukere/DVC/h263_software/</A>
  4797.  
  4798. <A HREF="#Top">Return to Top</A>
  4799.  
  4800. <A NAME="MPEGSRC">
  4801. <H2>Where to get C Source Code for an MPEG Video Encoder or Decoder?</H2>
  4802. </A>
  4803.  
  4804. The MPEG Software Simulation Group or MSSG distributes the C source code
  4805. for MPEG-1 and MPEG-2 video encoders and decoders.  This code is not
  4806. optimized.  Go to the MPEG site below and look for MSSG.
  4807.  
  4808. <A HREF="http://www.mpeg.org/">http://www.mpeg.org/</A>
  4809.  
  4810. <A HREF="#Top">Return to Top</A>
  4811.  
  4812. <A NAME="WAVELETSRC">
  4813. <H2>Where to get C/C++ Source Code for Wavelet Image Compression?</H2>
  4814. </A>
  4815.  
  4816. Geoff Davis distributes a C/C++ source code for wavelet still image
  4817. compression of grayscale images, the Wavelet Image Construction Kit.
  4818. This code is made available for research purposes.
  4819.  
  4820. <A HREF="http://www.cs.dartmouth.edu/~gdavis/">http://www.cs.dartmouth.edu/~gdavis/</A>
  4821.  
  4822. Also see the SPIHT demonstration programs, 
  4823.  
  4824. <A HREF="http://ipl.rpi.edu/SPIHT/">http://ipl.rpi.edu/SPIHT/</A>
  4825.  
  4826. <A HREF="#Top">Return to Top</A>
  4827.  
  4828.  
  4829. <A NAME="COLORFAQ">
  4830. <H2>Where to get an Explanation of Color, Color Spaces, Gamma, and All That</H2>
  4831. </A>
  4832.  
  4833. Charles Poynton maintains an FAQ on Color and an FAQ on Gamma.  This is
  4834. posted in USENET newsgroups regularly and is available on the Web.
  4835.  
  4836. <A HREF="http://www.inforamp.net/~poynton/notes/colour_and_gamma/ColorFAQ.html">http://www.inforamp.net/~poynton/notes/colour_and_gamma/ColorFAQ.html</A>
  4837.  
  4838. <A HREF="#Top">Return to Top</A>
  4839.  
  4840. <A NAME="RFC">
  4841. <H2>Internet Video Standards and Pseudo-Standards</H2>
  4842. </A>
  4843.  
  4844. There are a number of Internet standards and proposed standards
  4845. for sending video and multimedia over IP based networks.  These
  4846. are mostly described in Internet Engineering Task Force (IETF)
  4847. Requests For Comments (RFC's).  
  4848.  
  4849. Programmers and others needing the details of the standards and
  4850. proposed standards can find the RFC's at a variety of on-line
  4851. RFC repositories such as the Information Sciences Institute:
  4852.  
  4853. <A HREF="http://www.isi.edu/rfc-editor/">http://www.isi.edu/rfc-editor/</A>
  4854.  
  4855.  
  4856. What should you look for?
  4857.  
  4858. There are thousands of RFC's, most of which do not relate directly
  4859. to video.  Below are some families of protocols used with video
  4860. and representative RFC's for these families.  I have tried to include
  4861. the most important RFC's.
  4862.  
  4863.  
  4864. MIME (Multipurpose Internet Mail Extensions)
  4865.  
  4866. MIME is a protocol for attaching multimedia data such as images, sound,
  4867. and video to Internet mail.  
  4868.  
  4869.  
  4870. RFC 1521  MIME (Multipurpose Internet Mail Extensions)  Part One: 
  4871. Mechanisms for Specifying and Describing the Format of Internet Message
  4872. Bodies.
  4873.  
  4874. RFC 1522  MIME (Multipurpose Internet Mail Extensions) Part Two:
  4875. Message Header Extensions for Non-ASCII Text
  4876.  
  4877. (why do it only once?)
  4878.  
  4879. RFC 2045  MIME Part One
  4880.  
  4881. RFC 2046  MIME Part Two
  4882.  
  4883. RFC 2047  MIME Part Three
  4884.  
  4885. RFC 2049  MIME Part Five
  4886.  
  4887.  
  4888. RTP  (Real Time Protocol)
  4889.  
  4890. RTP is a protocol for insuring timely delivery of "real-time" data
  4891. such as video.  Video frames must be delivered in a timely manner
  4892. in order to be displayed evenly and periodically.  The TCP
  4893. protocol does not provide this functionality.  See the discussion of
  4894. UDP (User Datagram Protocol) below for more on the limitations of
  4895. TCP.
  4896.  
  4897. RFC 1889   RTP: A Transport Protocol for Real-Time Applications
  4898.  
  4899. RFC 1890   RTP: Profile for Audio and Video Converences with Minimal Control
  4900.  
  4901. RFC 2029   RTP Payload Format of Sun's CellB Video Encoding
  4902.  
  4903. RFC 2032   RTP Payload Format for H.261 Video Streams
  4904.  
  4905. RFC 2035   RTP Payload Format for JPEG-Compressed Video
  4906.  
  4907. RFC 2038   RTP Payload Format for MPEG1/MPEG2 Video
  4908.  
  4909. RFC 2190   RTP Payload Format for H.263 Video Streams
  4910.  
  4911. RFC 2198   RTP Payload for Redundant Audio Data
  4912.  
  4913.  
  4914.  
  4915. RSVP (Resource Reservation Protocol)
  4916.  
  4917. The Resource Reservation Protocol guarantees a
  4918. certain bandwidth to a particular data stream.  Video and other
  4919. "real-time" data typically require a minimum bandwidth consistently
  4920. for acceptable quality and performance.  If the bandwidth
  4921. is not available, the video skips frames or worse.
  4922.  
  4923. The original TCP/IP Internet was designed primarily for non 
  4924. "real-time" data, often text such as e-mail messages.  With e-mail, if a
  4925. network becomes congested and it takes a long time to transmit 
  4926. a message, there is little problem.  The user's e-mail arrives a little
  4927. late.   In many cases, the user never notices.  Real-time video does not
  4928. have this luxury. 
  4929.  
  4930. RSVP is one possible mechanism to add "Quality of Service" (QoS) to the
  4931. Internet.  
  4932.  
  4933. RFC 2205  Resource ReSerVation Protocol (RSVP) - Version 1 Functional Spec
  4934.  
  4935. RFC 2206  RSVP Management Information Base using SMIv2
  4936.  
  4937. RFC 2207  RSVP Extensions for IPSEC Data Flows
  4938.  
  4939. RFC 2210  The Use of RSVP with IETF Integrated Services
  4940.  
  4941. IETF is reportedly working on a standard for mapping RSVP to 
  4942. Asynchronous Transfer Mode (ATM) Quality of Service (QoS) 
  4943.  
  4944. A number of products supposedly support RSVP.  RSVP is not widely used
  4945. (Nov. 25, 1997) hence some caution is prudent with claims of RSVP
  4946. support.
  4947.  
  4948. Products
  4949.  
  4950. Cisco's Internetwork Operating System (IOS) for Cisco Routers
  4951.  
  4952. Ascend's GRF Routers
  4953.  
  4954. Version 12.0 of Bay Networks BayRS Router
  4955.  
  4956. Microsoft NetMeeting videoconferencing software
  4957.  
  4958. Intel ProShare videoconferencing software
  4959.  
  4960. First Beta Version of Microsoft's Windows NT 5.0 Operating System
  4961.  
  4962.  
  4963. Internet Service Providers (ISP's)
  4964.  
  4965. GTE Corporation's Internetworking Division (formerly BBN Corporation), a
  4966. major Internet Service Provider, has a service trial of RSVP.
  4967. (Nov. 25, 1997)
  4968.  
  4969. MCI Telecommunications reportedly will enable RSVP on its
  4970. very-high-bandwidth Backbone Network Service (vBNS) next year (1998).
  4971.  
  4972.  
  4973. IP Multicast
  4974.  
  4975. IP packets support so-called "multicast addresses".  A multicast
  4976. address is an an address that represents a group of machines.
  4977. Machines may dynamically join and leave the multicast group.
  4978. Multicasting allows simultaneous transmission of a packet to
  4979. all machines in the group without duplication of the packet.  For video
  4980. data, this allows the equivalent of broadcast channels over a network.
  4981. For example, a live speech could be sent to one multicast address
  4982. while a different video program was sent to a different multicast
  4983. address.  A machine joins the appropriate multicast group to 
  4984. receive the "broadcast channel".
  4985.  
  4986. In principle, multicasting reduces the load that video places
  4987. on a network since only one packet is sent to multiple
  4988. viewers.  Without multicasting, a separate duplicated packet is 
  4989. sent to each viewer.
  4990.  
  4991. Ethernet and some other network technologies support multicast
  4992. in hardware.  Ethernet "frames" have multicast Ethernet
  4993. addresses.  Implementing IP multicast on a single Ethernet, a single
  4994. IP "subnet", is a straightforward mapping from the multicast IP
  4995. addresses to the Ethernet multicast addresses.  
  4996.  
  4997. IP Multicast becomes quite complex when the machines in the multicast group 
  4998. are located on separate subnets and the IP multicast packets are routed 
  4999. by networks routers.  The routers need to know whether a particular
  5000. subnet contains machines belonging to a particular multicast group.
  5001. Since machines join and leave the multicast groups over time, the routers
  5002. must detect these changes to properly route multicast IP packets.
  5003. Much of the difficulty in IP multicast involves development and 
  5004. implementation of routing protocols for multicast IP packets.
  5005.  
  5006. Multicast has been implemented on the Internet throught the
  5007. Multicast Backbone (MBONE) which uses the mrouted daemon to
  5008. implement the Distance Vector Multicast Routing Protocol (DVMRP).
  5009. Various video programs such as NASA Space Shuttle mission video,
  5010. IETF meetings, and other technical conferences are frequently 
  5011. "multicast" over the MBONE.
  5012.  
  5013.  
  5014. RFC 1112   Host extensions for IP multicasting 
  5015.  
  5016. RFC 1054   Host extensions for IP multicasting 
  5017.  
  5018. Note: RFC's 1112 and 1054 describe the Internet Group Management Protocol
  5019. (IGMP) for management of multicast groups.
  5020.  
  5021. RFC 1075   Distance Vector Multicast Routing Protocol
  5022.  
  5023. RFC 1584   Multicast Extensions to OSPF
  5024.  
  5025. RFC 2117   Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol
  5026.                              Specification
  5027.  
  5028.  
  5029.  
  5030. UDP  (User Datagram Protocol)
  5031.  
  5032. UDP is a very simple protocol layered on top of IP.  An IP packet
  5033. contains the IP addresses of the sending and receiving machines on the
  5034. network.  The IP packet has no mechanism to identify separate sending and
  5035. receiving processes on the machines.  UDP adds "ports" which 
  5036. effectively identify sending and receiving processes.  An IP
  5037. address can have many ports.  The pair
  5038. of sending and receiving ports is called a "connection" in the
  5039. language of TCP/IP.  Proprietary and experimental streaming video 
  5040. protocols are usually layered on top of the UDP protocol rather 
  5041. than the TCP (Transmission Control Protocol) protocol.
  5042.  
  5043. Why UDP instead of TCP?
  5044.  
  5045. While TCP guarantees delivery of a stream of data, something that IP 
  5046. alone does not, TCP does not guarantee timely delivery of the data.
  5047. To insure delivery of data, TCP resends a packet if the TCP protocol
  5048. software does not receive an acknowledgement from the receiver 
  5049. before the TCP retransmission timeout expires.
  5050. TCP uses an "adaptive retransmission algorithm" that may choose a 
  5051. long timeout when the network is slow.  
  5052. As a result TCP may wait a long time before retransmitting the packet.  
  5053. With video, packets of video data must be delivered quickly to 
  5054. prevent an underflow in the buffer of the receiving video player 
  5055. resulting dropped frames.  The video player runs out of video data to
  5056. display.
  5057.  
  5058. Video networking protocols implemented with UDP often add a fixed timeout
  5059. to retransmit packets before the buffer of the receiving video
  5060. process, the video player, underflows.  Such a protocol may also adjust 
  5061. the buffer size to compensate for delays and congestion in the network.
  5062.  
  5063.  
  5064. RFC 768  User Datagram Protocol
  5065.  
  5066.  
  5067.  
  5068. <A HREF="#Top">Return to Top</A>
  5069.  
  5070.  
  5071. <A NAME="Health">
  5072. <H2>AVI and Your Health (Eye Strain)</H2>
  5073. </A>
  5074.  
  5075. Note: This is not intended as medical advice.  If you are
  5076. experience visual problems, see a qualified professional.
  5077.  
  5078. Sustained use of computers probably causes a variety of
  5079. visual problems.  The most common problems appear to be "burning
  5080. eyes" and focusing problems.
  5081.  
  5082. Currently, computer monitors are usually placed around two
  5083. feet from the user's eyes.  This is much closer than the
  5084. natural resting focus distance of the eyes, which is somewhere
  5085. between ten feet and infinity.  Also computer monitors are
  5086. much dimmer and lower contrast than natural objects which forces
  5087. the eyes to work harder to focus effectively on the monitor.
  5088. This is one of the reasons paper remains a more comfortable 
  5089. medium for reading than computer monitors.  Prolonged focusing
  5090. at short distances probably causes a variety of visual problems.
  5091.  
  5092. Computer users should look away from their monitor and rest their
  5093. eyes, focusing at a distance, every few minutes.  Many users do
  5094. this without even realizing that they are doing it.
  5095.  
  5096. Desktop video such as AVI probably presents greater risks than
  5097. traditional computer uses such as reading.  With static 
  5098. media such as text documents or still images, when the user looks
  5099. away from the monitor and looks back, nothing changes, no information
  5100. is missed.  There is no penalty to looking away from the monitor
  5101. to rest your eyes, focus at a distance, and so forth.  With video, the
  5102. video will change while the user is looking away.  The user misses
  5103. something, perhaps a critical event.  Thus, users tend not to look away
  5104. from desktop video, keeping their eyes focused on the screen
  5105. for long periods of time.
  5106.  
  5107. Computer animators who work with computer video, often for
  5108. long periods, have reported these problems for years.
  5109.  
  5110. Thus, people are very unlikely to watch two hour movies on computer
  5111. monitors two feet from their eyes.  Digital video will likely 
  5112. migrate to the same location as the television, at least ten feet
  5113. away.
  5114.  
  5115.  
  5116. Some Resources on Computers and Your Eyes
  5117.  
  5118. "Reducing eyestrain from video and computer monitors "
  5119. by Charles Poynton
  5120.  
  5121. <A HREF="http://www.inforamp.net/~poynton/notes/reducing_eyestrain/index.html">http://www.inforamp.net/~poynton/notes/reducing_eyestrain/index.html</A>
  5122.  
  5123.  
  5124. IBM's Healthy Computing - Vision Page
  5125. Note: Keep in mind that IBM sells computers.
  5126.  
  5127. <A HREF="http://www.pc.ibm.com/us/healthycomputing/ergoviso.html">http://www.pc.ibm.com/us/healthycomputing/ergoviso.html</A>
  5128.  
  5129. <A HREF="#Top">Return to Top</A>
  5130.  
  5131.  
  5132. <A NAME="Misc">
  5133. <H2>Miscellaneous Questions about AVI and Video for Windows</H2>
  5134. </A>
  5135.  
  5136. What is most recent version of Video for Windows?
  5137.  
  5138. Most recent version of Video for Windows for Windows 3.1 appears to
  5139. be Video for Windows 1.1e.  (10/2/96)
  5140.  
  5141.  
  5142. <A NAME="VfW16">
  5143. <H2>Where can I get the 16-bit Video for Windows 1.1e runtime?</H2>
  5144. </A>
  5145.  
  5146. This is the Video for Windows for Windows 3.x  In a pinch, it will
  5147. also work under Windows 95.  Windows 95 includes a version of
  5148. Video for Windows that has 32 bit video codecs and possibly other
  5149. changes specific to Windows 95.  See elsewhere in this Overview
  5150. for information on re-installing Video for Windows for
  5151. Windows 95.
  5152.  
  5153. From Microsoft,
  5154.  
  5155. <A HREF="ftp://ftp.microsoft.com/softlib/mslfiles/WV1160.EXE">ftp://ftp.microsoft.com/softlib/mslfiles/WV1160.EXE</A>
  5156.  
  5157. (Note the file name is all upper case)
  5158.  
  5159. <A HREF="#Top">Return to Top</A>
  5160.  
  5161. <A NAME="LW">
  5162. <H3>How to import AVI files into Lightwave</H3>
  5163. </A>
  5164.  
  5165. Lightwave is a powerful 3D animation program from NewTek.  Originally
  5166. developed for the Amiga, Lightwave has been ported to Windows 95 and
  5167. Windows NT. 
  5168.  
  5169. BurntPixels produces a plug-in for Lightwave 5.0 called AVILoad 2.1
  5170. that enables direct importing of AVI files into Lightwave animations.
  5171. AVILoad 2.1 is available for Lightwave 5.0 for Windows 95 and NT.
  5172.  
  5173. See the AVILoad Web site for further details.
  5174.  
  5175. <A HREF="http://www.en.com/users/bforce/">http://www.en.com/users/bforce/</A>
  5176.  
  5177. For further information on NewTek and Lightwave, see the LightWave
  5178. Web site:
  5179.  
  5180. <A HREF="http://www.newtek.com/">http://www.newtek.com/</A>
  5181.  
  5182. <A HREF="#Top">Return to Top</A>
  5183.  
  5184. <A NAME="Extension">
  5185. <H3>How to give AVI files a different extension in Windows 3.x</H3>
  5186. </A>
  5187.  
  5188. It is possible to give an AVI file a different file extension, for
  5189. example VID.  Microsoft Windows can be configured so that Windows
  5190. treats this file the same as a file with the AVI extension.  For
  5191. example, double clicking on a .VID file in File Manager will play the
  5192. .VID file just the same as a .AVI file.
  5193.  
  5194. In Windows 3.x, edit the WIN.INI file, usually in the \WINDOWS
  5195. directory.  There is a section [Extensions] which associates
  5196. file extensions with applications.  For example, this section
  5197. will typically include a line such as:
  5198.  
  5199. [Extensions]
  5200. AVI=mplayer.exe /play /close ^AVI
  5201.  
  5202. which causes Media Player (mplayer.exe) to be invoked when the user double
  5203. clicks on a file with extension AVI.  For VID, add a line
  5204.  
  5205. VID=mplayer.exe /play /close ^VID
  5206.  
  5207. Media Player is an MCI (Media Control Interface) application.  It will
  5208. attempt to play the .VID file through MCI.  At this point however, MCI
  5209. would not recognize VID although Media Player would be invoked.
  5210.  
  5211.  
  5212. There is also a section [mci extensions] which contains lines such as:
  5213.  
  5214. [mci extensions]
  5215. AVI=AVIVideo  ( tells MCI to use the MCI driver refered to as AVIVideo for files with the extension AVI)
  5216.  
  5217. For the VID example, add
  5218.  
  5219. VID=AVIVideo
  5220.  
  5221. to the [mci extensions] section in WIN.INI
  5222.  
  5223. The WIN.INI file is used mainly for configuring the higher levels
  5224. of Windows: the graphical user interface and the desktop.  Many applications
  5225. install their configuration or installation information in sections within
  5226. WIN.INI
  5227.  
  5228.  
  5229. Names such as AVIVideo are defined in the [mci] section in the SYSTEM.INI
  5230. file, also usually in the \WINDOWS directory.  SYSTEM.INI is used
  5231. mainly for configuring the lower levels of Windows: the device
  5232. drivers, VxD's, and so forth.
  5233.  
  5234. [mci]
  5235. AVIVideo=mciavi.drv ( where mciavi.drv is the AVI MCI Driver )
  5236.  
  5237. Thus, many file extensions can refer to AVIVideo which in turn refers to
  5238. the MCI Driver for AVI files.  The MCI Driver processes MCI commands and
  5239. may in turn invoke other drivers or DLL's such as the Video for Windows
  5240. decompressors.
  5241.  
  5242. <A HREF="#Top">Return to Top</A>
  5243.  
  5244. <A NAME="AVI95">
  5245. <H3>How AVI Files are Handled in Windows 95</H3>
  5246. </A>
  5247.  
  5248. If a user double-clicks on an AVI file icon in Windows 95, Windows 95
  5249. will invoke an AVI player.  In Windows 95 OEM Service Release 2, Windows
  5250. 95 will invoke the ActiveMovie Control to play the AVI file. ActiveMovie
  5251. 1.0 ships with OEM Service Release 2 which is configured to use
  5252. ActiveMovie for AVI, QuickTime, and MPEG files. 
  5253.  
  5254. Windows 95 has file extensions and file types.  .AVI is a file
  5255. extension.  File extensions are mapped to file types.  AVIFile is
  5256. a file type.  The information on file extensions and file types
  5257. is stored in the Windows 95 System Registry.  More than one file
  5258. extension can be mapped to the same file type.  For example, the .AIF
  5259. and .AIFF file extensions are both mapped to AIFFFile, the file 
  5260. type for the Apple AIFF audio file format.  
  5261.  
  5262. The file type contains information on how to play the file (which
  5263. application to use) and other information.  This information is
  5264. all stored in the Windows 95 Registry.
  5265.  
  5266. A user can view and also edit the information on file types 
  5267. through the Windows Explorer applet.  Select the Options...
  5268. item from the View Menu of Windows Explorer.  Select the File Types
  5269. tab from the Options property sheet.  This gives a list box of 
  5270. registered file types.  There are buttons to add, remove, or edit
  5271. a File Type.  The AVIFile File Type is identified as
  5272. "Movie Clip(AVI)" in this list box of registered file types in
  5273. Windows 95 OEM Service Release 2.
  5274.  
  5275. In the Windows 95 Registry, "Movie Clip(AVI)" is a string in the
  5276. "AVIFile" file type "key".  Windows Explorer displays the string "Movie
  5277. Clip(AVI)", not AVIFile, the name of the "key".
  5278.  
  5279. A user can change how Windows 95 handles an AVI file by editing
  5280. the "Movie Clip(AVI)" File Type in the File Types through Windows
  5281. Explorer.  For example, a user can select an alternative AVI file
  5282. player.
  5283.  
  5284. In Windows 95 OEM Service Release 2, the File Type includes a
  5285. Content type (Multipurpose Internet Mail Extension or MIME type).  
  5286. The Content type (MIME type) tells Microsoft Internet Explorer how 
  5287. to handle a file from a Web site. 
  5288.  
  5289. The original Windows 95 retail version did not include the Content
  5290. (MIME) type.  This extra feature could be added by installing the
  5291. MS Plus! add-on to Windows 95.  Some OEM versions of Windows 95 prior
  5292. to OEM Service Release 2 supported the Content (MIME) type.
  5293.  
  5294. The Windows 95 Registry can be viewed using REGEDIT, the Windows 95
  5295. Registry editor.  The registry "keys" for file extensions and file types
  5296. are stored in the HKEY_CLASSES_ROOT "key".  Although REGEDIT can also
  5297. edit the registry, the registry is rather complex and this drastic 
  5298. action should be avoided.  Use the Windows Explorer applet.  This applet
  5299. knows how to modify the keys in the Windows 95 Registry.
  5300.  
  5301. The Windows 95 Registry is a binary database stored in two files:
  5302. SYSTEM.DAT and USER.DAT.  Internally, the database is structured very
  5303. similarly to a hierarchical file system such as the DOS/WINDOWS file
  5304. system.  A Windows 95 Registry "key" is essentially a folder that
  5305. contains other "keys" or "values".  The "values" have a name and
  5306. associated data.  The data are text strings such as "Movie Clip(AVI)"
  5307. or binary numbers.  The Registry Editor represents keys with a folder
  5308. icon and values with different icons.  The Registry Editor closely
  5309. resembles the Windows Explorer.
  5310.  
  5311. The registry contains a key in the top level HKEY_CLASSES_ROOT key
  5312. called .avi, for the .avi file extension.  All keys contain a default
  5313. "value" with the name (Default).  In the .avi key, the (Default) value
  5314. has the associated ASCII text string data "AVIFile".  In Windows 95
  5315. OEM Service Release 2, there is an additional value named "Content
  5316. Type" with the associated ASCII text string data "video/avi", the MIME
  5317. type for AVI files.  This additional information is used by the
  5318. Internet Explorer.
  5319.  
  5320. The (Default) value in the .avi key references the AVIFile key, also
  5321. in HKEY_CLASSES_ROOT.  This key contains a number of other keys and
  5322. values.  The (Default) value for the AVIFile key has the data 
  5323. "Movie Clip(AVI)" which the Windows interface uses to identify the files
  5324. to users.  The AVIFile key is an example of a file type key.
  5325.  
  5326. The "shell" key in the AVIFile key specifies what happens when a user
  5327. double-clicks on an AVI file.  In Windows 95 OSR2, the (Default) value
  5328. for the shell key is "play".  The shell key contains two subkeys:open
  5329. and play.  These keys specify possible actions to perform.  The
  5330. (Default) value indicates that the "play" action will be used.
  5331.  
  5332. The open and play keys each contain a key called command.  The
  5333. (Default) value for the command subkey of play is "rundll32 amovie.ocx
  5334. RunDLL /play /close %1".  rundll32 is a program that runs a 32 bit
  5335. Windows Dynamic Link Library or DLL as an Application.  The command
  5336. executes amovie.ocx, the ActiveMovie Control, as an
  5337. application. Controls such as amovie.ocx are actually DLLs.  /play
  5338. tells the control to play the file and /close tells the control to
  5339. close after finishing playing the file.
  5340.  
  5341. In versions of Windows 95 without ActiveMovie, the command keys are
  5342. configured to invoke Media Player, mplayer.exe.  
  5343.  
  5344. <A HREF="#Top">Return to Top</A>
  5345.  
  5346.  
  5347. <A NAME="Common">
  5348. <H2>Most Common AVI Question: What does "could not find vids:xxxx ..." error mean?</H2>
  5349. </A>
  5350.  
  5351. This is the most common question that I get about AVI files (12/18/98).
  5352.  
  5353. When Video for Windows cannot find the video compressor decompressor
  5354. or codec used to encode an AVI file, Video for Windows pops up a 
  5355. message box with this error message.  ".. could not find vids:xxxx ..."
  5356.  
  5357. where "xxxx" is an inscrutable sequence of four letters and digits
  5358. such as "i263" or "iv50".
  5359.  
  5360. vids is the four character code for the video stream in an AVI file.
  5361. xxxx is the unique four character code used to identify the video
  5362.      codec used to compress the video stream in the AVI file.
  5363.  
  5364. In particular, I receive many questions about two video codecs from
  5365. Intel:
  5366.  
  5367. "... could not find vids:i263 ..."
  5368.  
  5369. I263 is the four character code for Intel's implementation of the H.263
  5370.      video standard.  The Video for Windows drivers for this codec can
  5371.      be downloaded from the Intel Web site.
  5372.  
  5373. "... could not find vids:iv50 ..."
  5374.  
  5375. IV50 is the four character code for Intel Indeo Video 5.x, also available
  5376.      from the Intel Web site.  IV50 is used by Indeo 5.0, 5.06, and 5.10.
  5377.  
  5378. The AVI Overview contains extensive information on four character
  5379. codes. <A HREF="#FOURCC">Link to Section on Four Character Codes</A>
  5380.  
  5381. <A HREF="#Top">Return to Top</A>
  5382.  
  5383. <A NAME="Play">
  5384. <H2>How can I play an AVI file?</H2>
  5385. </A>
  5386.  
  5387. <H3>MS DOS</H3>
  5388.  
  5389. On DOS, the shareware program QuickView by Wolfgang Hesseler can
  5390. play AVI files (including sound).  QuickView 1.03 is available
  5391. through the simtel sites such as
  5392.  
  5393. <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>
  5394.  
  5395. You can get the latest version of QuickView (2.30 on 6/6/98) from
  5396.  
  5397. <A HREF="http://www.multimediaware.com/qv/">Wolfgang Hesseler's Home Page</A>
  5398.  
  5399.  
  5400. <H3>Microsoft Windows</H3>
  5401.  
  5402. <H4>Windows Media Player</H4>
  5403.  
  5404. Windows 3.x, Windows 95, and Windows NT are usually configured so
  5405. that double clicking on the icon for an AVI file will invoke an AVI player
  5406. application.  Video for Windows includes an application known as Media
  5407. Player that can play AVI files as well as other multimedia data types.
  5408. ActiveMovie 1.0 inclues an ActiveMovie ActiveX control that can play
  5409. AVI, QuickTime, and MPEG video as well as other multimedia data types.
  5410.  
  5411. On Windows 3.x, Media Player is MPLAYER.EXE.  This is a 16 bit
  5412. Windows 3.x application.  Windows 95 can run both the 16 bit Media Player
  5413. and a 32 bit Media Player.  There is also a Media Player on Windows NT 4.0
  5414. This is MPLAY32.EXE
  5415.  
  5416. MediaPlayer can be invoked by typing mplayer.exe at the DOS command
  5417. prompt or through the Run... item in the Windows 3.x Program Manager or
  5418. the start menu for Windows 95 or Windows NT 4.0
  5419.  
  5420. The ActiveMovie ActiveX control on Windows 95 is amovie.ocx.  This can
  5421. be executed as a standalone application using the
  5422. commands Rundll32 amovie.ocx.
  5423.  
  5424. ActiveMovie is only available for Windows 95.  It will not work on
  5425. Windows 3.x Windows NT 5.0 should add an ActiveMovie implementation.
  5426. ActiveMovie 1.0 is shipped with the Windows 95 OEM Service Release 2.
  5427. ActiveMovie has been renamed DirectShow.
  5428.  
  5429. <H4>Woldo's MCI Video Player for Windows 95/98/NT</H4>
  5430.  
  5431. Wolfgang Doehler distributes a free alternative to Windows Media Player
  5432. for 32 bit Windows platforms:
  5433.  
  5434. <A HREF="http://pweb.de.uu.net/wolfgang.doehler/">http://pweb.de.uu.net/wolfgang.doehler</A>
  5435.  
  5436.  
  5437. <H3>Power Macintosh</H3>
  5438.  
  5439. On the Apple Macintosh, Apple's QuickTime 3 Pro includes a QuickTime
  5440. Internet Plug-In that can play AVI video.  The QuickTime Internet
  5441. Plug-In is available for:
  5442.  
  5443.    o Microsoft Internet Explorer 3.0 and 4.0 for Macintosh
  5444.    o Netscape Communicator 4.0 for Macintosh
  5445.    o Netscape Navigator 3.0 for Macintosh
  5446.  
  5447. <A HREF="http://quicktime.apple.com/">http://quicktime.apple.com/</A>
  5448.  
  5449. On the Macintosh, Microsoft's Internet Explorer (Web Browser) can play
  5450. AVI files directly.  There is also an application AVI->QuickTime that
  5451. can convert AVI files to QuickTime .MooV files on the Macintosh.  
  5452.  
  5453. Microsoft's Internet Explorer 3.01 (on 6/4/97) for the Macintosh may
  5454. be downloaded from the Microsoft Web site at:
  5455.  
  5456. <A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>
  5457.  
  5458. MacZilla is an inexpensive shareware Netscape Navigator Plug-In for
  5459. the Macintosh that plays QuickTime .MOV, Video for Windows AVI, and
  5460. MPEG-1 files.  MacZilla can also play Sun Audio .AU, Microsoft
  5461. .WAV, and MPEG Layer 2 Audio .MP2 files.  If you pay the
  5462. fee, MacZilla will send you a STANDALONE player (not a Netscape
  5463. Plug-In) for the Macintosh.  The MacZilla URL is:
  5464.  
  5465. <A HREF="http://maczilla.com/">http://maczilla.com</A>
  5466.  
  5467. NOTE: I personally experienced a lot of crashes with MacZilla on
  5468. my Macintosh. (6/4/97)  
  5469.  
  5470. <H3>Unix</H3>
  5471.  
  5472. Xanim by Marc Podlipec is a free X Windows based AVI Player for Unix.  
  5473. Much of Xanim is available as source code!!  The Xanim home page is:
  5474.  
  5475. <A HREF="http://xanim.va.pubnix.com/">http://xanim.va.pubnix.com/</A>
  5476.  
  5477. XAnime 2.80.1 was released on March 21, 1999.  This is a minor
  5478. release with some changes to XAnim 2.80.0, described below.
  5479.  
  5480. XAnim 2.80.0 was released on March 14, 1999.  According to the
  5481. XAnim Web site:
  5482.  
  5483. XAnim 2.80.0 is now ready for consumption. In addition to several new
  5484. video codecs, the new revision also supports dynamically loadable
  5485. video decompression libraries. This means you no longer need to
  5486. recompile xanim each time a new video codec is released or
  5487. upgraded. There are currently dll's for: Creative CYUV, Radius
  5488. Cinepak, Intel Indeo 3.2, Intel Indeo 4.1, Intel Indeo 5.0, CCITT
  5489. H.261 and CCITT H.263.
  5490.  
  5491.  
  5492. Mark Podlipec writes (PREVIOUSLY):
  5493.  
  5494. Below is some up-to-date information about XAnim, the unix X11 AVI player.
  5495.  
  5496. Thanks,
  5497.  
  5498. Mark
  5499.  
  5500. ----
  5501.  
  5502. Latest revision:  XAnim 2.70.6.4
  5503.  
  5504. Official Web sites:
  5505.  
  5506.     http://xanim.va.pubnix.com/home.html
  5507.     http://smurfland.cit.buffalo.edu/xanim/home.html
  5508.     http://www.tm.informatik.uni-frankfurt.de/xanim/
  5509.  
  5510. AVI Video and Audio Codecs Supported:
  5511.  
  5512.         + AVI Video Codecs supported:
  5513.             + IBM Ultimotion     (ULTI)
  5514.             + JPEG               (JPEG)
  5515.             + Motion JPEG        (MJPG)
  5516.             + Intergraph JPEG    (IJPG)
  5517.             + Microsoft Video 1  (CRAM/WHAM/MSVC)
  5518.             + Radius Cinepak     (CVID)
  5519.             + Intel Indeo R3.1   (IV31)
  5520.             + Intel Indeo R3.2   (IV32)
  5521.             + Intel RAW YUV9     (YUV9)
  5522.             + Creative CYUV      (CYUV)
  5523.             + Uncompressed       (RGB )
  5524.             + Run length encoded (RLE8)
  5525.             + Editable MPEG      (XMPG)
  5526.  
  5527.         + AVI Audio Codecs supported:
  5528.             + PCM                (0x0001)
  5529.             + MS ADPCM           (0x0002)
  5530.             + ULAW               (0x0007)
  5531.             + DVI/IMA ADPCM      (0x0011)
  5532.  
  5533. <H3> Digital Equipment Corporation's VAX/VMS </H3>
  5534.  
  5535. On VAX/VMS, Xanim (see above) has been ported and works on VMS.
  5536.  
  5537. <H3>Amiga</H3>
  5538.  
  5539. MooVId (and) PIV-MooVId AVI/MOV Player for the Amiga
  5540. <A HREF="http://www.dfmk.hu/~torokl/">http://www.dfmk.hu/~torokl/</A>
  5541.  
  5542. *** MooVId (shareware) ***
  5543.  
  5544. MooVId AVI/MOV player with GUI and INDEO support for Amiga computers 
  5545. Last version: 0.50b (13.09.1998) 
  5546.  
  5547. Required hardware: 
  5548. Kickstart 3.0 (3.1 Recommended) 
  5549. MC68020 or better (68040 recommended for bigger AVI/MOVs) 
  5550. ECS or AGA chipset (on ECS the playback is only 16 grayscale) 
  5551. 1 MB of free memory 
  5552.  
  5553. Required software: 
  5554. Reqtools.library 
  5555. CyberGraphX or Picasso96 for GFX-Board playback 
  5556.  
  5557. Recommended hardware: 
  5558. MC68040/060 and ZorroIII graphicsboard (for bigger animations), but MooVId can play 240x180 truecolor AVI/MOV at 15FPS (without skipping) in perfect (!) colors on 030/50 AGA. 
  5559.  
  5560. MooVId features: 
  5561. AVI (Video for windows) and MOV (Quicktime) player in one file 
  5562.  
  5563. Support INTEL Indeo 3.1 & 3.2 (IV31 & IV32) 
  5564.  
  5565. 100% assembly coded (fast & short) 
  5566.  
  5567. Buffered I/O handling (direct playback from CD-ROM or HDD) 
  5568.  
  5569. Timer Based frame skipping method 
  5570.  
  5571. FULL AGA support (256 color/gray or ham8) 
  5572.  
  5573. Bugfree "18bit" gfx on AGA Amigas 
  5574.  
  5575. Special (fast & very good ham8) STORM dither on AGA Amigas 
  5576.  
  5577. ECS Support (16 grayscale) 
  5578.  
  5579. 16 grayscale Window playback 
  5580.  
  5581. Full support of the CD32 akiko chip 
  5582.  
  5583. Synchronized audio playing 
  5584.  
  5585. On-fly selectable frame rate 
  5586.  
  5587. Fully system friendly 
  5588.  
  5589. Direct p96 support (no CGFX "emulation") 
  5590.  
  5591. Direct CGFX support 
  5592.  
  5593. Accelerated decoders for ZorroII gfxboards 
  5594.  
  5595. Full GUI (check the screenshoot) 
  5596.  
  5597.  
  5598. Supported codecs: 
  5599.  
  5600.  
  5601. Video for Windows (.avi) 
  5602.  
  5603. Supported video encoders: 
  5604.  
  5605. Codec Name FourCC code Depth 
  5606. Intel Indeo IV31/IV32 24 bit 
  5607. Microsoft RGB RGB 8/16 bit 
  5608. Microsoft Video 1 CRAM/MSVC 8/16 bit 
  5609. Radius Cinepak CVID 24/32 bit 
  5610. Run Length Encoded  RLE 8 bit 
  5611.  
  5612.  
  5613. Supported audio codecs: 
  5614. Audio format Channels Bits 
  5615. PCM MONO/STEREO 8/16 bit 
  5616. MS-ADPCM MONO/STEREO 4 bit (16bit) 
  5617.  
  5618.  
  5619.  
  5620. Quicktime (.mov, .qt) 
  5621.  
  5622. Supported video encoders: 
  5623.  
  5624. Codec Name FourCC code Depth 
  5625. Apple Video RPZA 16 bit 
  5626. Intel Indeo IV31/IV32 24 bit 
  5627. Radius Cinepak CVID 24/32 bit 
  5628.  
  5629.  
  5630. Supported audio encoders: 
  5631. Audio format Channels Bits 
  5632. RAW MONO 8/16 bit 
  5633. TWOS MONO 8/16 bit 
  5634.  
  5635.  
  5636. Other codecs (like JPEG and IMA audio) is in progress 
  5637.  
  5638. *** END of MooVId ***
  5639.  
  5640.  
  5641.  
  5642. PIV-MooVId AVI/MOV player with GUI and INDEO support for PicassoIV
  5643. graphics board
  5644.  
  5645. Last version: 0.991b (27.11.1998) 
  5646.  
  5647. Required hardware: 
  5648. Kickstart 3.0 or better 
  5649. MC68020 or better (68040/060 recommended) 
  5650. PicsassoIV graphics board (other graphicsboard NOT supported!)
  5651. 1 MB of free memory 
  5652.  
  5653. Required software: 
  5654. Reqtools.library 
  5655. Picasso96 1.38 or better (latest version recommended) 
  5656.  
  5657. Recommended hardware: 
  5658. MC68040/060 and PicassoIV in ZorroIII mode 
  5659.  
  5660. PIV-MooVId features: 
  5661. The FASTEST AVI/MOV player for Amiga 
  5662.  
  5663. Support the video layer of the PicassoIV 
  5664.  
  5665. All decoders (espec. Cinepak and Indeo) are video layer accelerated 
  5666.  
  5667. AVI/MOV playback in a resizable window (up to fullscreen), without slowdown! 
  5668.  
  5669. AVI (Video for windows) and MOV (Quicktime) player in one file 
  5670.  
  5671. Support INTEL Indeo 3.1 & 3.2 (IV31 & IV32) 
  5672.  
  5673. 100% assembly coded (fast & short) 
  5674.  
  5675. Buffered I/O handling (direct playback from CD-ROM or HDD) 
  5676.  
  5677. Timer Based frame skipping method 
  5678.  
  5679. Synchronized audio playing 
  5680.  
  5681. On-fly selectable frame rate 
  5682.  
  5683. Fully system friendly 
  5684.  
  5685. Full GUI 
  5686.  
  5687.  
  5688. Supported codecs: 
  5689.  
  5690. This part is same as at MooVId! 
  5691. Plus:
  5692. Codec Name FourCC code Depth 
  5693. Cirrus Accupak/PalomAVI videocapture format CLJR 24 bit 
  5694.  
  5695. *** END OF PIV-MooVId ***
  5696.  
  5697. TapAVI 1.5
  5698. Picasso AVI Animation Player
  5699. AVI Player for 020+ KS2.0 Picasso-II  (variety of Amiga)
  5700.  
  5701. <A HREF="http://www.ziplink.net/~wingell/ibrowse/tapavi.html">http://www.ziplink.net/~wingell/ibrowse/tapavi.html</A>
  5702.  
  5703. There appears to be an Amiga version of the XAnim AVI Player.  The TapAVI
  5704. documentation in fact says that in general XAnim is better but TapAVI is
  5705. better for certain uses.
  5706.  
  5707. xanim for the Amiga is available in a file xanim6.lha and other files from
  5708. <A HREF="http://www.cucug.org/aminet.html">Aminet</A>.  Aminet is an
  5709. archive of Amiga public domain, freeware, and shareware software.
  5710. The primary Aminet site is at Washington University in St. Louis:
  5711.  
  5712. <A HREF="http://wuarchive.wustl.edu/~aminet/">http://wuarchive.wustl.edu/~aminet/</A>
  5713.  
  5714. Many mirror Aminet sites exist.
  5715.  
  5716.  
  5717. <H3>OS/2</H3>
  5718.  
  5719. OS/2 has built-in support for AVI files ... up to a point.  OS/2
  5720. has had built-in AVI support since OS/2 2.0 in 1992.  However, it
  5721. cannot play all Windows style AVI files.
  5722.  
  5723. Practice Corporation markets an extension for OS/2 called AnPoCODEC
  5724. which adds support for playback of Windows-style AVI files, including
  5725. AVI's compressed with RLE (Microsoft RLE), CVID (Cinepak), and MSVC
  5726. (Microsoft Video 1).  Practice also markets QUickMotion which adds
  5727. support for playing QuickTime video files.
  5728.  
  5729. <A HREF="http://www.quickmotion.com/">http://www.quickmotion.com/</A>
  5730.  
  5731. At least two other programs exist that are claimed to be OS/2 AVI Players.
  5732.  
  5733. <A HREF="ftp://uiarchive.cso.uiuc.edu/pub/systems/os2/mmedia/calliope.zip">Calliope</A>
  5734.  
  5735. <A HREF="ftp://uiarchive.cso.uiuc.edu/pub/systems/os2/mmedia/dmply141.zip">DMP 1.41</A>
  5736.  
  5737. <A HREF="#Top">Return to Top</A>
  5738.  
  5739. <A NAME="NetShow">
  5740. <H2>AVI and NetShow</H2>
  5741. </A>
  5742.  
  5743. NetShow is a relatively new product from Microsoft for distributing
  5744. streaming video over the Internet.  NetShow includes a NetShow server
  5745. for Windows NT and NetShow players (both NT and Windows 95).
  5746.  
  5747. NetShow uses the Active Streaming Format (ASF) for video streams
  5748. over the Internet.  ASF adds time stamps for synchronization, error
  5749. correction codes, and other features that AVI lacks.  The NetShow
  5750. family of products includes utilities to convert AVI files to ASF
  5751. files.
  5752.  
  5753. Microsoft has licensed a number of low bitrate video technologies for
  5754. NetShow including Vivo's H.263, Iterated Systems/Progressive
  5755. Networks/RealNetworks RealVideo/ClearVideo fractal codec, and VDONet's
  5756. VDOWave.  Microsoft has purchased VxTreme, possibly the best wavelet
  5757. based video codec.  Microsoft has used their implementation of the
  5758. uncompleted international standard MPEG-4 for NetShow.
  5759.  
  5760. NetShow, including the server, is available at the Microsoft Web
  5761. site.  NetShow has a number of components: the NetShow Player, the
  5762. NetShow Tools, and the NetShow Server.  The NetShow Player is 
  5763. a simple client for audio and video playback over networks.  The
  5764. NetShow Tools are a collection of tools and software components
  5765. for creation of content, especially the ASF files.  The NetShow
  5766. Server is a server that runs under Windows NT for broadcasting audio
  5767. and video streams over networks.
  5768.  
  5769. The NetShow 2.0 Player Installation and the NetShow 2.0 Tools Installation
  5770. both install Video for Windows codecs, the NetShow codecs.  Only
  5771. the NetShow 2.0 Tools codecs appear to support encoding.
  5772.  
  5773. You must install the NetShow Tools to create AVI or ASF files
  5774. compressed with the new "low bitrate" NetShow codecs!
  5775.  
  5776. The NetShow 2.0 Player (Client) Setup installs:
  5777.  
  5778. Codec Name                       ( line in SYSTEM.INI )
  5779.  
  5780. (Video Codecs)
  5781.  
  5782. Vivo H.263 decoder/keyed encoder      ( vidc.vivo=ivvideo.dll )
  5783. VDONet VDOWave decoder                ( vidc.vdom=vdowave.drv )
  5784. Microsoft MPEG-4 decoder              ( vidc.mpg4=msscmc32.dll )
  5785. ClearVideo decoder                    ( vidc.ucod=clrviddd.dll )
  5786. Duck TrueMotion decoder/keyed encoder (vidc.tr20=tr2032.dll )
  5787.  
  5788. (Audio Codecs)
  5789.  
  5790. Vivo G.723.1 / Siren decoder     ( msacm.vivog723=vivog723.acm )
  5791. Frauenhofer MPEG Layer III Audio Codec       ( msacm.l3acm = l3codeca.acm )
  5792. Lernout and Hauspie Audio Codecs ( msacm.lhacm = lhacm.acm )
  5793. Voxware MetaSound/MetaVoice decode/keyed encode (msacm.voxacm119=vdk32119.acm)
  5794.  
  5795. The NetShow 2.0 Tools Setup also installs:
  5796.  
  5797. (NetShow 2.0 Player Codecs with Encoder)
  5798. Microsoft H.263 keyed encoder ( vidc.m263=msh263.drv )
  5799.  
  5800. The NetShow 2.0 Player Codecs appear to lack the functionality
  5801. to compress video.  While they can be invoked from within some
  5802. video editing programs such as Asymetrix Digital Video Producer 4.0, they
  5803. produce uncompressed AVI's.  These AVI's list the four character
  5804. codes for the NetShow codec (such as VDOM for VDOWave) in the
  5805. AVI Header but not in the video stream header within the AVI file.
  5806. The video stream header uses the value 0 for the video compression
  5807. indicating no compression.
  5808.  
  5809. The NetShow 2.0 Player Codecs are invisible from Microsoft VidEdit 
  5810. 1.1 (Video | Compression Options ... menu selection).  I believe this
  5811. is because VidEdit queries the codecs to determine if they support
  5812. compression and only lists the codecs that can actually compress
  5813. video.  In contrast, some applications such as Asymetrix Digital
  5814. Video Producer 4.0 will list all codecs, both those that can compress
  5815. and those that only decompress.
  5816.  
  5817. The NetShow 2.0 Tools Codecs can compress video.  You can create
  5818. compressed AVI files with the VDOWave and MPEG-4 codecs from NetShow
  5819. 2.0 Tools.  These are actually compressed and use the VDO four character
  5820. code or MPEG-4 four character code both in the AVI header and in the
  5821. video stream header.  However, the so-called "keyed encoders" which are
  5822. Microsoft H.263, Vivo H.263, and Duck TrueMotion, cannot create 
  5823. compressed AVI files if invoked from a Video for Windows video editing
  5824. application such as Asymetrix Digital Video Producer.
  5825.  
  5826. The "keyed encoders" appear to be used only for creating Microsoft
  5827. ASF files compressed with Vivo H.263, Microsoft H.263, or
  5828. Duck TrueMotion. 
  5829.  
  5830. Microsoft VidEdit 1.1 will list all NetShow 2.0 Tools Codecs under the
  5831. Video | Compression Options ...  menu selection if no AVI file is loaded.
  5832. Once an AVI file is loaded, some of the NetShow 2.0 Tools Codecs
  5833. disappear from the list.  Other video editors such as Asymetrix
  5834. Digital Video Producer list all NetShow 2.0 Tools Codecs at all
  5835. times.
  5836.  
  5837. NetShow tries to use a real-time Internet Protocol called MMS
  5838. to transfer video over the Internet.  If it cannot use MMS, it will
  5839. use TCP (Transmission Control Protocol) or HTTP (HyperText Transport
  5840. Protocol).  MMS appears to be a Microsoft proprietary real time
  5841. protocol and a competitor to RTP (Real Time Protocol) or RTCP (Real
  5842. Time Control Protocol).
  5843.  
  5844. The Microsoft NBC Business News channel distributes video over
  5845. the Internet using these technologies.
  5846.  
  5847. NetShow also claims to support multicast IP over Networks.  I've
  5848. not personally seen this work.  The NetShow 2.0 server administrative
  5849. user interfaces contain panels for configuring multicast channels.
  5850.  
  5851. <A HREF="http://www.microsoft.com/netshow/">http://www.microsoft.com/netshow/</A>
  5852.  
  5853. <A HREF="#Top">Return to Top</A>
  5854.  
  5855. <A NAME="ToASF">
  5856. <H2>How to convert an AVI file to a Microsoft ASF File?</H2>
  5857. </A>
  5858.  
  5859. Microsoft has defined yet another audio/video/multimedia format
  5860. to support streaming audio and video over the Internet.  This is ASF
  5861. (formerly Active Stream Format and now Advanced Streaming Format).
  5862. ASF is used for streaming audio/video/multimedia and for stored files.
  5863. These files have the extension .asf  They are used as part of
  5864. Microsoft's NetShow video server and client over the Internet.
  5865.  
  5866. The NetShow authoring tools include a DOS command line utilitity:
  5867.  
  5868.     VidToAsf
  5869.  
  5870. which converts AVI files to ASF files, preserving whatever compression
  5871. was used.  VidToAsf can also convert .mov (QuickTime) files to
  5872. ASF files.  Like AVI, ASF files support many audio and 
  5873. video compression schemes.
  5874.  
  5875. The NetShow Tools include a Microsoft Windows graphical application 
  5876. called the ASF Real Time Encoder which can also convert AVI and WAV
  5877. files to ASF files.  The ASF Real Time Encoder is installed under Microsoft
  5878. NetShow in the Start | Programs menu under Windows 95 and Windows NT 4.0
  5879.  
  5880.     ASF Real Time Encoder
  5881.  
  5882. For more information including software:
  5883.  
  5884. <A HREF="http://www.microsoft.com/asf/">http://www.microsoft.com/asf/</A>
  5885.  
  5886. <A HREF="http://www.microsoft.com/netshow/">http://www.microsoft.com/netshow/</A>
  5887.  
  5888. <A HREF="#Top">Return to Top</A>
  5889.  
  5890. <A NAME="Content">
  5891. <H2>Sources of AVI Video Clips on the Web</H2>
  5892. </A>
  5893.  
  5894. What good is all this technology without something to watch?  
  5895. Accordingly, some sites with AVI content.
  5896.  
  5897. The Official Babylon 5 Web Site has a large number of AVI files
  5898. from the popular science fiction television show.
  5899.  
  5900. <A HREF="http://www.babylon5.com/">http://www.babylon5.com</A>
  5901.  
  5902. Paul Bauer's Multimedia City contains a large list of sites with
  5903. video clips.
  5904.  
  5905. <A HREF="http://www.geocities.com/Broadway/2876/index.html">http://www.geocities.com/Broadway/2876/index.html</A>
  5906.  
  5907. <A HREF="#Top">Return to Top</A>
  5908.  
  5909. <A NAME="AVILBR">
  5910. <H4>Low Bit Rate AVI for the Web</H4>
  5911. </A>
  5912.  
  5913. A major limitation of video on the Web in general and AVI in
  5914. particular is the limited bandwidth available.  Currently most users
  5915. with Plain Old Telephone Service (POTS) have 28.8 Kbits/second or 33.6
  5916. Kbits/second connections to their Internet Service Provider.  The new
  5917. generation of K56Flex and X2 modems from U.S. Robotics and Rockwell
  5918. may eventually provide 50-60 Kbits/second over tradiational analog
  5919. telephone lines.  A Basic Rate Interface (BRI) ISDN connection
  5920. provides 128 Kbits/second.
  5921.  
  5922. Although very high speeds are possible within the LAN's and WAN's of
  5923. major corporations and other well-endowed organizations, the so-called
  5924. Intranet, the actual rates achieved over the world wide Internet are
  5925. generally much less.  Not necessarilly better than the rates for POTS
  5926. or ISDN.
  5927.  
  5928. For example, currently (7/20/97) a Web browser at NASA Ames Research
  5929. Center in Mountain View, California can attach to my Web site at an
  5930. Internet Service Provider in nearby San Jose at a sustained data
  5931. transfer rate of 15 KBytes/second or 120 Kbits/second.  NASA Ames
  5932. is home to the Federal Internet Exchange (FIX), the
  5933. government's main switching center for the Internet, for the West Coast
  5934. of the United States.  This is the heart of the Silicon Valley.  This
  5935. is probably much better performance than more outlying parts of the
  5936. Internet.  This gives a sense of the current limitations of the
  5937. broader Internet.
  5938.  
  5939. These Internet rates are very low bitrates for video.  The prevailing
  5940. block Discrete Cosine Transform (DCT) based video codecs such as MPEG-1,
  5941. H.261, and H.263 perform acceptably at 384 Kbits/second but frequently
  5942. exhibit unnatural artifacts at 128 Kbits/second for 30 frame per
  5943. second 320x240 pixel video.  These block DCT based codecs match or
  5944. exceed the performance of Cinepak, the reigning king of AVI codecs.
  5945.  
  5946. Ultimately, faster Internet connections and better codecs will combine
  5947. to resolve this problem and allow convincing, realistic video over
  5948. the Internet.
  5949.  
  5950. In the meantime, Web authors planning to use video must provide highly
  5951. compressed video at low bitrates.  To do this, options are:
  5952.  
  5953.                     - Use smaller frame sizes (e.g. 160x120 pixels)
  5954.                     - Use lower frame rates (10 - 15 frames per second)
  5955.                     - Push the standard codecs such as Cinepak as far as possbile.
  5956.                     - Use one of the newer codecs such as:
  5957.  
  5958.                            <A HREF="#VDOW">VDOWave</A>
  5959.                            <A HREF="#IV41">Indeo 4.1</A>
  5960.                            <A HREF="#H263">H.263</A>
  5961.  
  5962. This overview contains a detailed section on the many codecs available
  5963. for AVI files:
  5964.  
  5965.                    <A HREF="#Codec">Video for Windows Codec Section</A>
  5966.  
  5967. This overview also has a section on effective video for the Web.  Note
  5968. that there are practical limits on how low resolution, frame rates, and
  5969. video quality can be pushed before the video becomes ineffective.
  5970.  
  5971.                   <A HREF="#Style">Effective Video for the Web</A>
  5972.  
  5973. <A HREF="#Top">Return to Top</A>
  5974.  
  5975. <A NAME="Limits">
  5976. <H2>Limitations of AVI and Video for Windows over Networks</H2>
  5977. </A>
  5978.  
  5979. AVI and Video for Windows were developed for playback of audio and
  5980. video from hard disks and CD-ROMs on personal computers.  They are
  5981. also adequate for downloading a video file from a remote site on the
  5982. Internet for subsequent playback from the computer's hard drive.  They
  5983. are not well suited for real-time or streaming video playback over
  5984. networks.  This means videoconferencing or broadcast video over
  5985. networks.
  5986.  
  5987. The AVI file format lacks time stamps embedded in the  audio and
  5988. video streams.  There is no mechanism to resynchronize the audio and
  5989. video streams if data is lost.  In a network, sometimes packets are
  5990. lost in which case the audio and video playback will lose track of the
  5991. time.  With time stamps, the application can resynchronize the audio
  5992. and video playback.
  5993.  
  5994. Microsoft has a new generation of products in the form of the Active/Advanced
  5995. Streaming Format (ASF), NetShow, NetMeeting (videoconferencing), and
  5996. ActiveMovie (DirectShow) with improved support for video over
  5997. networks.  Microsoft provides utilities for converting AVI to
  5998. the new ASF format.
  5999.  
  6000. <A HREF="#Top">Return to Top</A>
  6001.  
  6002. <A NAME="ToSequence">
  6003. <H2>How can I convert an AVI file to a sequence of bitmap images?</H2>
  6004. </A>
  6005.  
  6006. <H3>VidEdit</H3>
  6007.  
  6008. Microsoft's VidEdit video editor can convert AVI files to a sequence
  6009. of Microsoft DIB files, such as test.avi --> test00.dib, test01,dib, etc.
  6010. Further information on VidEdit is available in the section of the
  6011. AVI Overview on editing AVI.
  6012.  
  6013. <H3>AVIRIP</H3>
  6014.  
  6015. There is a freeware DOS program called AVIRIP that can convert
  6016. non-compressed AVI files to a sequence of TGA (Targa), RAW, or
  6017. DIB files.  AVIRIP is available with the convmpg3 freeware toolkit
  6018. for converting AVI to MPEG and MPEG to AVI.  Further information
  6019. on convmpg3 is available in the section of the AVI Overview
  6020. on converting AVI to MPEG.
  6021.  
  6022. Phade Software's MPEG Site has CONVMPG3
  6023.  
  6024. <A HREF="http://www.mpeg1.de/msdos.html">http://www.mpeg1.de/msdos.html</A>
  6025.  
  6026.  
  6027. <H3>Jih-Shin Ho's Display</H3>
  6028.  
  6029. Display by Jih-Shin Ho
  6030. Available at
  6031.  
  6032. <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>
  6033.  
  6034. or other Simtel mirror sites.
  6035.  
  6036. This is a 32-bit MS-DOS program that can read and write many image
  6037. and movie file formats.
  6038.  
  6039. <H3>DeBabelizer Pro</H3>
  6040.  
  6041. Equilibrium's DeBabelizer Pro for Windows 95 and NT 4.0 reads and
  6042. writes about 90 common and not-so-common image formats.  DeBabelizer Pro
  6043. also reads and writes AVI files.  DeBabelizer Pro can read an AVI
  6044. file and export it as a sequence of still images in the many image formats
  6045. that it supports.
  6046.  
  6047. On August 3, 1998, David Gartner of Equilibrium wrote:
  6048.  
  6049. Equilibrium adds AVI with sound support to DeBabelizer Pro 4.5
  6050.  
  6051. **AVI Video with Sound**
  6052. DeBabelizer Pro 4.5's new full AVI support enables users to batch process
  6053. legacy Video for Windows files for use on most any Macintosh and Windows
  6054. systems for the Web, CD-ROM or kiosk.  Video for Windows (AVI) was built
  6055. into Windows 95 and NT and runs only on Windows machines.  Now, with a few
  6056. keystrokes, DeBabelizer Pro 4.5 users can automatically optimize, convert,
  6057. and compress tens, hundreds or thousands of videos to QuickTime 3.0,
  6058. animated GIFs or a variety of other cross-platform video and animation
  6059. formats.
  6060.  
  6061. DeBabelizer Pro has many other features beside file format conversions.
  6062.  
  6063. Equilibrium has a demonstration version of DeBabelizer Pro on its Web site.
  6064. This is definitely demonstration version.  The demo version plasters the
  6065. word Equilibrium all over any images that it processes.
  6066.  
  6067. DeBabelizer Pro ($595 Suggested Retail Price)
  6068. Equilibrium
  6069. 475 Gate Five Road, Suite 225
  6070. Sausalito, CA  94965
  6071. 1-800-524-8651 or (415) 332-4343
  6072.  
  6073. <A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>
  6074.  
  6075.  
  6076.  
  6077. <A HREF="#Top">Return to Top</A>
  6078.  
  6079. <A NAME="ToSmacker">
  6080. <H2>Smacker (.SMK Files)</H2>
  6081. </A>
  6082.  
  6083. Smacker is a special 8-bit color video format from
  6084. RAD Game Tools used for video and computer games.
  6085. Smacker files usually use the file extension .SMK
  6086. RAD Game Tools provides free Smacker Utilities at
  6087. their Web site:
  6088.  
  6089. <A HREF="http://www.radgametools.com/">http://www.radgametools.com/</A>
  6090.  
  6091. The utilities can convert an AVI file to a Smacker video file (.SMK file).
  6092. The Smacker utilities calculate a good 8 bit palette
  6093. for the input video.  
  6094.  
  6095. <A HREF="#Top">Return to Top</A>
  6096.  
  6097. <A NAME="ToRM">
  6098. <H2>Progressive Networks RealMedia Streaming Format (.RM Files)</H2>
  6099. </A>
  6100.  
  6101. Progressive Networks has a streaming media format known as RealMedia
  6102. with the file extension .rm using RealAudio audio compression and
  6103. RealVideo video compression (RealVideo, also known as ClearVideo, is
  6104. Iterated Systems fractal video compression).  Progressive
  6105. provides a product known as RealEncoder to author RealMedia
  6106. files.  RealEncoder can import AVI files!
  6107.  
  6108. <A HREF="http://www.real.com/">http://www.real.com/</A>
  6109.  
  6110.  
  6111. <A HREF="#Top">Return to Top</A>
  6112.  
  6113. <A NAME="FromSequence">
  6114. <H2>How to convert a sequence of bitmap images to an AVI?</H2>
  6115. </A>
  6116.  
  6117. Note: A number of Windows applications can convert a sequence of still
  6118. images in one still image file format, such as TIFF, to a sequence of
  6119. still images in another format, such as Windows 3.x BMP.  These are
  6120. discussed in the <A HREF="#Bitmaps">How to Convert a Sequence of Still
  6121. Images in One Format to a Sequence in Another Format</A> section of
  6122. the AVI Overview.
  6123.  
  6124. Use these still image conversion programs to convert a sequence of
  6125. bitmap images into a format supported by the various programs below
  6126. such as VidEdit which can convert sequences of still images in
  6127. a particular format to an AVI file.
  6128.  
  6129.  
  6130. <H3>VidEdit</H3>
  6131.  
  6132. Microsoft's VidEdit software (16 bit Windows) can read in
  6133. sequences of Microsoft .DIB files and convert them to an
  6134. AVI file.  More information on VidEdit is available in the
  6135. section of the AVI Overview on editing AVI files.
  6136.  
  6137.  
  6138.  
  6139. <H3>Video for DOS</H3>
  6140.  
  6141. A shareware program called Video for DOS (VFD) can convert sequences
  6142. of Targa files (.TGA) into AVI.  (11/8/96)  Video for DOS can be
  6143. downloaded from
  6144.  
  6145. <A HREF="http://www.dc.ee/Files/Graf">http://www.dc.ee/Files/Graf</A>
  6146.  
  6147. Thanks to John Avis for information on Video for DOS.
  6148.  
  6149.  
  6150. <H3>AVI Constructor</H3>
  6151.  
  6152. Michael Caracena's AVI Constructor is a shareware program that 
  6153.  
  6154. Michael Caracena (Oct. 3, 1997) writes...
  6155.  
  6156. The newest version of AVI Constructor can:
  6157.  
  6158.     - Make AVI files from bitmap (*.BMP), JPEG (*.JPG), 
  6159.       and TARGA (*.TGA) files.
  6160.     - Insert audio from a .wav file into the AVI.
  6161.     - Extract images from any AVI. 
  6162.     etc.
  6163.  
  6164. AVI Constructor can be ordered and a demonstration version downloaded
  6165. from:
  6166.  
  6167. <A HREF="http://www.henge.com/~caracena">http://www.henge.com/~caracena</A>
  6168.  
  6169. <H3>MainConcept's MainActor</H3>
  6170.  
  6171. MainConcept's MainActor can import sequences of BMP images and export
  6172. them as an AVI video file.  MainActor can import and export many other
  6173. video and still image formats as well.
  6174.  
  6175. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
  6176.  
  6177.  
  6178. <H3>DeBabelizer Pro for Windows 95 and NT 4.0</H3>
  6179.  
  6180. Equilibrium's DeBabelizer Pro can read and write about 90 common
  6181. and not so common image file formats.  DeBabelizer Pro can also
  6182. read and write AVI files.  DeBabelizer Pro can read in sequences of
  6183. image files in many formats and convert to an AVI file.
  6184.  
  6185. Equilibrium has a demonstration version of DeBabelizer Pro on their
  6186. Web site.  This is a demonstration version.  It adds the words Equilibrium
  6187. to any images or movies that it processes.
  6188.  
  6189. DeBabelizer Pro ($595 Suggested Retail Price)
  6190. Equilibrium
  6191. 475 Gate Five Road, Suite 225
  6192. Sausalito, CA  94965
  6193. 1(800) 525-8651 or (415) 332-4343
  6194. <A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>
  6195.  
  6196. <H3>Smacker Utilities</H3>
  6197.  
  6198. RAD Game Tools distributes free Smacker utilities
  6199. at their Web site:
  6200.  
  6201. <A HREF="http://www.radgametools.com/">http://www.radgametools.com/</A>
  6202.  
  6203. The Graphics Processor can convert a sequence of bitmap images
  6204. in several common bitmap image formats into an AVI file.
  6205. NOTE: this AVI file uses an 8 bit color palette selected by
  6206. the Smacker utilities for best picture quality.
  6207.  
  6208. RAD Game Tools licenses a proprietary 8 bit video format
  6209. called Smacker for use in video games.  Their focus is on
  6210. compression achieved through proper selection of an 8 bit
  6211. color palette, rather than 24 bit color.  Smacker is popular
  6212. in the gaming industry.
  6213.  
  6214. RAD Game Tools
  6215. 850 South Main Street
  6216. Salt Lake City, UT 84101
  6217. Voice: (801) 322-4300
  6218. FAX: (801) 359-6169
  6219.  
  6220.  
  6221. <H3>mkavi (PPM to AVI)</H3>
  6222.  
  6223. mkavi is a Unix utility with source code to convert sequences of
  6224. Unix PPM (Portable Pixmap) files into AVI.  As of 11/7/97, the
  6225. documentation describes mkavi as alpha code.
  6226.  
  6227. <A HREF="ftp://www.va.pubnix.com/staff/stripes/code/">ftp://www.va.pubnix.com/staff/stripes/code/</A>
  6228.  
  6229.  
  6230. <A HREF="#Top">Return to Top</A>
  6231.  
  6232. <A NAME="FromMOV">
  6233. <H2>How to convert QuickTime MOV files to AVI?</H2>
  6234. </A>
  6235.  
  6236. <H3>Power Macintosh:</H3>
  6237.  
  6238. The Video for Windows 1.1 Apple Macintosh Utilities from Microsoft is a
  6239. collection of utilities and system extensions for the Macintosh that add
  6240. support for Video for Windows file formats.  One of the utilities is VfW
  6241. Converter which converts QuickTime MooV files to AVI files playable
  6242. on the PC.
  6243.  
  6244. The Video for Windows 1.1 Apple Macintosh Utilities are available at:
  6245.  
  6246. <A HREF="ftp://ftp.microsoft.com/developr/drg/Multimedia/Jumpstart/VfW11-Mac/">ftp://ftp.microsoft.com/developr/drg/Multimedia/Jumpstart/VfW11-Mac/</A>
  6247.  
  6248. VfW Converter is more powerful than Intel's smartvid PC application.
  6249. It can convert video formats.  For example, VfW Converter can
  6250. convert a raw uncompressed 24 bit QuickTime Movie to a raw 
  6251. uncompressed 24 bit AVI Movie (or do various compressions).  
  6252. Uncompressed QuickTime and uncompressed AVI files use different
  6253. video formats.  VfW Converter also converts audio from QuickTime
  6254. audio to AVI audio.
  6255.  
  6256. The Video for Windows 1.1 Apple Macintosh Utlities file is
  6257. variously named:
  6258.  
  6259. vfw11.sit
  6260.  
  6261. video-for-windows-11p.hqx
  6262.  
  6263. Apple's QuickTime Web site contains links to sources for
  6264. Video for Windows (Macintosh) as well as other useful
  6265. video utilities.
  6266.  
  6267. <A HREF="http://quicktime.apple.com/">Apple's QuickTime Web Site</A>
  6268.  
  6269. Video for Windows (Macintosh) has the virtue of being free, unlike:
  6270.  
  6271. Adobe Premiere (Macintosh)
  6272. ---reportedly can save QuickTime movies as AVI files.
  6273.  
  6274.  
  6275. <H3>On PC/Microsoft Windows:</H3>
  6276.  
  6277. TRMOOV.EXE (see below)
  6278. can translate MOV to AVI, but I found problems playing back
  6279. the AVI files on my 486 PC.  It does not change the 
  6280. interleaving of the audio and video streams in the conversion from
  6281. .MOV to .AVI.  TRMOOV preserves the half-second
  6282. interleave of QuickTime movies which is not appropriate for AVI.  AVI
  6283. wants each video frame interleaved with the audio for that frame.
  6284.  
  6285. With the half-second interleave of QuickTime the audio will playback for
  6286. a half-second while the video is frozen, followed by a half-second of
  6287. video with no audio, repeated for the duration of the AVI playback.
  6288.  
  6289. The interleave can be fixed using VidEdit.  VidEdit contains algorithms
  6290. to properly interleave the audio and video.  Load the offending AVI
  6291. file into VidEdit, Select File | Save As ... and give the file a new
  6292. name.  This triggers the interleave algorithm.  VidEdit will reorganize
  6293. the audio and video to interleave frames instead of half-seconds.
  6294.  
  6295. Intel's SmartVid (see below) can convert .MOV to .AVI  It appears to
  6296. convert the audio video interleave from one format to another, something
  6297. TRMOOV seems to have problems with.
  6298.  
  6299. Adobe's Adobe Premiere 5.0 for Windows 95/NT can import and export
  6300. Windows AVI and Apple QuickTime video files.
  6301.  
  6302. <A HREF="http://www.adobe.com/">Adobe</A>
  6303.  
  6304. <A HREF="#Top">Return to Top</A>
  6305.  
  6306. <A NAME="FromAutodesk">
  6307. <H2>Converting Autodesk Animation Files (FLI or FLC) to AVI</H2>
  6308. </A>
  6309.  
  6310. <H3>VidEdit:</H3>
  6311.  
  6312. Use Microsoft's VidEdit editor.  This editor can read FLI or FLC files.
  6313. Then save the files as AVI files.
  6314.  
  6315. Launch VidEdit.  Select File | Open ...
  6316.  
  6317. This brings up the Open Video File dialog box.  Under List Files of Type,
  6318. select Autodesk Animation from the pulldown list.
  6319.  
  6320. Then, choose File | Save As ...
  6321.  
  6322. VidEdit will save the file as an AVI file.
  6323.  
  6324. Further information on VidEdit is available in the section on editing
  6325. AVI files, including where to get VidEdit.
  6326.  
  6327. <H3>MainActor</H3>
  6328.  
  6329. MainConcept's MainActor for Windows 95 and OS/2 Version 1.00
  6330. can load Autodesk Animator FLI and FLC files and save in AVI
  6331. format.  For further information on MainActor, a shareware
  6332. program that converts many video and animation formats, see:
  6333.  
  6334. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
  6335.  
  6336. or e-mail
  6337.  
  6338. <A HREF="mailto:info@mainconcept.com">info@mainconcept.de</A>
  6339.  
  6340. <A HREF="#Top">Return to Top</A>
  6341.  
  6342. <A NAME="FromMPEG">
  6343. <H2>Converting MPEG to AVI</H2>
  6344. </A>
  6345.  
  6346. CONVMPG3/VIDEDIT (FREE)
  6347.  
  6348. Use the CONVMPG3.ZIP package of MPEG and AVI utilities.  CONVMPG3
  6349. is available for download at the Phade Software MPEG site:
  6350.  
  6351. <A HREF="http://www.mpeg1.de/msdos.html">http://www.mpeg1.de/msdos.html</A>
  6352.  
  6353. (1) Run DMPEG to convert MPEG-1 to a sequence of RAW still images.
  6354.  
  6355. (2) Use RAWRIP to convert the sequence of RAW still images to a 
  6356.     sequence of DIB's.
  6357.  
  6358. (3) Use VidEdit to convert the sequence of DIB's to an AVI file.
  6359.     (or another video editor).  VidEdit is not bundled with 
  6360.     CONVMPG3, but is available elsewhere.  
  6361.  
  6362. <A HREF="#VidEdit">Go to VidEdit Section</A>  The VidEdit section
  6363. of the AVI Overview includes links to sites to download 
  6364. VidEdit.
  6365.  
  6366.  
  6367. Ulead's MPEG Converter can convert MPEG-1 to AVI.
  6368.  
  6369. Ulead is:
  6370.  
  6371. Ulead
  6372. 970 West 190th Street, Suite 20
  6373. Torrance, CA  90502
  6374. Voice: (800) 858-5323
  6375. FAX:   (310) 523-9399
  6376. <A HREF="http://www.ulead.com/">http://www.ulead.com/</A>
  6377.  
  6378. <A HREF="#Top">Return to Top</A>
  6379.  
  6380. <A NAME="FromGIF89a">
  6381. <H2>Converting Animated GIF (GIF89a) to AVI</H2>
  6382. </A>
  6383.  
  6384. MainConcept's MainActor for Windows can load animated GIF
  6385. files (GIF89a) and then save these files as AVI files.
  6386. MainActor is available in a shareware version or as a fully
  6387. functional paid-for version.
  6388.  
  6389. On the Web:
  6390.  
  6391. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
  6392.  
  6393. By E-Mail:
  6394.  
  6395. <A HREF="mailto:info@mainconcept.de">info@mainconcept.de</A>
  6396.  
  6397. <H3>GIF Movie Gear (Gamani Productions)</H3>
  6398.  
  6399. GIF Movie Gear from Gamani Productions can reportedly convert
  6400. Animated GIF (GIF89a) to AVI and vice versa.
  6401.  
  6402. On the web:
  6403.  
  6404. <A HREF="http://www.moviegear.com/">http://www.moviegear.com/</A>
  6405.  
  6406.  
  6407. <A HREF="#Top">Return to Top</A>
  6408.  
  6409.  
  6410. <A NAME="Bitmaps">
  6411. <H2>How to Convert a Sequence of Still Images in One Format to a Sequence in Another Format</H2>
  6412. </A>
  6413.  
  6414. At this time, there are hundreds of different graphic file formats
  6415. for still images, such as Windows BMP, Windows DIB, Targa, GIF, JPEG,
  6416. Unix Portable Pixmap (PPM), and many others.  In creating an AVI (or
  6417. MPEG or MOV for that matter), some authoring programs may create a
  6418. video as a sequence of still images in some graphic file format
  6419. which is not supported by the graphic file sequence to AVI
  6420. conversion utilities listed elsewhere in this Overview.
  6421.  
  6422. Fortunately, there are freeware, shareware, and commercial programs
  6423. which provide batch conversion of sequences of still images from one
  6424. file format to sequences in another file format.  For example, you 
  6425. might generate a sequence of Unix PPM format files with one
  6426. utilitity and need to convert to a sequence of Windows BMP files.
  6427.  
  6428. <H3>PC/Windows</H3>
  6429.  
  6430. PixWizard is a shareware Windows 95 and Windows NT 4.0 image viewer
  6431. with image processing and conversion capabilities from PixVision
  6432. (formerly Pixel Vision) Software.  PixWizard reads and writes the
  6433. following still image file formats:
  6434.  
  6435. o BMP (Windows 3.x, OS/2 1.1, and OS/2 2.0)
  6436. o Graphics Interchange Format (GIF)
  6437. o Interchange Format File (IFF)
  6438.      - including HAM and SHAM modes
  6439. o JPEG File Interchange Format (JFIF)
  6440. o Kodak Photo CD (PCD)
  6441. o Macintosh PICT (including PICT/JPEG)
  6442. o MacPaint
  6443. o PCX
  6444. o Portable Pixmap (PPM/PGM/PBM)
  6445. o Targa 
  6446. o Tagged Image File Format (TIFF)
  6447.  
  6448. PixWizard has a batch conversion of a list of files to a specified
  6449. format feature.  Select Batch Conversion... from the File menu in
  6450. PixWizard 1.07.  A 30-day trial version of PixWizard is available at
  6451. the PixVision Web site.
  6452.  
  6453. WinJPEG is a shareware Windows 3.x utility from PixVision (formerly
  6454. Pixel Vision).  WinJPEG reads and writes most of the same file formats
  6455. as PixWizard.  It has a batch conversion feature.
  6456.  
  6457. PixVision Software Home Page (PixWizard and WinJPEG):
  6458.  
  6459. <A HREF="http://www.pixvision.com/">http://www.pixvision.com/</A>
  6460.  
  6461. Paint Shop Pro is a shareware and commercial Windows utility from
  6462. Jasc Software.  Paint Shop Pro reads and writes most graphic file
  6463. formats.  It has a batch conversion feature.
  6464.  
  6465. The shareware version of Paint Shop Pro has a thirty (30) day
  6466. evaluation period.
  6467.  
  6468. Jasc Software Paint Shop Pro Page:
  6469.  
  6470. <A HREF="http://www.jasc.com/psp.html">http://www.jasc.com/psp.html</A>
  6471.  
  6472. <H3>Power Macintosh</H3>
  6473.  
  6474. GraphicConverter is a shareware Power Macintosh utility with
  6475. very extensive support for graphic file formats and some video
  6476. formats.  It can read and write roughly a hundred different
  6477. file formats including some pretty obscure formats.  It has a
  6478. batch conversion feature.
  6479.  
  6480. GraphicConverter Web Site:
  6481.  
  6482. <A HREF="http://www.lemkesoft.de/">http://www.lemkesoft.de/</A>
  6483.  
  6484. <H3>Unix</H3>
  6485.  
  6486. I've not identified a Unix utility with explicit batch conversion
  6487. features.  However, there are some utilities for bitmap conversion.
  6488. The Portable Bitmap Utilities can easily be used for batch conversion
  6489. through a script.
  6490.  
  6491. PBMPLUS: Extended Portable Bitmap Toolkit
  6492. by Jef Poskanzer
  6493.  
  6494. A collection of utilities for converting to and from Jef Poskanzer's
  6495. Portable Bitmap (PBM), Portable Greymap (PGM), and Portable Pixmap (PPM)
  6496. file format.  FREE and widely available on Unix systems.
  6497.  
  6498. For example, to convert a GIF file to a TIFF file.
  6499.  
  6500. 1. giftoppm  myfile.gif
  6501. 2. pnmtotiff myfile.ppm
  6502.  
  6503. giftoppm is a utility program to convert GIF to PPM
  6504.  
  6505. pnmtotiff is a utility program to convert PBM/PGM/PPM to TIFF
  6506.  
  6507. The PBM utilities can be invoked from Unix scripts
  6508. (Bourne Shell, Korn Shell, C Shell, Perl, etc.) for batch
  6509. conversion of a sequence of bitmap images.
  6510.  
  6511. PBMPLUS is available at a number of ftp sites such as:
  6512.  
  6513. <A HREF="ftp://ftp.x.org/R5contrib/">ftp://ftp.x.org/R5contrib/</A>
  6514.  
  6515. There are many files in this directory.  PBMPLUS is:
  6516.  
  6517. pbmplus10dec91.tar
  6518. pbmplus10dec91.tar.Z
  6519.  
  6520.  
  6521. John Bradley's xv (shareware)
  6522.  
  6523. xv is a Unix X-Windows shareware utility for
  6524. viewing, manipulating, and converting bitmap images
  6525. on Unix X-Windows systems.  xv supports many common
  6526. bitmap image file formats.
  6527.  
  6528. The xv Version 3.10a Manual states:
  6529.  
  6530. "Since xv has absolutely no command-line or batch
  6531. conversion abilities..."
  6532.  
  6533. xv is available from a number of sites such as:
  6534.  
  6535. <A HREF="ftp://ftp.cis.upenn.edu/pub/xv">ftp://ftp.cis.upenn.edu/pub/xv</A>
  6536.  
  6537.  
  6538. <A HREF="#Top">Return to Top</A>
  6539.  
  6540. <A NAME="ToMOV">
  6541. <H2>How to convert AVI to QuickTime files?</H2>
  6542. </A>
  6543.  
  6544. <H3>Microsoft Windows</H3>
  6545.  
  6546. Intel's SmartVID, a DOS and Windows application, can convert
  6547. .AVI to .MOV files.  SmartVID is codec independent.  This means
  6548. that SmartVid preserves the video compression scheme from the
  6549. source .AVI file.  
  6550.  
  6551. <A HREF="http://www.intel.com/pc-supp/multimed/indeo/smartvid.htm">
  6552. http://www.intel.com/pc-supp/multimed/indeo/smartvid.htm</A>
  6553.  
  6554.  
  6555. TRMOOV.EXE
  6556.  
  6557. Windows 3.1 Program
  6558. Converts AVI to QuickTime for Windows movie.
  6559. The QTW movie will play on a Macintosh with QuickTime 1.5 or later.
  6560.  
  6561. Note: My experiments converting some .MOV files to .AVI seem to
  6562. playback ok, unlike the .AVI to .MOV conversion. 
  6563.  
  6564. Source: Found on CD-ROM with the "How to Digitize Video" book 
  6565. (see below).
  6566.  
  6567. On Net: <A 
  6568. HREF="ftp://ftp.rahul.net/pub/jfm/avi/trmoov.exe">ftp://ftp.rahul.net/pub/jfm/avi/trmoov.exe</A>
  6569.  
  6570. Please Note: TRMOOV and SmartVid preserve the compressor used in the
  6571. source file.  For example, if the AVI file was compressed with
  6572. Cinepak, the MOV file will be compressed with Cinepak.  Since Cinepak
  6573. is supported by both Video for Windows and QuickTime this is not
  6574. a problem.  However, if the compressor exists only in Video for Windows
  6575. or only QuickTime, then there will be a problem.
  6576.  
  6577.  
  6578. Mainconcept's Main Actor can load many video and animation formats.
  6579. It can also save many video and animation formats.  The Windows version
  6580. of Main Actor can load AVI and save the file as QuickTime.
  6581.  
  6582. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de</A>
  6583.  
  6584.  
  6585. Adobe Premiere 5.0 for Windows 95/NT can import and export both
  6586. AVI and QuickTime.
  6587.  
  6588. <A HREF="http://www.adobe.com/">Adobe</A>
  6589.  
  6590. <H3>PowerMacintosh</H3>
  6591.  
  6592. On the PowerMacintosh, Microsoft distributes the Video for
  6593. Windows 1.1 Apple Macintosh Utilities.  These include an
  6594. AVI to QuickTime conversion utility.
  6595.  
  6596. The Video for Windows 1.1 Apple Macintosh Utilities include:
  6597.  
  6598. * Read Me file.
  6599. * QuickTime-to-AVI conversion program.
  6600.       - this utility is called "VfW Converter"
  6601.  
  6602. * Utility for moving AVI files to the Macintosh.
  6603.       - this utility is called "AVI to QT Utility"
  6604.  
  6605. * Windows Compressors system extension, which contains 
  6606.   compressor/decompressors (CODECs) for Microsoft RLE, 
  6607.   Microsoft Video 1, and Microsoft Full Frame formats.
  6608.       - this component is called "Windows Compressors"
  6609.  
  6610. To retrieve the Video for Windows 1.1 Apple Macintosh Utilities:
  6611.  
  6612. <A HREF="ftp://ftp.microsoft.com/developr/drg/Multimedia/Jumpstart/VfW11-Mac/">ftp://ftp.microsoft.com/developr/drg/Multimedia/Jumpstart/VfW11-Mac/</A>
  6613.  
  6614.  
  6615. On the PowerMacintosh, the program AVI->QuickTime can convert AVI to
  6616. QuickTime.  At least, it can convert the video successfully for
  6617. subsequent playback with Apple's MoviePlayer.  I have seen problems
  6618. with the audio.  This application is available at various Web and ftp
  6619. sites in the file avi-to-qt-converter.hqx  This may be the same
  6620. AVI to QuickTime converter included with the Video for Windows 1.1
  6621. Apple Macintosh Utilities; I have not confirmed this.
  6622.  
  6623. One site with AVI->QuickTime is:
  6624.  
  6625. <A HREF="ftp://mirrors.aol.com/pub/info-mac/gst/mov/avi-to-qt-
  6626. converter.hqx">ftp://mirrors.aol.com/pub/info-mac/gst/mov/avi-to-qt-converter.hqx</A>
  6627.  
  6628.  
  6629. <A HREF="#Top">Return to Top</A>
  6630.  
  6631.  
  6632. <A NAME="ToGIF89a">
  6633. <H2>How to convert AVI to animated GIF?</H2>
  6634. </A>
  6635.  
  6636.  
  6637. <H3>GIF Construction Set</H3>
  6638.  
  6639. Gif Construction Set from Alchemy Mindworks reportedly can convert 
  6640. an AVI file to an animated GIF file.
  6641.  
  6642. Alchemy Mindworks, Inc.
  6643.  
  6644. Web <A HREF="http://www.mindworkshop.com/alchemy/alchemy.html">http://www.mindworks.com/alchemy/alchemy.html</A>
  6645.  
  6646. E-Mail: alchemy@mail.north.net
  6647.  
  6648. FTP: ftp://ftp.mindworkshop.com/pub/alchemy
  6649.  
  6650.  
  6651. <H3>Microsoft GIF Animator</H3>
  6652.  
  6653. Microsoft's GIF Animator for Windows 95 
  6654. product can reportedly convert AVI to animated
  6655. GIFs (GIF89a format).  Information on GIF Animator
  6656. including a dowloadable version is available at
  6657. the Microsoft Web site (11/7/96) on the Microsoft
  6658. Image Composer page.
  6659.  
  6660. Web <A HREF="http://www.microsoft.com/imagecomposer/">http://www.microsoft.com/imagecomposer</A>
  6661.  
  6662.  
  6663. <H3>MainActor</H3>
  6664.  
  6665. MainActor, a shareware software product for Windows 95, Windows NT, and 
  6666. OS/2 reportedly can convert AVI to animated GIF.
  6667.  
  6668. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
  6669.  
  6670.  
  6671. <H3>Ulead</H3>
  6672.  
  6673. Ulead reports that is has added AVI to GIF to
  6674.  
  6675. Ulead's PhotoImpact GIF Animator 1.2 Beta (11/16/96)
  6676.  
  6677. <A HREF="http://www.ulead.com/products/framens.htm">http://www.ulead.com/products/framens.htm</A>
  6678.  
  6679. Ulead Toll Free Number: 1-800-858-5323
  6680.  
  6681.  
  6682. <H3>Adobe Premiere</H3>
  6683.  
  6684. There is (Feb. 1998) a free plug-in for Adobe Premiere 4.x
  6685. to convert AVI to Animated GIF.  See the Adobe Web site
  6686. to download this and many other plug-ins for Adobe products:
  6687.  
  6688. <A HREF="http://www.adobe.com/">http://www.adobe.com/</A>
  6689.  
  6690.  
  6691. <H3>GIF Movie Gear (Gamani Productions)</H3>
  6692.  
  6693. GIF Movie Gear from Gamani Productions can reportedly convert
  6694. AVI to Animated GIF and vice versa.
  6695.  
  6696. <A HREF="http://www.moviegear.com/">http://www.moviegear.com/</A>
  6697.  
  6698.  
  6699. <A HREF="#Top">Return to Top</A>
  6700.  
  6701.  
  6702. <A NAME="ToMPEG">
  6703. <H2>How to convert AVI to MPEG?</H2>
  6704. </A>
  6705.  
  6706. AVI to MPEG Conversion at a Glance
  6707.  
  6708. Company/Author(s)  Product           Price             URL
  6709. ---------------------------------------------------------------------
  6710.  
  6711. Corel              PhotoPaint        $500?    <A HREF="http://www.corel.com/">http://www.corel.com/</A>
  6712.  
  6713. Ulead              MPEG Converter    $249     <A HREF="http://www.ulead.com/">http://www.ulead.com/</A>
  6714.  
  6715. Xing Technologies  XingMPEG Encoder  $89      <A HREF="http://www.xingtech.com/">http://www.xingtech.com/</A>
  6716.                    XingMPEG Encoder 2 (May 6, 1997 release)
  6717.  
  6718. CeQuadrat          PixelShrink       $199     <A HREF="http://www.cequadrat.com/">http://www.cequadrat.com/</A>
  6719.  
  6720. Vitec              MPEG Maker        $125     <A HREF="http://vitechts.com/">http://vitechts.com/</A>
  6721.  
  6722. MainConcept        MainActor         shareware <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de/</A>
  6723.  
  6724. avi2mpg1           Unknown           freeware   <A HREF="http://www.mnsi.net/~jschlic1/">http://www.mnsi.net/~jschlic1/</A>
  6725.  
  6726. Stefan Eckhart and others  CONVMPG3  freeware kit  <A HREF="http://www.powerweb.de/mpeg/msdos.html">http://www.powerweb.de/mpeg/msdos.html</A>
  6727.  
  6728. Ligos Technology   LSX-MPEG Encoder  $179.95    <A HREF="http://www.ligos.com/">http://www.ligos.com/</A>
  6729.  
  6730. -------------------
  6731.  
  6732. Further information, reviews, and live links follow:
  6733.  
  6734.  
  6735. The following posting from the comp.graphics.animation USENET
  6736. newsgroup provides a good answer to this question.  I have retained
  6737. the header to insure proper credit to the author.
  6738.  
  6739. Note: LW refers to the Lightwave 3D animation software package.
  6740.  
  6741. From comp.graphics.animation Wed Oct 30 18:16:34 1996
  6742. Path: 
  6743. samba.rahul.net!rahul.net!a2i!news.PBI.net!news.mathworks.com!howland.erols.net!surfnet.nl!tudelft.nl!ne
  6744. ws
  6745. From: Valery <V.V.Kritchallo@twi.tudelft.nl>
  6746. Newsgroups: comp.graphics.animation
  6747. Subject: Re: AVI to Mpeg converter
  6748. Date: Mon, 28 Oct 1996 15:15:14 +0100
  6749. Organization: Technical University, Delft
  6750. Lines: 58
  6751. Message-ID: <3274BFF2.2EDD@twi.tudelft.nl>
  6752. References: <01bbc33f$05021880$d73d93cf@cube176a>
  6753. Reply-To: V.V.Kritchallo@twi.tudelft.nl
  6754. NNTP-Posting-Host: duti504b.twi.tudelft.nl
  6755. Mime-Version: 1.0
  6756. Content-Type: text/plain; charset=us-ascii
  6757. Content-Transfer-Encoding: 7bit
  6758. X-Mailer: Mozilla 3.0 (Win95; I)
  6759.  
  6760. Mariusz Jesmanowicz wrote:
  6761. > Hi, I use LW to do animation, and basically I am not happy with any of the
  6762. > compression engines aviable for avi. Those codes suck. So what I want to do
  6763. > is make an UNCOMPRESSED AVI and then translate it to MPEG. anyone know of
  6764. > any good converters to MPEG or hoe about plug-in for LW to be able to do
  6765. > MPEG files from the start.
  6766. > Thank You
  6767.  
  6768. Hi,
  6769.  
  6770. you're right, every single AVI compression codec is lame.
  6771. 5 years of the AVI format existance and zero progress so far.
  6772.  
  6773. If you're talking about freeware or budget-priced MPEG codecs,
  6774. it's a tough task, to find the damn thing. I'm busy in this area
  6775. quite for a while already, and here are my findings:
  6776.  
  6777. 1. XING's MPEG encoder is a classical name on the scene. Had
  6778. compatibility problems before, not anymore, I believe. Can cost
  6779. you $150 or more, not sure. Scan for 'XING' on the Net, you'll
  6780. definitely find some tracks (www.xing.com doesn't show up).
  6781.  
  6782. 2. Stefan Eckart's CMPEG (DOS) encoder is FREE and GOOD, and stays
  6783. so for a couple of years already. Can have troubles converting
  6784. some particular streams, but generally not worse than many
  6785. commercial programs. (You need to make a TGA sequence first out
  6786. of your AVI, though). Again, scan for CMPEG, or use my bookmarks
  6787. found on the site Im introducing below.
  6788.  
  6789. 3. To my surprise, Corel Photopaint 6 has got very decent built-in 
  6790. MPEG compression option. Open an AVI, Save As an MPEG, and see what
  6791. happens (get some coffie, as it'll take a while ;)  I checked it out
  6792. on a stream where CMPEG gave up and the Corel's conversion did make
  6793. a wonder. (If you like to see the result, download my 'Liquid Beatles'
  6794. morph clip, 1 Mb: http://www.proteon.nl/synth_art/movies/cross.mpg).
  6795.  
  6796. 4. Ulead's MPEG converter (www.ulead.com) seems to be the major
  6797. player (priced below $250) on the Windows arena. I've heard good
  6798. references about their MPEG's quality, but I feel that their
  6799. biggest advantage is good integration with Windows and AVI format.
  6800. If I'm not mistaken, a very slow codec.
  6801.  
  6802. 5. Don't mess with DARIM Vision's codec (Korea). I've tried their
  6803. demo, it produces low-quality crap. Though fast and cheap (you bet :-).
  6804.  
  6805. See my MPEG clips, fractals, morphs, and in general lots of
  6806. advanced graphics at 
  6807. http://www.proteon.nl/synth_art/
  6808.  
  6809. Hope this helps,
  6810.  
  6811. Valery
  6812. http://www.proteon.nl/synth_art/movies.html
  6813. ---------------------------------------------------------------
  6814.  
  6815. In addition to the above, there is <EM>MPEG Maker</EM> from
  6816. VITEC-HTS (formerly Vitec Multimedia).  Vitec is:
  6817.  
  6818. Vitec
  6819. 4366 Independence Court, Suite C
  6820. Sarasota, FL 34234
  6821. Voice: (941) 351-9344
  6822. FAX: (941) 351-9423
  6823. <A HREF="http://vitechts.com">http://vitechts.com</A>
  6824.  
  6825. CeQuadrat makes a software-only AVI to MPEG converter called
  6826. PixelShrink.  CeQuadrat is:
  6827.  
  6828. CeQuadrat
  6829. 1804 Embarcadero Road, Suite 101
  6830. Palo Alto, CA  94303
  6831. Voice: (415) 843-3780
  6832. FAX: (415) 843-3799
  6833. <A HREF="http://www.cequadrat.com/">http://www.cequadrat.com/</A>
  6834.  
  6835.  
  6836. And the freeware kit CONVMPG3, a collection of MS-DOS
  6837. utilities that can be used to convert AVI to MPEG-1 or
  6838. MPEG-1 to AVI.  CONVMPG3 includes Stefan
  6839. Eckhardt's CMPEG MPEG-1 encoder mentioned above
  6840. but also includes utilities to generate the sequence
  6841. of Targa files required by CMPEG.  The URL for CONVMPG3 is:
  6842.  
  6843. <A HREF="http://www.powerweb.de/mpeg/msdos.html">http://www.powerweb.de/mpeg/msdos.html</A>
  6844.  
  6845. avi2mpg1 is a freeware command line application for Windows 95/NT
  6846. that can convert AVI to MPEG-1, supports audio, video, and 
  6847. interleaved audio/video.
  6848.  
  6849. <A HREF="http://www.mnsi.net/~jschlic1/">http://www.mnsi.net/~jschlic1/</A>
  6850.  
  6851. MainConcept's MainActor product now (March 1997) includes
  6852. add-on modules to output MPEG-1 and MPEG-2.  With these add-on
  6853. modules, MainActor can convert AVI to MPEG-1 or MPEG-2.
  6854.  
  6855. Marcus Moenig at MainConcept provided an evaluation copy of the
  6856. MPEG-1/2 modules.   In tests, these modules could convert AVI files
  6857. to MPEG-1 that could be played using the ActiveMovie software
  6858. MPEG player shipping with Microsoft's Windows 95 OSR2.
  6859.  
  6860. MainConcept is:
  6861.  
  6862. MainConcept
  6863. <A HREF="http://www.mainconcept.de/">http://www.mainconcept.de</A>
  6864.  
  6865.  
  6866. The URL for Ulead is:
  6867.  
  6868. Ulead MPEG Converter
  6869. <A HREF="http://www.ulead.com/">http://www.ulead.com/</A>
  6870.  
  6871.  
  6872. On May 6, 1997, Xing announce a new product, the Xing MPEG Encoder 2
  6873. which accelerates MPEG encoding using Intel MMX instructions on PC's.
  6874. The original Xing MPEG Encoder did not use MMX instructions.
  6875. The Xing MPEG Encoder 2 can convert AVI and WAV files to MPEG-1.
  6876.  
  6877. The URL for Xing is:
  6878. Xing Technology Corporation
  6879. <A HREF="http://www.xingtech.com">http://www.xingtech.com/</A>
  6880.  
  6881. Ligos Technology markets an LSX-MPEG Encoder to convert
  6882. AVI to MPEG-1 and MPEG-2
  6883.  
  6884. Ligos Technology
  6885. 1475 Folsom St. Suite 200
  6886. San Francisco, CA 94103
  6887. +1-415-437-6137
  6888. +1-415-437-6139 FAX
  6889. info@ligos.com
  6890.  
  6891. <A HREF="http://www.ligos.com/">http://www.ligos.com/<A>
  6892.  
  6893. For further information on the MPEG digital audio and video
  6894. format see Tristan Savatier's comprehensive MPEG site:
  6895.  
  6896. <A HREF="http://www.mpeg.org/">http://www.mpeg.org/</A>
  6897.  
  6898. and The MPEG Home Page:
  6899.  
  6900. <A HREF="http://drogo.cselt.it/mpeg/">http://drogo.cselt.it/mpeg/</A>
  6901.  
  6902. <A HREF="#Top">Return to Top</A>
  6903.  
  6904. <A NAME="ScreenCapture">
  6905. <H2>How to capture screen to AVI Files</H2>
  6906. </A>
  6907.  
  6908. <H3>Microsoft Camcorder</H3>
  6909.  
  6910. Microsoft distributes a free screen capture utility called 
  6911. Microsoft Camcorder (sometimes abbreviated MSCamcorder).  Camcorder
  6912. can save screen captures as AVI files or a .EXE file.
  6913.  
  6914. <A HREF="http://www.microsoft.com/msoffice/office97/camcorder/default.htm">http://www.microsoft.com/msoffice/office97/camcorder/default.htm</A>
  6915.  
  6916. <H3>HyperCam</H3>
  6917.  
  6918. See the following posting from Greg Kochaniak dated 5/10/97 from the 
  6919. comp.archives.ms-windows.announce newsgroup.
  6920.  
  6921. I have uploaded to Simtel.Net:
  6922.  
  6923. http://www.simtel.net/pub/simtelnet/win95/mmedia/hycam119.zip
  6924. ftp://ftp.simtel.net/pub/simtelnet/win95/mmedia/hycam119.zip   251872 bytes
  6925.  
  6926. hycam119.zip    HyperCam v1.19 AVI screen capture for Win95,NT
  6927.  
  6928. HyperCam v1.19 captures the action from Windown 95 or NT screen in any
  6929. graphics mode, including cursor movements and sound, and saves it to
  6930. standard AVI movie files.  Perfect for demonstrations, presentations
  6931. and tutorials.
  6932.  
  6933. Special requirements: Windows 95 or Windows NT.
  6934.  
  6935. Changes: Fixed two problems: starting recording in 256 color mode would
  6936. produce sometimes invalid AVI files (when, upon minimizing HyperCam
  6937. window for recording, another window with a different palette would come
  6938. to front and realize its palette). The other problem: selecting AVI file
  6939. name with Browse button would not always work correctly.
  6940.  
  6941. hycam119.zip has replaced hycam118.zip.
  6942.  
  6943. Shareware.  Uploaded by the author.
  6944.  
  6945. Greg Kochaniak, Hyperionics
  6946. gregko@hyperionics.com
  6947. http://www.hyperionics.com/
  6948.  
  6949. <H3>SnagIt</H3>
  6950.  
  6951. TechSmith Corporation markets a Microsoft Windows product called
  6952. SnagIt which can capture the screen to AVI files.  SnagIt also can
  6953. capture the screen to still image formats such as BMP.
  6954.  
  6955. <A HREF="http://www.techsmith.com/">http://www.techsmith.com/</A>
  6956.  
  6957. <A HREF="#Top">Return to Top</A>
  6958.  
  6959. <A NAME="AuthorAVI">
  6960. <H2>Authoring Tools to Create AVI Files</H2>
  6961.  
  6962. A wide variety of 2D and 3D animation applications as well as other
  6963. multimedia authoring tools generate AVI files directly.  This is
  6964. especially true for Windows versions of applications, since Microsoft
  6965. provides an API for creating AVI files.  A list of applications
  6966. that can create AVI files follows.    
  6967.  
  6968. <H3>LightWave 3D 5.5 for Windows 95 and Windows NT</H3>
  6969.  
  6970. LightWave is a popular 3D modeling and animation program
  6971. widely used in broadcast television.  LightWave can do almost
  6972. anything and supports third party plug-ins to add features that
  6973. it lacks.
  6974.  
  6975. NewTek
  6976. Note: According to product literature on the NewTek Web site.
  6977.  
  6978. <A HREF="http://www.newtek.com/">http://www.newtek.com/</A>
  6979.  
  6980.  
  6981. <H3>Caligari Truespace 1,2, and 3 for Windows</H3>
  6982.  
  6983. Caligari TrueSpace is a popular low-end 3D modeling and animation
  6984. program.  Traditionally, TrueSpace has been polygon based limiting
  6985. its usefulness for modeling organic forms.  TrueSpace 3.0 adds
  6986. some organic features.
  6987.  
  6988. Caligari Corporation
  6989. Note: Confirmed from personal use of Caligari TrueSpace.
  6990.  
  6991. <A HREF="http://www.caligari.com/">http://www.caligari.com/</A>
  6992.  
  6993. <H3>Fractal Design Ray Dream Studio for Windows </H3>
  6994.  
  6995. Ray Dream Studio is a suite of 3D modeling, animation, and rendering
  6996. tools.
  6997.  
  6998. Fractal Design
  6999. Note: According to product literature on Web site.
  7000.  
  7001. <A HREF="http://www.fractal.com/">http://www.fractal.com/</A>
  7002.  
  7003. <H3>Macromedia Director 6.0 for Windows</H3>
  7004.  
  7005. Macromedia Director is a widely used authoring tool for creating
  7006. interactive 2D animations such as presentations, multimedia for
  7007. kiosks, prototypes of user interfaces, and similar uses.  Director
  7008. can also produce straight 2D animations appropriate for AVI files.
  7009.  
  7010. Macromedia
  7011. Note: According to product literature on the Macromedia Web site.
  7012.  
  7013. <A HREF="http://www.macromedia.com/">http://www.macromedia.com/</A>
  7014.  
  7015. <H3>CorelMOVE</H3>
  7016.  
  7017. Corel's CorelMOVE animation software can export AVI files.
  7018.  
  7019. <A HREF="#Top">Return to Top</A>
  7020.  
  7021. <A NAME="Capture">
  7022. <H2>How to create AVI files from analog video:</H2>
  7023. </A>
  7024.  
  7025. <H3>Video Capture Cards</H3>
  7026.  
  7027. On Intel based PC's, use a video capture card to convert analog video
  7028. from video tapes or video cameras to AVI files.  A PC video capture card
  7029. is typically either a 16 bit ISA bus card or a 32-bit PCI bus card that
  7030. plugs into the 16 bit ISA or 32-bit PCI slots in your PC motherboard.
  7031. 32-bit PCI bus cards are steadily replacing 16-bit ISA bus cards.
  7032. Most video capture cards have either a composite video connector or
  7033. both a composite video and an S-Video connector.  Most video capture
  7034. cards perform compression of the video in hardware or firmware on the
  7035. video capture card before tranferring the compressed video over the ISA
  7036. or PCI bus to the PC hard drive.
  7037.  
  7038. Most video capture cards only capture video.  They do not contain audio
  7039. capture.  Audio capture is done through the audio or sound card of the
  7040. computer.  It is increasinly common to have the audio input and output 
  7041. hardware built into the motherboard.  The computer may not have 
  7042. a physically distinct sound card.
  7043.  
  7044. Sound cards usually have a Microphone input jack, a Speaker or 
  7045. Headphone output jack, a Line input jack, and a Line output jack.
  7046. Line input and the microphone input are not interchangable.  The
  7047. jacks use different electrical signals.  Most users will use
  7048. the microphone for input and speakers or headphone for output.
  7049.  
  7050. <A NAME="VfWCapture">
  7051. <H4>Video Capture in Video for Windows</H4>
  7052. </A>
  7053.  
  7054. Under Microsoft Windows, video capture cards come with a Video for
  7055. Windows capture driver (CAPTURE DRIVER).  The capture driver exports
  7056. standard functions (including some dialog boxes for user interaction)
  7057. that any Video for Windows software application can call.
  7058. Any Video for Windows video capture application, including video
  7059. editing applications that support video capture, can and must use this
  7060. Video for Windows capture driver to capture video.
  7061.  
  7062. Windows 3.x, Windows 95, Windows NT 3.51, and Windows NT 4.0 all use
  7063. Video for Windows capture drivers.  ActiveMovie 1.0 for Windows 95 and
  7064. Windows NT 4.0 does not provide a mechanism for video capture, only
  7065. video playback.  Video for Windows continues to be the software
  7066. component for video capture.
  7067.  
  7068. The capture driver may consist of a single file or multiple
  7069. files.  The capture driver is identified by the name MSVIDEO (in
  7070. the SYSTEM.INI file in Windows 3.x and Windows 95 for example).
  7071. In Windows 3.x and Windows 95, the SYSTEM.INI file will contain
  7072. a line such as
  7073.  
  7074. MSVIDEO = C:\PROSHARE\ISVRPRO.DRV
  7075.  
  7076. ISVRPRO.DRV is the name of the video capture driver used by
  7077. Intel's Smart Video Recorder Pro in the Intel ProShare 
  7078. video-conferencing system.  
  7079.  
  7080. where MSVIDEO points to the top-level file that exports the
  7081. standard Video for Windows functions for the capture driver.
  7082. This file may in turn invoke other separate files that form
  7083. the rest of the video capture driver.  For example, the
  7084. installation program for the miroMEDIA PCTV TV Tuner and 
  7085. Video Capture Card installs eleven (11) different files
  7086. to support the Brooktree Bt848 video capture chip on the 
  7087. card.  This card consists of some connectors, a few resistors
  7088. and capacitors, and the Bt848 chip.
  7089.  
  7090. In Windows 95, users can view and configure the video capture driver
  7091. by selecting System in the Windows 95 Control Panel.  Then select the
  7092. Device Manager tab.  System | Device Manager is actually a user friendly
  7093. interface to the Windows 95 Registry which contains all of the
  7094. information about a device such as names and locations of driver
  7095. files, hardware resources used, and other data in a complex database.
  7096. The Device Manager contains icons representing all the devices
  7097. installed on the computer.  The video capture card and associated
  7098. driver will appear either in the "Sound, video and game controllers"
  7099. category or "Other Devices".
  7100.  
  7101. Each device has "Properties".  Users can view and change the properties
  7102. either by:
  7103.  
  7104. (1) Click once on the device icon in System | Device Manager to select
  7105. the device.  
  7106. (2) Click once on the Properties Button in System | Device Manager.
  7107.  
  7108. OR
  7109.  
  7110. (1) Double-click on the device icon in Device Manager.
  7111.  
  7112. The Device Properties usually have a General, a Driver, and a
  7113. Resources tab.  The Driver and Resources Tabs may be absent in some
  7114. cases.  
  7115.  
  7116. Users can usually determine the version of the device driver
  7117. from the Driver tab of the Device Properties in System | Device
  7118. Manager.  The Driver tab usually lists all of the files 
  7119. installed on the system that make up the device driver.
  7120.  
  7121. Use the Driver tab to install or update the video capture driver.  The
  7122. Driver tab contains a Change Driver... button.  Clicking on the Change
  7123. Driver... button will bring up a list box with the devices and drivers
  7124. known to Windows 95.  The relevant video capture card and driver may
  7125. be in this list.  The user may need to provide a disk or CD-ROM with
  7126. the drivers and a Device Information (INF) file.  If the driver is not
  7127. on the list of available drivers, the user must click on the Have
  7128. disk... button to load the drivers from the disk or CD-ROM using an
  7129. INF file.  The INF file contains the information telling Windows 95
  7130. how to install the capture driver, including which files to install
  7131. where on the hard disk and what changes to make to the Windows 95
  7132. Registry and the INI files.
  7133.  
  7134. Use the Resources tab to view and change the hardware resource
  7135. settings: the IRQ levels used, the DMA channels used, and the I/O
  7136. addresses used by the video capture card.  It is not uncommon for a
  7137. newly installed video capture card to have an IRQ conflict with other
  7138. devices on the system.  Often Windows 95 will detect the conflict but
  7139. fail to resolve it.
  7140.  
  7141. Windows 95 automatically assigns resources such as IRQ levels to 
  7142. devices such as video cards.  Windows 95 is supposed to select
  7143. IRQ levels that do not conflict.  This does not always work.  To fix, try
  7144. deleting the device from the Device Manager and restarting Windows 95.
  7145.  
  7146. TO DELETE A DEVICE FROM DEVICE MANAGER
  7147.  
  7148. (0) Make sure that you have the installation CD-ROM or disks with the
  7149. device driver software for the device BEFORE you delete it!!!
  7150.  
  7151. (1) Click on the device icon in Device Manager.
  7152. (2) Presss the delete button on your keyboard or click the Remove
  7153. button on System | Device Manager.
  7154.  
  7155. When Windows 95 restarts, it will again automatically detect the
  7156. hardware, install the necessary drivers, and configure the hardware.
  7157. If Windows 95 does not have the necessary drivers it will prompt the
  7158. user for a disk or CD-ROM with the needed drivers.  As above, the disk
  7159. or CD-ROM will need a Device Information or INF file to tell Windows
  7160. 95 how to install the needed drivers.  On a second or third try,
  7161. Windows 95 may get it right.  Users must delete the device before
  7162. restarting Windows 95 to force Windows 95 to auto-detect, otherwise
  7163. it will simply use the information currently displayed in Device
  7164. Manager.
  7165.  
  7166. If deleting the device from Device Manager and restarting Windows 95
  7167. fails to fix the problem, the user can manually set the IRQ level and
  7168. other resources through the Resources tab in the Device Properties in
  7169. System | Device Manager.  Uncheck the "Use automatic settings" check
  7170. box.  Then, the user can manually change the IRQ, DMA, and I/O
  7171. settings.  Note that this disables the automatic configuration of the
  7172. device and can cause other problems.  In some cases however there is
  7173. no choice but to manually set the resources.
  7174.  
  7175. In Windows 95, users may also view and configure some video capture device
  7176. information by selecting the Multimedia icon (applet) in the Windows
  7177. 95 Control Panel.  Then select the Advanced Tab.  Then select the
  7178. Video Capture Devices icon from the icons in the Advanced Tab.  This
  7179. will show the installed Video for Windows capture drivers.  The
  7180. IRQ, DMA, and I/O resources usually cannot be set through the Multimedia
  7181. icon; users must use System | Device Manager in the Control Panel.
  7182.  
  7183. Typically, when a user installs the software for a video capture card,
  7184. the installation will install the Video for Windows capture driver for
  7185. the video card, Video for Windows if needed, non-standard Video for
  7186. Windows compression drivers, and some video capture and editing
  7187. applications.
  7188.  
  7189. Microsoft shipped a simple Video Capture application called
  7190. VidCap, a 16-bit application, with the original 16-bit Video for
  7191. Windows (full, not run-time).  There is also now a VidCap32, a 32-bit
  7192. video capture application.  Many other applications such as Adobe
  7193. Premiere support video capture.
  7194.  
  7195. The video capture drivers provide a Video Source dialog box for
  7196. selecting the analog video input format, connectors, and other
  7197. options.  The Video Source dialog box varies from video card to 
  7198. video card.  It can include options to adjust the brightness or
  7199. color of the video image.
  7200.  
  7201. The capture drivers also provide a Video Format dialog box for selecting
  7202. the color format (image format or pixel format) of the image, the image
  7203. size to capture (such as 320x240 or 160x120), whether to utilize hardware
  7204. compression built into the video capture card, and miscellaneous
  7205. other features.
  7206.  
  7207. Users can access the Video Source and Video Format dialog boxes through
  7208. their video capture software application.  In VidCap, select the
  7209. Options menu.  Then Video Format... to get the Video Format dialog
  7210. box.  Video Source... to get the Video Source dialog box.
  7211.  
  7212. See below for further discussion.
  7213.  
  7214. <A NAME="VFormats">
  7215. <H4>Analog Video Formats</H4>
  7216. </A>
  7217.  
  7218. Composite video signals are analog signals that combine luminance and
  7219. chrominance (color) information in a single analog signal that can be
  7220. transmitted over a single wire or stored in a single track on an
  7221. analog magnetic tape.  The NTSC video signals used by commercial
  7222. television sets in the United States and Japan are an example of
  7223. composite signals.  Composite video is particularly prone to errors in
  7224. reproducing exact colors due to the overlap of the color and luminance
  7225. signals.  Video professionals jokingly refer to NTSC as Never The Same
  7226. Color.
  7227.  
  7228. S-Video video signals separate the luminance and chrominance
  7229. information into two separate analog signals that can be transmitted
  7230. over two separate wires or stored in two separate tracks on an analog
  7231. tape.  S-Video is generally superior to composite video in reproducing
  7232. colors correctly.  The S-VHS and Hi8 video tape standards use S-Video.
  7233. Ordinary VHS video tape uses composite NTSC signals.  Thus, in
  7234. general, using an S-VHS or Hi8 video camera with S-Video output to
  7235. provide the analog video signal to the S-Video input of a PC video
  7236. capture card will provide better video quality.
  7237.  
  7238. A third type of video signal is component video.  In component video, the
  7239. luminance (Y) and two color difference signals (U and V or I and Q) are
  7240. separated into three separate analog signals that can be transmitted
  7241. over three separate wires or stored in three separate tracks on an
  7242. analog tape, or digitized separately.  Component video is used in
  7243. professional video production and provides the best quality and the 
  7244. most accurate reproduction of colors.  The professional Betacam SP video
  7245. cameras use component video.  The current generation of widely used
  7246. PC video capture cards do not provide component video inputs.
  7247.  
  7248. <H4>Capture with Motion JPEG Compressed Video</H4>
  7249.  
  7250. Typical PC video capture cards store the digitized compressed video as
  7251. an AVI file using Motion JPEG compression.  Motion JPEG is used
  7252. instead of other compression schemes because each frame is compressed
  7253. separately.  This allows frame accurate editing of the AVI file after
  7254. capture.  If a compression scheme that uses frame differencing - where
  7255. a frame is stored as the differences between the frame and a previous
  7256. frame (such as MPEG) - is used, it is difficult to edit the video.
  7257.  
  7258. Typical PC video capture cards are bundled with non-linear video editing
  7259. software such as Adobe Premiere which can be used to edit the Motion JPEG
  7260. compressed AVI file and ultimately compress the edited AVI file using 
  7261. compression such as Cinepak using frame differencing for maximum
  7262. compression.
  7263.  
  7264. PC video capture cards usually compress the video using a lossy
  7265. compression scheme such as Motion JPEG or MPEG because uncompressed
  7266. video places very high demands on the bandwidth of the ISA or PCI bus
  7267. and on the bandwidth to the hard drive.  In addition, uncompressed
  7268. video can fill even very large hard drives very quickly.
  7269.  
  7270. <H4>Capture with Uncompressed Video (Color Formats)</H4>
  7271.  
  7272. A number of video capture cards such as those based on the Brooktree
  7273. Bt848 and Bt848a video capture system chip save uncompressed video
  7274. in alternative color formats to the common 24 bit RGB color format.
  7275. Such as the 15 bit RGB color format or YUV9 color format.  These
  7276. formats represent a pixel with less than 24 bits, reducing bandwidth
  7277. and storage requirements.  Color formats may also be known as
  7278. IMAGE FORMATS or PIXEL FORMATS.
  7279.  
  7280. 24 bit RGB is almost universally supported.  Other color formats may
  7281. not be supported by graphics software, video editors, or playback
  7282. drivers.  Beware problems such as inability to play an AVI file or
  7283. view a BMP may occur with AVI files or BMP still images created with
  7284. some color formats.
  7285.  
  7286. <A HREF="#ColorFormats">Color Formats Section</A>
  7287.  
  7288. PC video capture cards are usually bundled with application software
  7289. and drivers to perform video capture such as Microsoft's VIDCAP.EXE
  7290. (16 bit) or VIDCAP32.EXE (32 bit) or Intel's SMARTCAP.EXE or other similar
  7291. software.
  7292.  
  7293. Video capture drivers may provide the ability to select different
  7294. color formats for uncompressed AVI video, such as RGB15 or YUV9.  With
  7295. Vidcap and Vidcap32, select Options | Video Format ... to set the
  7296. color format for a video capture session and file.  Video Format ...
  7297. invokes a Video Format dialog box provided by the video capture
  7298. driver; this dialog box differs from capture card to capture card.
  7299.  
  7300. Users can usually use the Video Format dialog box to select the
  7301. size (resolution) of the captured video (such as 320x240 or
  7302. 160x120 pixels).  Users usually can select the color format which
  7303. may be identified as IMAGE FORMAT or PIXEL FORMAT.  
  7304.  
  7305.  
  7306.  
  7307. NOTE: Windows 95 and Windows NT require different device drivers.
  7308. Most video capture cards have drivers for Windows 95.  Only some
  7309. have Windows NT drivers.  Video capture cards that have Windows NT
  7310. device drivers and therefore can be used under Windows NT are listed
  7311. at the end of this section.
  7312.  
  7313. <A NAME="CaptureCards">
  7314. <H4>Recent Video Capture Cards (PCI)</H4>
  7315. </A>
  7316.  
  7317. Some current (1/11/97) popular PC video capture cards that generate
  7318. AVI files are:
  7319.  
  7320. Digital Processing Systems (DPS) makes high end video capture cards
  7321. for the broadcast and studio markets.  Some of these cards can
  7322. capture video on the PC.  Some of these cards are designed for
  7323. Windows NT and include Windows NT device drivers.
  7324.  
  7325. <A HREF="http://www.dps.com/">http://www.dps.com/</A>
  7326.  
  7327. FAST AV Master PCI 60 field/60fps with Motion JPEG, Includes Ulead's
  7328. Media Studio Pro digital video editing application.
  7329.  
  7330. <A HREF="http://www.fast-multimedia.com">FAST Web Page</A>
  7331.  
  7332. Truevision Bravado 1000 50/60fps 32-bit PCI video capture board with Motion JPEG, Includes Adobe 
  7333. Premiere 4.2 Full Version
  7334.  
  7335. <A HREF="http://www.truevision.com/">Truevision Web Page</A>
  7336.  
  7337. MiroVideo DC30 PCI, complete non-linear video and audio editing for
  7338. Windows 95, Includes Adobe Premiere 4.2 Full Version
  7339.  
  7340. <A HREF="http://www.miro.com/">miro Web Page</A>
  7341.  
  7342. Azeena Vision 500 640x480 30 fps Motion JPEG PCI Capture Card
  7343. Up to 3:1 compression.
  7344.  
  7345. <A HREF="http://www.azeena.com/">Azeena Web Page</A>
  7346.  
  7347. Hauppauge WinTV PCI TV-tuner and Video Capture Cards.
  7348. This is a family of TV-Tuner and Video Capture cards.
  7349. Built around the Brooktree Bt848 video capture chip.
  7350.  
  7351. <A HREF="http://www.hauppauge.com/">Hauppauge Web Page</A>
  7352.  
  7353. Winnov Videum AV, Half size ISA card, composite and S-Video
  7354. input, claims to capture 352x240, 24 bit, AVI videos at 30
  7355. frames per second (must be compressed to fit across ISA bus - JFM)
  7356.  
  7357. <A HREF="http://www.winnov.com">Winnov Web Page</A>
  7358.  
  7359. Intel Smart Video Recorder III, a 32-bit PCI card that uses Indeo
  7360. video compression.  Includes a composite (NTSC) video input and an
  7361. S-Video input, RCA and S-Video cables, Asymetrix Digital Video
  7362. Producer and Asymetrix WebPublisher.  
  7363.  
  7364. <A HREF="http://www.intel.com/imaging">Intel Page</A>
  7365.  
  7366. U.S. Robotics markets the Bigpicture Video capture card and NTSC
  7367. camera for about $249.99 (7/22/97).  The video capture card is a PCI
  7368. half card with a single RCA jack for the NTSC composite video in and a
  7369. +5 Volt, 1 Amp power output jack for the NTSC camera.  The video
  7370. capture card uses the single Brooktree Bt848 chip, a complete video
  7371. capture system on a single chip.
  7372.  
  7373. Personally, I was impressed that they could get the entire video
  7374. capture system on a single chip.  More information on the Bt848
  7375. can be found at:
  7376.  
  7377. <A HREF="http://www.brooktree.com/brooktree/html/pr_bt848.html">Brooktree Bt848 Press Release</A>
  7378.  
  7379. Bigpicture can capture NTSC composite video at 30 frames per second at
  7380. 320x240 or 160x120 resolution.
  7381.  
  7382. Bigpicture also comes in versions with U.S. Robotics modems.  The idea
  7383. is that this can be a PC video phone.  
  7384.  
  7385. Bundled software includes Kai's Power GOO Special Edition, Asymetrix
  7386. Digital Video Producer to capture and edit video, VDONet's VDOPhone (trial
  7387. edition), and VDONet's VDOLive player.
  7388.  
  7389. MINI-REVIEW
  7390.  
  7391. I intalled the Bigpicture video capture system under Windows 95b (OEM
  7392. Service Release 2) on a 200 MHz Pentium with MMX, 32 MB RAM, two
  7393. Western Digital IDE hard drives (2GB and 5 GB), and a 12x CD-ROM.
  7394.  
  7395. The installation was difficult due to resource conflicts.  At first
  7396. the video capture card appeared to conflict with the SupraExpress 336i
  7397. PnP modem in my PC.  After reinstalling a few times, the video
  7398. capture card started to work, but the modem stopped working.  A conflict
  7399. between the modem (an ISA card modem) and the COM1 serial port was
  7400. reported in the Windows 95 Device Manager (Control Panel | System |
  7401. Device Manager tab).  I fixed this by disabling the automatic
  7402. settings on the modem and changing the IO address.  I left the COM1
  7403. port (which I don't use) and the modem using the same IRQ (Interrupt
  7404. Request) level.
  7405.  
  7406. While the documentation provides some pointers on these conflicts, I found
  7407. the problem frustrating and difficult to fix although I am moderately
  7408. familiar with PC installation and configuration.  
  7409.  
  7410. Once fixed, the camera and video capture card worked fine.  My modem
  7411. seems to work fine.  I can capture video and use the modem at the same
  7412. time.
  7413.  
  7414. U.S. Robotics
  7415. 7770 North Frontage Road
  7416. Skokie, IL  60077-2690
  7417.  
  7418. <A HREF="http://www.usr.com/">http://www.usr.com/</A>
  7419.  
  7420. <H4>Old Video Capture Cards (ISA) </H4>
  7421.  
  7422. Some widely used older, 16-bit ISA cards, are:
  7423.  
  7424. Video Spigot from Creative Labs
  7425.        - 16-bit ISA Card
  7426.        - RCA Jack for Composite (NTSC/PAL/SECAM) Video Input
  7427.        - S-Video Connector
  7428.        - Windows 3.x Drivers (16 bit)
  7429.  
  7430. Media Vision Pro Movie Studio
  7431.        - 16-bit ISA Card
  7432.        - RCA Jack for Composite (NTSC/PAL/SECAM) Video Input
  7433.        - S-Video Connector
  7434.        - Windows 3.x Drivers (16 bit)
  7435.  
  7436. Intel Smart Video Recorder Pro
  7437.        - 16-bit ISA Card
  7438.        - RCA Jack for Composite (NTSC/PAL/SECAM) Video Input
  7439.        - S-Video Connector
  7440.        - Windows 3.x Drivers (16 bit)
  7441.                 - Version 2.20.061 (known to run under Windows 95)
  7442.  
  7443.        The Smart Video Recorder contains chips to accelerate
  7444. and implement Intel's Indeo 3.x and YVU9 proprietary formats.  
  7445. These allowed it to capture video with Indeo compression on 486
  7446. machines even though Indeo encoding is very compute intensive.
  7447. The special chips on the board encoded the video instead of the
  7448. PC's CPU.
  7449.  
  7450.        Intel is no longer supporting the Intel Smart Video Recorder
  7451. (Oct. 1997).  Drivers and other support information are still available
  7452. at the Intel Web site.
  7453.  
  7454.        I've successfully installed and used the Intel Smart Video
  7455. Recorder Pro on two different machines under Windows 95 with 
  7456. Driver Version 2.20.061 of the drivers for this card.
  7457.  
  7458. <A NAME="ParCapture">
  7459. <H3>Video Capture through PC Parallel Port</H3>
  7460. </A>
  7461.  
  7462. A few products enable video capture through the parallel port of
  7463. your PC.  In principle, this eliminates the difficulties of opening
  7464. your PC case and installing a video capture card.  A parallel port
  7465. capture system consists of a camera and/or adapter that plugs into
  7466. the parallel port of your PC and some associated software - usually
  7467. Microsoft Windows drivers and applications.
  7468.  
  7469.  
  7470. Alaris QuickVideo Transport
  7471.  
  7472. Alaris QuickVideo Transport is an adapter that plugs into a PC-compatible
  7473. Parallel Port with 25-pin connector.  QuickVideo Transport accepts analog
  7474. video in NTSC, PAL, and SECAM from RCA plug/composite and S-Video sources.
  7475. It can be used with Camcorders, Digital Cameras, and VCR's.
  7476.  
  7477. Alaris Corporation
  7478. 47338 Fremont Boulevard
  7479. Fremont, CA  94538
  7480. (800) 317-2348 (Voice)
  7481. (510) 770-5700 (Voice)
  7482. (510) 770-5769 (FAX)
  7483.  
  7484. <A HREF="mailto:sales@alaris.com">sales@alaris.com</A>
  7485.  
  7486. <A HREF="http://www.alaris.com/">http://www.alaris.com/</A>
  7487.  
  7488. <A HREF="http://www.dartek.com/products/qvtransport.htm">http://www.dartek.com/products/qvtransport.htm</A>
  7489.  
  7490.  
  7491. Connectix QuickCam
  7492.  
  7493. Color QuickCam is a small solid-state camera that plugs into the
  7494. PC parallel port.
  7495.  
  7496. <A HREF="http://www.connectix.com/">http://www.connectix.com/</A>
  7497.  
  7498. <A NAME="TBC">
  7499. <H3>What to do about horizontal tearing in the video?</H3>
  7500. </A>
  7501.  
  7502. In horizontal tearing, part of the video is displaced horizontally
  7503. from where it should be.  For example, a flag pole might be displaced
  7504. to the right creating a zig-zag or even a break in the pole.
  7505.  
  7506. In the diagram below, think of each line as a video scan line:
  7507.  
  7508. ------------------------------
  7509.           | |          
  7510.           | | 
  7511.           | | 
  7512.           | |
  7513.            | | (tearing begins here)
  7514.            | |    
  7515.            | |
  7516.            | |
  7517.             | | (more here)
  7518. ------------------------------
  7519.  
  7520.  
  7521. Tearing is a common problem when capturing video from the output of an
  7522. analog video tape such as a VCR.  It can happen in other contexts as
  7523. well.
  7524.  
  7525. Analog video such as NTSC, PAL, and SECAM composite video has a
  7526. sychronization signal at the end of each horizontal scan line and a
  7527. vertical synchronization signal at the end of each frame.
  7528.  
  7529. The motors and mechanical parts in the transport mechanism of a 
  7530. video tape player can slip slightly, causing the analog signals and
  7531. horizontal synchronization signals to arrive at slightly incorrect
  7532. times.  Video monitors, capture cards, and other video equipment
  7533. have a tolerance for jitter in the timing of the synchronization
  7534. signals.  Tearing occurs if this tolerance is exceeded.
  7535.  
  7536. Digital video capture cards can be very sensitive to the timing jitter
  7537. in the output of video tape players.  Tearing will occur because the
  7538. synchronization is off.  Capture cards are frequently more sensitive
  7539. than analog video monitors and other analog video equipment which are
  7540. better designed to handle timing jitter in the analog signals.
  7541.  
  7542. Devices called Time Base Correctors (TBC) can adjust for jitter in
  7543. the timing of the analog video synchronization signals and other
  7544. distortions of the analog signals.  TBC's are available as plug-in
  7545. cards for PC's and as black boxes inserted between the video
  7546. source and the video capture card.  
  7547.  
  7548. Time Base Correctors are available from:
  7549.  
  7550. Prime Image Inc.
  7551. <A HREF="http://www.primeimageinc.com/">http://www.primeimageinc.com/</A>
  7552.  
  7553. <A HREF="#Top">Return to Top</A>
  7554.  
  7555. <A NAME="HDCapture">
  7556. <H3>Hard Drive Video Capture Issues</H3>
  7557. </A>
  7558.  
  7559. Digital video capture requires writing data to the PC hard disk
  7560. at sustained very high data rates.  The higher the resolution and
  7561. quality of the digital video, the higher the data rate the hard disk
  7562. must handle.
  7563.  
  7564. 1. Defragment the hard disk.  This allows the PC to write the
  7565. digital video (the AVI file) to contiguous disk sectors without
  7566. stopping to skip the drive head over used regions.
  7567.  
  7568. 2. Scan the disk and fix any bad sectors if possible.
  7569.  
  7570. 3. Conventional hard drives pause the drive heads for thermal
  7571. recalibration which slows their ability to write data to the
  7572. hard disk.  Special AV (Audio/Video) hard drives (which cost
  7573. more) disable the thermal recalibration during data writing.
  7574.  
  7575. This supposedly allows an AV hard drive to capture higher video
  7576. data rates.  Note that you can capture video onto conventional 
  7577. hard drives.  People do this all the time.  But for very high
  7578. end video capture, you may need a special AV drive.
  7579.  
  7580. <A NAME="NTCapture">
  7581. <H3>Video Capture Cards with Windows NT Drivers</H3>
  7582. </A>
  7583.  
  7584. The DPS (Digital Processing Systems) Perception ISA video capture card.
  7585.  
  7586. The DPS PVR-2500 Perception Video Recorder (PCI-bus) 
  7587. for Intel and DEC Alpha Windows NT workstations.  An optional
  7588. AD-2500 real time video capture daughter card adds component,
  7589. S-Video, and composite video inputs to this high-end product.
  7590. The AD-2500 is the actual capture card in this product which is
  7591. a "digital video disk recorder system".
  7592.  
  7593. The DPS HVR-2800 Hollywood Video Recorder (PCI and ISA).  The PCI
  7594. version is available for both Intel and DEC Alpha Windows NT
  7595. workstations.  The Hollywood is also a "digital video disk
  7596. recorder system", more than a simple video capture card.
  7597.  
  7598. DPS makes PC video products aimed at the studio and broadcast
  7599. production markets.  
  7600.  
  7601. <A HREF="http://www.dps.com/">http://www.dps.com/</A>
  7602.  
  7603. The Truevision Targa 2000 video capture card.
  7604.  
  7605. <A HREF="http://www.truevision.com/">http://www.truevision.com/</A>
  7606.  
  7607. The Osprey 100 PCI Video Capture Card works under Windows NT as well
  7608. as Windows 95.  The Osprey Systems Division of Multimedia Access
  7609. Corporation makes a line of video capture cards, all or some with
  7610. drivers for Windows NT 3.51 and NT 4.0
  7611.  
  7612. The Osprey 100 is a PCI board based on the BrookTree Bt848 single-chip
  7613. video capture device.  The version of the Osprey 100 that I have seen
  7614. has one S-Video input and two composite (NTSC or PAL) video inputs.
  7615. The Osprey 100 has software and drivers for both Windows NT 3.51 and
  7616. Windows NT 4.0
  7617.  
  7618. The NT software for the Osprey 100 (10/8/97) consists of the VidCap32
  7619. video capture application, a Video for Windows Capture Driver, and
  7620. a Windows NT Device Driver for the Osprey.  There are at least
  7621. two versions of the software: 0.93(beta) and 0.95(beta).  On
  7622. 10/7/97, the 0.95(beta) was available by anonymous ftp from
  7623. Osprey.  
  7624.  
  7625. The anonymous ftp site also contained directories for a 1.00 version
  7626. of the software that could not be downloaded (10/7/97).
  7627.  
  7628. The 0.95(beta) software from Osprey is a single Windows executable
  7629. that easily installs VidCap32 and the drivers, also updating the
  7630. NT taskbar, registry, and so forth.
  7631.  
  7632. The Osprey 100 with the 0.95(beta) drivers captures video under NT 4.0
  7633. with both VidCap32 and the Progressive Networks RealEncoder software.
  7634. At least in some of my experiments, VidCap32 exhibited some problems
  7635. although it was possible to repeatedly capture AVI clips.  Problems
  7636. included flawed updating of the VidCap32 window and sluggish
  7637. performance of the NT system until rebooted.  The problems appeared
  7638. intermittent.
  7639.  
  7640. System Tested:
  7641.  
  7642. (Micron Millenium PC) Intel Pentium 132 MHz with 48 MB RAM
  7643. Phoenix BIOS Version 4.04 M-M
  7644. Windows NT 4.0 (Build: 1381  Service Pack 2)
  7645. Osprey 100 PCI Video Capture Card with 0.95(beta) drivers for Windows NT
  7646. Diamond Multimedia Stealth64 Video 2001 PCI (2MB RAM)
  7647. Creative Labs Vibra 16 ISA sound card with NT 4.0 Drivers
  7648. Intel 82557 based 10/100 Ethernet PCI Network Interface Card (NIC)
  7649. IDE CD-ROM (ATAPI 1.2) Dual Channel PCI IDE Controller
  7650. Inexpensive NTSC video camera (bundled with LiveLan videconferencing product)
  7651.  
  7652. <A HREF="http://www.osprey.mmac.com/">http://www.osprey.mmac.com/</A>
  7653.  
  7654.  
  7655. <A HREF="#Top">Return to Top</A>
  7656.  
  7657. <A NAME="TV">
  7658. <H2>How to Create AVI Files from Television</H2>
  7659. </A>
  7660.  
  7661. To create an AVI file from your favorite television program, there
  7662. are two approaches.
  7663.  
  7664. Television is transmitted over radio frequency (RF) waves.
  7665. The NTSC, PAL, or SECAM composite analog television signals
  7666. are modulated onto high frequency radio waves to create the
  7667. familiar television channels.  In the United States, television
  7668. channels 2 through 69 cover the range from 54 MHz to
  7669. 806 MHz.  An NTSC channel uses about 4 MHz of frequency
  7670. range.
  7671.  
  7672. Traditional analog Cable Television (CATV) works much the
  7673. same except that the RF is sent over coaxial cables instead of
  7674. the open air.
  7675.  
  7676. A device usually referred to as a tuner can demodulate the
  7677. television radio frequency signal and extract the NTSC, PAL, or
  7678. SECAM composite analog signal.   Television sets, Video
  7679. Casette Recorders (VCR) and cable television set top boxes contain a tuner.
  7680.  
  7681. The easy way to turn your favorite television show into an
  7682. AVI is to record the show to a videotape using a VCR.  The VCR
  7683. can output the composite analog video signal to a video
  7684. capture card in your PC (see the section on creating AVI from
  7685. composite analog video).
  7686.  
  7687. A number of companies market TV tuner cards for PC's.  In this
  7688. case you can feed the television radio frequency (RF) signal
  7689. into the TV tuner card which will demodulate the NTSC, PAL, or
  7690. SECAM signal.  Use an associated video capture card to convert
  7691. the demodulated composite analog video to an AVI files.
  7692.  
  7693. ATI Technologies, for example, markets a PC TV Tuner.
  7694.  
  7695. It is probably simpler to use a VCR than a PC TV Tuner card.
  7696. A VCR circumvents the often painful installation problems
  7697. with PC hardware.
  7698.  
  7699. <A HREF="#Top">Return to Top</A>
  7700.  
  7701. <A NAME="Morph">
  7702. <H2>How to Create Morph Effects for AVI</H2>
  7703. </A>
  7704.  
  7705. Morphing is a technique for progressively transforming one image
  7706. into another image, or one video sequence into another.  
  7707. For example, a video producer might morph one face into another.
  7708.  
  7709. STOIK Software markets a tool called
  7710.  
  7711. Morph Man for Windows 95
  7712.  
  7713. <A HREF="http://www.stoik.com/">http://www.stoik.com/</A>
  7714.  
  7715. Morph Man can create AVI files with a still image morphing into
  7716. another still image, or one video sequence morphing into another.
  7717.  
  7718. STOIK provides a demonstration version of Morph Man for
  7719. evaluation purposes.  
  7720.  
  7721. <A HREF="#Top">Return to Top</A>
  7722.  
  7723. <A NAME="Win95">
  7724. <H2>Reinstalling Microsoft's Video for Windows in Windows 95</H2>
  7725. </A>
  7726.  
  7727. This requires the Windows 95 CD-ROM.  One can either reinstall
  7728. Windows 95 (probably not what you want to do) or manually remove
  7729. Video for Windows and manually reinstall the files that make up
  7730. Video for Windows under Windows 95.
  7731.  
  7732. Truevision's Technical Support has a good note on how to do this.
  7733. Although it does not appear to be copyrighted, I felt uncomfortable
  7734. cutting and pasting it into the AVI Overview.  The URL is
  7735.  
  7736. <A HREF="http://www.truevision.com/Support/vfwwin95.html">http://www.truevision.com/Support/vfwwin95.html</A>
  7737.  
  7738. <A HREF="#Top">Return to Top</A>
  7739.  
  7740. <A NAME="GETAM">
  7741. <H2>How to get Microsoft ActiveMovie 1.0</H2>
  7742. </A>
  7743.  
  7744. ActiveMovie is Microsoft's successor to Video for Windows.
  7745. ActiveMovie 1.0 is shipped with OEM Service Release 2 of Windows 95.
  7746. ActiveMovie 1.0 is also bundled with Microsoft Internet Explorer for
  7747. Windows 95 and Windows NT 4.0.  ActiveMovie 1.0 is available for Windows
  7748. 95 and Windows NT.
  7749.  
  7750. ActiveMovie 1.0 plays AVI, QuickTime, and MPEG files.  
  7751.  
  7752. IF YOU DON'T HAVE OEM SERVICE RELEASE 2 of 95!
  7753.  
  7754. ActiveMovie 1.0 is incorporated in Internet Explorer.  A full
  7755. install of Internet Explorer can be downloaded from Microsoft's
  7756. Web site.  Microsoft also provides a free download of just
  7757. ActiveMovie 1.0.  Both can be downloaded from the Microsoft
  7758. Internet Explorer Web site as described below:
  7759.  
  7760. <A HREF="http://www.microsoft.com/ie/">http://www.microsoft.com/ie/</A>
  7761.  
  7762. Click on Internet Explorer for 95 and NT 4.0 link to get to the
  7763. download area.  There is a pulldown list of products. (6/6/97).
  7764. Select "Active Movie 1.0 for Windows 95 and NT 4.0" to get just
  7765. ActiveMovie 1.0
  7766.  
  7767. Click the "Next" button.
  7768.  
  7769. This brings up a page to select the language from another pulldown
  7770. list.  Pick your language (e.g. U.S. English).
  7771.  
  7772. Click the "Next" button.
  7773.  
  7774. This brings up a list of links to download sites for amov4ie.exe
  7775.  
  7776. Dowload this executable and run.  It installs Active Movie 1.0
  7777.  
  7778. <A HREF="#Top">Return to Top</A>
  7779.  
  7780. <A NAME="NT40">
  7781. <H2>Installing and Configuring AVI Codecs in NT 4.0</H2>
  7782. </A>
  7783.  
  7784. The Microsoft Windows NT 4.0 applications and operating systems
  7785. are configured through the NT Registry, which is similar to the
  7786. Windows 95 Registry.  Although Windows NT 4.0 and Windows 95 share
  7787. a desktop user interface, there are some significant differences
  7788. between the NT 4.0 Registry and the Windows 95 Registry.
  7789.  
  7790. In NT 4.0, the 32 bit video codecs do not appear to be listed
  7791. in a [drivers32] section in the SYTEM.INI file.  This differs from
  7792. Windows 95.  The Video for Windows configuration information appears
  7793. to be stored almost exclusively in the NT Registry in NT 4.0.
  7794.  
  7795. The NT Registry can be viewed and modified through the Control
  7796. Panel or through the REGEDT32 Registry Editor.  Use the Control
  7797. Panel unless you really know what you are doing.
  7798.  
  7799. You can view and change which audio and video codecs are installed
  7800. through the Multimedia icon in the Windows NT 4.0 Control Panel (in My
  7801. Computer).  This works much the same as the Multimedia icon in the
  7802. Windows 95 Control Panel (in My Computer).  
  7803.  
  7804. Double click on the Multimedia icon to launch the Multimedia applet.
  7805. Select the Devices tab within the Multimedia applet.  This tab gives a
  7806. list of installed multimedia drivers including hardware device
  7807. drivers, MCI drivers, and audio and video codecs.  It includes two
  7808. sections:
  7809.  
  7810. (cute icon)Video Compression Codecs
  7811. (cute icon)Audio Compression Codecs
  7812.  
  7813. Double-click on these to view the installed audio and video codecs.
  7814.  
  7815. There are buttons to Add.. or Remove... multimedia devices
  7816. including the audio and video codecs.  
  7817.  
  7818. To Add a video codec, click the Add... button.  This gives an Add
  7819. dialog box with a List of Drivers.  You may select from a list of
  7820. drivers that the system knows about, such as "Cinepak", or select
  7821. "Unlisted or Updated Driver".  If you need to use "Unlisted or Updated
  7822. Driver" you will need a directory on a floppy disk, CD-ROM, or your
  7823. hard drive containing the needed drivers and an INF (Setup Information
  7824. ) file.  Depending on what you are doing, the needed directory may be
  7825. on a floppy provided with a product, on the Windows NT installation
  7826. CD-ROM, or constructed manually by you or someone else.  The INF file
  7827. provides directives for installing the driver including changes to the
  7828. Registry.  Windows read the INF file and follows the directives.
  7829.  
  7830. You may need a different (NT specific) INF file to install under
  7831. Windows NT 4.0 than Windows 95.
  7832.  
  7833. The 32 bit video codecs are installed in the \WINNT\SYSTEM32
  7834. directory used for 32 bit drivers, analogous to the \WINDOWS\SYSTEM
  7835. directory in Windows 3.x
  7836.  
  7837. NOTE: Using the Remove... button to remove a codec does not
  7838. remove the codec files from the hard drive.  Nor does the
  7839. codec disappear from the list of codecs displayed when
  7840. Add... is selected.  Remove... appears to simply disable
  7841. the video codec so that it is not invoked.  Use Add... to
  7842. enable the codec after Remove...
  7843.  
  7844. The other option to install a codec is to use an installation 
  7845. program that will appropriately update the NT Registry and copy
  7846. the needed files to the correct directories in the NT file 
  7847. system (such as \WINNT\SYSTEM32).  In many cases, you can get
  7848. an install program from a Web site or other convenient source.
  7849. In this case, you do not need to use the NT Control Panel.  The
  7850. install program does all of the work.
  7851.  
  7852. NT 4.0 appears to be able to use the same 32 bit video codecs as
  7853. Windows 95, for example Cinepak for Windows 32.  Keep in mind that
  7854. device drivers for hardware are different between Windows 95 (which
  7855. uses VxD's) and NT 4.0.  Only some parts of Windows 95 and NT 4.0 can
  7856. use the same code.
  7857.  
  7858. <A HREF="#Top">Return to Top</A>
  7859.  
  7860. <A NAME="FPS">
  7861. <H2>How to change frame rate of AVI files</H2>
  7862. </A>
  7863.  
  7864. You may want to change the frame rate of an AVI.  For example, you
  7865. may want to convert a video captured at 30 frames per second (NTSC)
  7866. to 15 or 10 frames per second to reduce the size of the file.  This
  7867. type of conversion throws away frames; it does not play the AVI in
  7868. slow motion.
  7869.  
  7870. Video editors usually contain this function.
  7871.  
  7872. For example, the free VidEdit video editor can convert the frame rate
  7873. of AVI files.  
  7874.  
  7875. Select
  7876.  
  7877. Video | Convert Frame Rate ...
  7878.  
  7879. in VidEdit
  7880.  
  7881. For more on video editors, see <A HREF="#Edit">Video Editors</A>
  7882.  
  7883. <A HREF="#Top">Return to Top</A>
  7884.  
  7885. <A NAME="Crop">
  7886. <H2>How to crop an AVI file</H2>
  7887. </A>
  7888.  
  7889. Microsoft VidEdit 1.1 can crop an AVI file, that is create
  7890. another AVI file with a rectangular region of the original AVI
  7891. file:
  7892.  
  7893. Select
  7894.  
  7895. Video | Crop ...
  7896.  
  7897. in VidEdit
  7898.  
  7899. Undoubtedly, many other AVI video editors can crop AVI files.
  7900. Microsoft VidEdit 1.1 has the special virtue of being free and
  7901. available on the Web.
  7902.  
  7903. For more on video editors, see <A HREF="#Edit">Video Editors</A>
  7904.  
  7905. <A HREF="#Top">Return to Top</A>
  7906.  
  7907. <A NAME="Edit">
  7908. <H2>How to edit AVI files:</H2>
  7909. </A>
  7910.  
  7911. Several applications exist to edit (cut, paste, etc.) AVI files.
  7912. Such applications are known as video editors.  Sometimes such
  7913. digital video editors are called non-linear editors, in contrast to
  7914. traditional videotape or film based editing.
  7915.  
  7916. Video editors range from very simple applications to very sophisticated
  7917. applications.
  7918.  
  7919. <H3>Video Editor Features</H3>
  7920.  
  7921. Common video editor features include:
  7922.  
  7923.     * cut, paste, and deleting video sequences
  7924.         * selecting video codec and compression settings
  7925.         * selecting audio codec and compression settings
  7926.         * converting video frame rate
  7927.         * converting audio sampling rate
  7928.         * adjusting synchronization of audio and video 
  7929.         * converting color depth of video (24, 16, or 8 bit usually)
  7930.         * converting to NTSC or PAL safe colors
  7931.         * adding transitions and other special effects
  7932.         * applying image processing filters to video
  7933.         * adding text and subtitling
  7934.         * much more in high end video editors....
  7935.  
  7936. <A NAME="VidEdit">
  7937. <H3>VidEdit</H3>
  7938. </A>
  7939.  
  7940. The full 16 bit (Windows 3.x) Video for Windows from Microsoft (not
  7941. the "Run Time") shipped with a simple video editing program VidEdit.
  7942. VidEdit can cut, paste, concatenate, add sound, and do many other
  7943. things to AVI files.  VidEdit can be downloaded from a number of
  7944. sites on the Internet.
  7945.  
  7946. WARNING: Microsoft's NetShow audio/video/multimedia streaming
  7947. product includes a number of new video codecs such as Microsoft MPEG-4 and
  7948. VDONet's VDOWave.  The NetShow Player installation installs decode
  7949. only versions of these codecs, none of which will display in the list
  7950. of codecs in VidEdit, sensibly enough.  The NetShow Tools install
  7951. codecs with encoder capabilities.  These will show in the VidEdit
  7952. list of codecs.  See the section on NetShow for further information.
  7953.  
  7954. Some video editors such as Asymmetrix Digital Video Producer (DVP)
  7955. 4.0 will show the NetShow decode-only video codecs in the list of
  7956. codecs for compression, even though these codecs do not compress
  7957. video.  In fact, if these decode-only codecs are selected to
  7958. compress a video clip, the AVI file is not compressed although an AVI
  7959. file is generated.
  7960.  
  7961. I was quite confused by this behavior until I understood the
  7962. distinction between the NetShow codecs with encode enabled and the
  7963. decode-only video codecs.
  7964.  
  7965. VidEdit does recognize the following 32 bit Video for Windows codecs:
  7966.  
  7967.      Intel Indeo (R) Video Interactive [32]
  7968.      Intel Indeo (R) Video R3.2 [32]
  7969.      Intel Indeo Raw R1.2 [32]
  7970.      Microsoft Video 1 [32]
  7971.      Cinepak Codec by Radius [32]
  7972.      Indeo video 5.0 [32]
  7973.  
  7974.      VDONet VDOWave [32]
  7975.      MPEG-4 High Speed Compressor [32]
  7976.  
  7977.  
  7978. As far as I can tell Microsoft is not currently distributing VidEdit.
  7979. However, a file winvid.zip is bouncing around the Net.  This file
  7980. includes the Video for Windows run time along with a number of Video Tools
  7981. including VidEdit and VidCap (Microsoft's video capture tool).
  7982.  
  7983. Disclaimer: I am not certain what the legal restrictions on 
  7984. VidEdit or winvid.zip are.
  7985.  
  7986. <H4>EarthStation 1 Archive of Windows Freeware and Shareware</H4>
  7987.  
  7988. Microsoft's VidEdit Video Editor is also available at:
  7989.  
  7990. EarthStation1: Recommended Shareware and Freeware Page
  7991.  
  7992. <A HREF="http://www.attention.net/wandarer/software.html">http://www.attention.net/wandarer/software.html</A>
  7993.  
  7994. The preceding link now contains links to mirror sites for the EarthStation 1
  7995. archive.  
  7996.  
  7997. The LaJolla Earthstation 1 mirror site is:
  7998.  
  7999. <A HREF="http://earthstation1.simplenet.com/software.html">http://earthstation1.simplenet.com/software.html</A>
  8000.  
  8001. Once you have reached the EarthStation 1 page, click on the Graphics 
  8002. link to jump to the Graphics Editors section.  VidEdit is in this
  8003. section.  Scroll down a few pages to find VidEdit or use the find string
  8004. on this page feature of your Web browser.
  8005.  
  8006. Click to download VidEdit.
  8007.  
  8008. There is also a mirror site at:
  8009.  
  8010. <A HREF="http://mirrors.org.sg/earthstation/software.html">http://mirrors.org.sg/earthstation/software.html</A>
  8011.  
  8012. <H4>Alchemedia Inc. Shareware Page</H4>
  8013.  
  8014. The Alchemedia Inc. shareware page contains a file videdit.zip with
  8015. VidEdit.
  8016.  
  8017. <A HREF="http://www.alchemediainc.com/sharewar.html">http://www.alchemediainc.com/sharewar.html</A>
  8018.  
  8019.  
  8020. <H4>Greg Hughes Home Page </H4>
  8021.  
  8022. winvid.zip is available from Greg Hughes home page:
  8023.  
  8024. <A HREF="http://www.public.iastate.edu/~gregngng/">http://www.public.iastate.edu/~gregngng/</A>
  8025.  
  8026. Note that I found this site hard to connect to although I was eventually able
  8027. to download winvid.zip
  8028.  
  8029.  
  8030. <H3>Personal AVI Editor</H3>
  8031.  
  8032. FlickerFree markets an inexpensive/shareware avi editor for
  8033. Windows called Personal AVI Editor.
  8034.  
  8035. Personal AVI Editor ($49.95 + Shipping and Handling)
  8036. <A HREF="http://www.flickerfree.com/index.html">http://www.flickerfree.com/index.html</A>
  8037.  
  8038. <H3>MGI VideoWave </H3>
  8039.  
  8040. MGI Software Corporation (Toronto, Canada) markets a PC video
  8041. capture and editing program called VideoWave.  VideoWave supports
  8042. AVI, QuickTime, and MPEG.  Suggested price: $99
  8043.  
  8044. <A HREF="http://www.mgisoft.com/">http://www.mgisoft.com/</A>
  8045.  
  8046.  
  8047. <H3>Corel Lumiere Suite for 32-bit Windows</H3>
  8048.  
  8049. Lumiere is a new contestant in the PC video editing game. (May, 1997)
  8050.  
  8051. Corel Lumiere Suite for 32-bit Windows
  8052. List Price on Corel Web Site: $89 (US)
  8053.  
  8054. Corel Corp.
  8055. Ottawa, Ontario, Canada
  8056. (800) 772-6735
  8057. (613) 723-3733
  8058. FAX: (613) 728-9790
  8059. <A HREF="http://www.corel.com/">http://www.corel.com/</A>
  8060.  
  8061. <A HREF="http://www.corel.com/products/lumiere/index.htm">Corel's Lumiere Web Page</A>
  8062.  
  8063. <H3>Ulead Media Studio Pro</H3>
  8064.  
  8065. Ulead's Media Studio Pro ( around $300 )
  8066. <A HREF="http://www.ulead.com/">http://www.ulead.com/</A>
  8067.  
  8068. <H3>Asymetrix Digital Video Producer</H3>
  8069.  
  8070. Asymetrix's Digital Video Producer (DVP)
  8071.  
  8072. Typical Retail Price: $69.95 (Sept. 1997)
  8073.  
  8074. A simple digital video capture and editing program for Windows 95 and
  8075. Windows NT.  DVP is bundled with many video capture cards and is
  8076. also available retail.  More information is available at the Asymetrix
  8077. Web site.
  8078.  
  8079. <A HREF="http://www.asymetrix.com/">http://www.asymetrix.com/</A>
  8080.  
  8081. <H3>Adobe Premiere</H3>
  8082.  
  8083. Adobe Premiere is the reigning king of desktop video editing
  8084. programs.  Versions exist for both the PC/Windows and the
  8085. Macintosh.  
  8086.  
  8087. Adobe Systems Premiere ( around $500 )
  8088. <A HREF="http://www.adobe.com/">http://www.adobe.com/</A>
  8089.  
  8090. <H3>SpeedRazor</H3>
  8091.  
  8092. in:sync produces SpeedRazor Mach 3.51 (5/16/97), a professional
  8093. non-linear editing (NLE) video editor for Windows NT for the
  8094. Broadcast industry.  This can handle AVI as well as other formats.
  8095.  
  8096. Speed Razor (not cheap)
  8097. <A HREF="http://www.in-sync.com/">http://www.in-sync.com/</A>
  8098.  
  8099. <A HREF="#Top">Return to Top</A>
  8100.  
  8101. <H3>Fast Movie Processor</H3>
  8102.  
  8103. October, 1998.
  8104. Fast Movie Processor, version 1.41
  8105. Copyright 1997,1998 Robert Tibljas and Zeljko Nikolic
  8106.  
  8107. ABOUT FAST MOVIE PROCESSOR (FMP)
  8108.  
  8109. The program's purpose is to convert and process image sequences and
  8110. movies. While converting it can apply many image filters and 
  8111. functions like emboss, brightness, contrast, gamma correction, blur, 
  8112. sharpen, mirror and others. Invaluable if you need to construct an 
  8113. AVI movie, change resolution of images or perform quick changes and 
  8114. adjustments. Program is easy to use and highly optimized for speed. 
  8115. Disk usage is reduced to the minimum.
  8116.  
  8117. DISTRIBUTION
  8118.  
  8119. This program uses shareware distribution concept. If you intend to 
  8120. use Fast Movie Processor only for non-commercial purposes you are
  8121. not obligated to register. However, if you are using it for 
  8122. commercial purpose you must register it before.
  8123.  
  8124. E-mail:     <A HREF="mailto:rapidi@planetall.com">rapidi@planetall.com</A>
  8125.  
  8126. Home page:  <A HREF="http://www.bigfoot.com/~rapidi">http://www.bigfoot.com/~rapidi</A>
  8127.             <A HREF="http://members.xoom.com/rapidi">http://members.xoom.com/rapidi</A>
  8128.  
  8129.  
  8130. <A HREF="#Top">Return to Top</A>
  8131.  
  8132.  
  8133. <H3>Peck's Power Join</H3>
  8134.  
  8135. A program to join AVI files end to end.
  8136.  
  8137. <A HREF="http://members.tripod.com/~grok/video.htm">http://members.tripod.com/~grok/video.htm</A>
  8138.  
  8139. <A HREF="#Top">Return to Top</A>
  8140.  
  8141. <A NAME="Wave">
  8142. <H2>Editing and Converting WAV files</H2>
  8143. </A>
  8144.  
  8145. AVI and WAV files are closely related.  WAV files are the sound file
  8146. format, and frequently provide the source for the sound tracks in an
  8147. AVI file.  
  8148.  
  8149.  
  8150. <H3>CoolEdit (PC) </H3>
  8151.  
  8152. A good shareware sound editor and sound file format converter is
  8153. Syntrillium Software's CoolEdit (Cool96) for Windows 3.1 and Windows
  8154. 95.  This supports many common sound file formats such as Apple's
  8155. .aiff and Next/Sun .au files.
  8156.  
  8157. <A HREF="http://www.syntrillium.com/10/index.htm">http://www.syntrillium.com/10/index.htm</A>
  8158.  
  8159.  
  8160. <H3>GoldWave (Windows 3.1/95/NT) </H3>
  8161.  
  8162. Another shareware sound editor and sound file format converter is
  8163. GoldWave.
  8164.  
  8165. <A HREF="http://www.goldwave.com/">http://www.goldwave.com/</A>
  8166.  
  8167.  
  8168. <H3>Macromedia's SoundEdit16 (Macintosh)</H3>
  8169.  
  8170. Macromedia markets a sound editor for the Macintosh called
  8171. SoundEdit16 + Deck II.  SoundEdit can open and save in WAV
  8172. format.  For further information on SoundEdit, see the
  8173. Macromedia Web site:
  8174.  
  8175. <A HREF="http://www.macromedia.com/">http://www.macromedia.com/</A>
  8176.  
  8177.  
  8178. <H3>Sound Forge</H3>
  8179.  
  8180. Sonic Foundry markets a digital sound editor for Windows called
  8181. Sound Forge 4.0 (5/16/97)  Sound Forge includes support for importing
  8182. AVI video and editing the sound to synchronize with specific frames in
  8183. the AVI file.
  8184.  
  8185. <A HREF="http://www.dg.co.il/Forge/forge.htm">http://www.dg.co.il/Forge/forge.htm</A>
  8186.  
  8187.  
  8188. <H3>SpeedRazor (Windows NT 3.51 and 4.0) </H3>
  8189.  
  8190. in:sync produces SpeedRazor Mach 3.51 (5/16/97), a professional
  8191. non-linear editing (NLE) video editor for Windows NT for the
  8192. Broadcast industry.  SpeedRazor can read and write WAV audio files.
  8193. It has sophisticated multi-track stereo audio editing and mixing
  8194. features.
  8195.  
  8196. Speed Razor (not cheap)
  8197. <A HREF="http://www.in-sync.com/">http://www.in-sync.com/</A>
  8198.  
  8199.  
  8200. <A NAME="MacSound">
  8201. <H3>Editing and Converting Sound Files on the Macintosh</H3>
  8202. </A>
  8203.  
  8204. A Macintosh shareware utility SoundHack can read, write, and 
  8205. modify sound files on the Macintosh including Microsoft WAV
  8206. format and AIFF.  Macintosh users can use SoundHack to convert
  8207. AIFF and other Macintosh sound files to the WAV format for
  8208. integration in AVI.
  8209.  
  8210. <A HREF="http://www.imuse.com/Soundhack.html">http://www.imuse.com/Soundhack.html</A>
  8211.  
  8212. <A HREF="#Top">Return to Top</A>
  8213.  
  8214.  
  8215. <A NAME="Output">
  8216. <H2>How to output an AVI file to videotape:</H2>
  8217. </A>
  8218.  
  8219. AVI files generated with a video editor such as Premiere or a 3D
  8220. Animation program such as Caligari TrueSpace can be output to
  8221. videotape (e.g. a VHS tape) using a hardware device known as a scan
  8222. converter.  A scan converter converts the VGA signal intended for
  8223. the computer monitor into an video signal, typically NTSC or S-Video.
  8224. The video signal can then be input into a videotape recorder such as a
  8225. VHS VCR.
  8226.  
  8227. A scan converter may be a small box which resides between the computer
  8228. and the monitor.  It may be integrated into a video card.  For example, ATI's
  8229. new 3D XPRESSION+PC2TV video card includes NTSC and S-Video output as well
  8230. as output to a conventional computer monitor.
  8231.  
  8232. Configure the PC graphics in one of the modes supported by the scan conversion
  8233. hardware and play the AVI file in full screen mode.
  8234.  
  8235. Some manufacturers of scan converter (or similar) hardware:
  8236.  
  8237. <A HREF="http://www.atitech.com/">ATI Web Page</A>
  8238.  
  8239. <A HREF="http://www.videologic.com/">VideoLogic Web Page</A>
  8240.  
  8241. PC Video Conversion claims to make a high quality scan converter
  8242. called HyperConverter that converts from SuperVGA to broadcast quality
  8243. NTSC/PAL video.  Less than $5000.
  8244.  
  8245. <A HREF="http://www.pcvideo.com/">PC Video Conversion</A>
  8246.  
  8247. <A HREF="#Top">Return to Top</A>
  8248.  
  8249. <A NAME="VideoChips">
  8250. <H2>PC Video Chips and Cards</H2>
  8251.  
  8252. The current (6/21/97) generation of graphics controllers for PC's
  8253. incorporate a number of hardware features to improve playback of
  8254. video, including AVI.  Video acceleration features have become
  8255. standard in most chips.  As a consequence video chip and card
  8256. marketing has increasingly emphasized 3D graphics acceleration
  8257. features in an effort to differentiate chips and cards from different
  8258. manufacturers.  These video acceleration features include hardware
  8259. color space conversion and hardware scaling of video.
  8260.  
  8261. <H3>Color Space Conversion</H3>
  8262.  
  8263. Many video standards such as Indeo, Cinepak, and MPEG operate in
  8264. a luminance - chrominance color space such as YUV, YCbCr, etc.  Computer
  8265. monitors use RGB (Red/Green/Blue).  The decoded video signals must
  8266. be converted from YUV to RGB for display.  Most video chips now provide
  8267. dedicated hardware for this color space conversion.  
  8268.  
  8269. <H3>Hardware Scaling</H3>
  8270.  
  8271. Displaying a video in a windows larger (or smaller) than the encoded
  8272. aspect ratio involves duplication of pixels.  Complex filtering
  8273. operations can reduce or remove blocking artifacts when a video is
  8274. scaled up in size.  If scaling is performed in software using the
  8275. PC's CPU, the scaling will absorb many CPU cycles, possibly resulting
  8276. in degraded video playback depending on the speed of the CPU.  Most
  8277. video chips now provide dedicated hardware for scaling video.
  8278.  
  8279. <H3>Video Cards</H3>
  8280.  
  8281. PC video cards are printed circuit boards.  Today (6/23/97), virtually
  8282. all video cards are PCI cards, with a PCI bus connector along one side
  8283. of the circuit board.  The video card will have at least a DB-15
  8284. connector for the VGA cable to the computer monitor.  Video cards have
  8285. a chip variously known as a graphics controller, graphics accelerator,
  8286. video chip, video controller, or something similar.  The graphic
  8287. controller is the heart and the brain of the video card.  
  8288.  
  8289. The card has one or more memory chips forming the video memory where
  8290. the images are stored.  The video memory is known as a framebuffer.
  8291. Video cards have a RAMDAC (Random Access Memory Digital to Analog
  8292. Converter) which convertes the digital image stored in the framebuffer
  8293. into an analog signal for the RGB monitor.  PC video cards have a ROM
  8294. (Read Only Memory) with the VGA BIOS used during the PC boot process.
  8295. There is also a clock that provides the timing signals for the entire
  8296. board.
  8297.  
  8298. Many video cards have a feature connector allowing an
  8299. auxiliary card to be added to the main video card.  The auxiliary
  8300. card adds additional features such as hardware MPEG decoding.  
  8301.  
  8302. Although AVI should be independent of the video chips and cards used in
  8303. a PC, there can sometimes be problems or technical issues specific
  8304. to a particular chip.  By far the most common PROBLEM is a subtle
  8305. bug in a video chip driver or a subtle conflict between a video
  8306. chip driver and another driver or piece of software on the PC.  Downloading
  8307. and installing the latest video driver from the chip or card maker's
  8308. Web site is a frequently successful fix for these problems.
  8309.  
  8310. ALSO, Windows 3.x and Windows 95 use different Device Drivers than
  8311. Windows NT 3.51 or Windows NT 4.0  Windows 3.x and 95 use Device
  8312. Drivers known as VxD's for low-level hardware access.  NT uses its
  8313. own device drivers.  If you use a video card or other hardware
  8314. on an NT machine, you need to be sure to use the NT drivers!
  8315.  
  8316. A number of video card companies such as Diamond Multimedia and
  8317. STB that buy or license the controller chips from other companies such
  8318. as S3 frequently write video card/chip device drivers with additional
  8319. features or better quality than the device drivers provided by the
  8320. chip company.
  8321.  
  8322. Links to video chip and video card makers follow:
  8323.  
  8324. <A HREF="http://www.atitech.com/">ATI Technologies</A>
  8325.  
  8326. <A HREF="http://www.diamondmm.com/">Diamond Multimedia</A>
  8327.  
  8328. <A HREF="http://www.stb.com/">STB Systems Inc.</A>
  8329.  
  8330. <A HREF="http://www.s3.com/">S3 Incorporated</A>
  8331.  
  8332. <A HREF="http://www.tseng.com/">Tseng Laboratories</A>
  8333.  
  8334. <A HREF="http://www.trid.com/">Trident Microsystems</A>
  8335.  
  8336. <A HREF="http://www.matrox.com/">Matrox</A>
  8337.  
  8338. <A HREF="http://www.nine.com/">Number Nine</A>
  8339.  
  8340. <A HREF="http://www.cirrus.com/">Cirrus Logic</A>
  8341.  
  8342. <A HREF="http://www.rendition.com/">Rendition</A>
  8343.  
  8344. <A HREF="http://www.nvidia.com/">nVidia</A>
  8345.  
  8346. <A HREF="http://www.3dfx.com/">3dFX</A>
  8347.  
  8348. <A HREF="http://www.3dlabs.com/">3dLabs</A>
  8349.  
  8350. A fairly comprehensive list of video chipsets, video cards, and
  8351. miscellaneous other information may be found at:
  8352.  
  8353. <A 
  8354. HREF="http://www.heartlab.rri.uwo.ca/vidfaq/chipset.txt">http://www.heartlab.rri.uwo.ca/vidfaq/chipset.tx
  8355. t</A>
  8356.  
  8357. <A NAME="NTVideo">
  8358. <H3>Video (Display) Cards with Windows NT Drivers</H3>
  8359. </A>
  8360.  
  8361. Unfortunately, Windows 95 and Windows NT use different
  8362. device drivers for the same hardware.  While Windows 95
  8363. drivers are available for the vast majority of PC hardware, Windows
  8364. NT drivers are harder to come by.  Video cards with
  8365. NT drivers are listed below:
  8366.  
  8367. Number Nine Revolution 3D  (Windows NT 4.0 Drivers)
  8368. <A HREF="http://www.nine.com/">http://www.nine.com/</A>
  8369.  
  8370.  
  8371. <A HREF="#Top">Return to Top</A>
  8372.  
  8373. <A NAME="Audio">
  8374. <H2>How to compress the audio sound track in AVI Files</H2>
  8375.  
  8376. AVI files include support for compressed audio although they are
  8377. frequently generated with uncompressed PCM audio.  The Windows
  8378. Multimedia system includes a component called the Audio Compression
  8379. Manager (ACM), an audio counterpart to the Video Compression Manager (VCM).
  8380. The ACM enables installable audio codecs.  
  8381.  
  8382. Unfortunately not all authoring applications access the full ACM.  For
  8383. example, the free VidEdit application from Microsoft, a simple video
  8384. editor, only permits selection of various PCM audio encoding.  There
  8385. is no way to compress the audio in an AVI file through VidEdit,
  8386. although the Windows operating system, through the ACM, and the AVI
  8387. file format do support audio compression.
  8388.  
  8389. Historically, AVI files were frequently authored with video compression,
  8390. usually Cinepak, and uncompressed PCM audio.  The size of the audio track
  8391. could be reduced by using 8 bit mono (one channel) PCM audio at a
  8392. 11 KHz sample rate as the "audio format".  Microsoft VidEdit, for
  8393. example, allows this.  AVI was used for compressing video on hard disks
  8394. and CD-ROM's.  Hard disks and CD-ROM's have plenty of room for uncompressed
  8395. audio but an uncompressed video quickly exceeds their capacity.
  8396. Thus audio compression was not as critical as video compression.
  8397.  
  8398. With the advent of the Internet, with typical bandwidth of a few
  8399. Kbits/second, audio compression has become more important.
  8400.  
  8401. AUTHORING TOOLS SUPPORTING AUDIO COMPRESSION (INCOMPLETE)
  8402.  
  8403. Adobe Premiere 5.0 for Windows
  8404.  
  8405. AUTHORING TOOLS *NOT* SUPPORTING AUDIO COMPRESSION (INCOMPLETE)
  8406.  
  8407. Microsoft VidEdit 1.1
  8408.  
  8409. <A HREF="#Top">Return to Top</A>
  8410.  
  8411. <A NAME="ToNTSC">
  8412. <H2>How to make AVI NTSC (or PAL) Safe</H2>
  8413. </A>
  8414.  
  8415. AVI files can represent colors that are not supported by the NTSC or
  8416. PAL analog video standards.  These colors correspond to
  8417. synchronization and control signals in the NTSC or PAL video.  Such
  8418. AVI files cause problems if translated to NTSC or PAL video.
  8419.  
  8420. Equilibrium's DeBabelizer Pro for Windows 95 and NT 4.0 reads and
  8421. writes about 90 common and not so common image file formats as well
  8422. as AVI files.  In addition to translating between all of these formats,
  8423. DeBabelizer Pro has a number of image processing functions.
  8424.  
  8425. DeBabelizer Pro can remove colors from AVI files that are excluded by
  8426. NTSC or PAL to create an NTSC or PAL safe AVI file.
  8427.  
  8428. Equilibrium has a demonstration version of DeBabelizer Pro on its
  8429. Web site.  This is a demonstration version.  The demonstration version
  8430. adds the words Equilibrium (very large words) to all images and video that
  8431. it processes.
  8432.  
  8433. DeBabelizer Pro ($595 Suggested Retail Price)
  8434. Equilibrium
  8435. 475 Gate Five Road, Suite 225
  8436. Sausalito, CA  94965
  8437. 1(800)524-8651 or (415) 332-4343
  8438.  
  8439. <A HREF="http://www.equilibrium.com/">http://www.equilibrium.com/</A>
  8440.  
  8441. <A HREF="#Top">Return to Top</A>
  8442.  
  8443. <A NAME="Phantom">
  8444. <H2>The Phantom Final Frame when Viewing an AVI</H2>
  8445. </A>
  8446.  
  8447. When playing or viewing an AVI with a number of Microsoft Windows
  8448. applications, you will see a "phantom" final frame.  The "phantom" frame
  8449. may appear as a blank frame or a duplicate of the last frame depending
  8450. on the Windows application.
  8451.  
  8452. For example, if you have a one second AVI file with 30 frames and
  8453. you view this AVI file with Microsoft VidEdit 1.1, VidEdit will
  8454. display positions that it numbers 0-30.  The 30 position will appear as
  8455. a blank frame.  Note that 0-30 means 31 total positions; there is a
  8456. "phantom" final frame.
  8457.  
  8458. If you view the 30 frame AVI file with Microsoft Media Player, there 
  8459. will also be positions 0-30.  In this case, position 30 is a duplicate
  8460. of frame 29.
  8461.  
  8462. What is this?
  8463.  
  8464. The MCIAVI driver has a concept of the "end" or "position after the last
  8465. frame in an AVI".  In the 30 frame AVI example above, positions 0 through
  8466. 29 are the actual frames in the AVI file.  0 is the first frame, 1 is the
  8467. second frame, and 29 is the last (30'th) frame.  Position 30 is the "end"
  8468. or "position after the last frame in an AVI".
  8469.  
  8470. The Microsoft Windows application, such as VidEdit 1.1 or Media Player,
  8471. decides what to display for this "end" position.  
  8472.  
  8473. You can see this feature of the MCIAVI driver through the Media Player.
  8474. Open an AVI file through Media Player.  Then, type Ctrl-F5 to invoke 
  8475. a dialog box for entering MCI (Media Control Interface) string commands.
  8476.  
  8477. set time format frames
  8478. status length               (would return 30 for the example above)
  8479. seek to start
  8480. status position             (returns 0)
  8481. seek to end                 
  8482. status position             (returns 30 - this is the "phantom" frame)
  8483. seek to 29                  (this is the true last frame in the AVI file)
  8484. seek to 0
  8485. play
  8486. status position             (returns 30)  
  8487.  
  8488. In conclusion, the "phantom" final frame represents the position after
  8489. the last frame in the AVI file.  It is NOT a frame in the AVI file.
  8490.  
  8491.  
  8492. <A HREF="#Top">Return to Top</A>
  8493.  
  8494.  
  8495. <A NAME="BinEd">
  8496. <H2>Binary File Editors for Viewing and Editing AVI Files</H2>
  8497. </A>
  8498.  
  8499. Occasionally, you may need to view or edit an AVI file at the
  8500. down and dirty byte level.  Use a binary file editor for this.
  8501.  
  8502. Many binary file editors, including quite a number of free
  8503. ones, exist.
  8504.  
  8505. <H3>HexEdit</H3>
  8506.  
  8507. Harmony Systems offers HexEdit, a free binary editor for Windows NT
  8508. and 95, that can be downloaded from their Web site:
  8509.  
  8510. <A HREF="http://www.hsys.com/hex.htm">http://www.hsys.com/hex.htm</A>
  8511.  
  8512. <H3>SimTel Archives</H3>
  8513.  
  8514. The SimTel collection of ms-dos software includes a section with
  8515. many binary file editors.  There are many mirrors of the SimTel
  8516. site.  One is:
  8517.  
  8518. <A HREF="http://oak.oakland.edu/simtel.net/msdos/binaryed.html">http://oak.oakland.edu/simtel.net/msdos/binaryed.html</A>
  8519.  
  8520. <H3>HEdit 2.1</H3>
  8521.  
  8522. Trial versions of HEdit, a binary file editor, both for Windows 95/NT and
  8523. Windows 3.1 are available at:
  8524.  
  8525. <A HREF="http://www.yurisw.com/hedit/">http://www.yurisw.com/hedit/</A>
  8526.  
  8527. <H3>GNU Emacs (Unix)</H3>
  8528.  
  8529. The GNU Emacs editor from the Free Software Foundation has a hexadecimal
  8530. mode.  The GNU Emacs command to invoke this mode is hexl-mode.
  8531.  
  8532. In GNU Emacs, type the META Key (ESC-x)
  8533.  
  8534. Type: hexl-mode at the command prompt.
  8535.  
  8536. The current buffer will switch into (Hexl) mode.  
  8537.  
  8538. On my Unix system (Sun), I found the Hexl mode a little sluggish
  8539. at times.  Sometimes I had to wait several seconds to get a response
  8540. to scrolling or jumping to the start of the AVI file.  Emacs modes
  8541. are usually implemented in interpreted LISP; this may be the reason.
  8542.  
  8543. <H3>beav (Unix)</H3>
  8544.  
  8545. beav, a binary file editor and viewer, is available for Unix.
  8546.  
  8547. beav displays the contents of a binary file as both hexadecimal and
  8548. ASCII in side by side views.
  8549.  
  8550. beav can edit as well as view binary files such as AVI files.
  8551.  
  8552. Unix Prompt% beav file.avi
  8553.  
  8554. <H3>od (Unix)</H3>
  8555.  
  8556. od is a common Unix command.  It is NOT an editor.  od
  8557. stands for Octal Dump.  
  8558.  
  8559. od file.avi | more    (Octal Dump of AVI File)
  8560.  
  8561. od -x file.avi | more   (Hexadecimal Dump of AVI File)
  8562.  
  8563. od -a file.avi | more   (ASCII Dump of AVI File)
  8564.  
  8565.  
  8566. <A HREF="#Top">Return to Top</A>
  8567.  
  8568. <A NAME="VidTrace">
  8569. <H2>RIFF and AVI Parser/Viewers</H2>
  8570. </A>
  8571.  
  8572. <H3>VidTrace</H3>
  8573.  
  8574. VidTrace is a 32-bit Windows console application for Windows 95 and
  8575. Windows NT that I wrote to parse and display RIFF and AVI files.
  8576. VidTrace displays the RIFF Forms, LISTS, and CHUNK.  VidTrace also
  8577. understands the AVI header format, audio stream header format, and
  8578. video stream header format.
  8579.  
  8580. Sample output of VIDTRACE some-file.avi
  8581.  
  8582. RIFF (139086) AVI 
  8583.  LIST (2004) hdrl
  8584.   avih (56) 
  8585.    Microseconds Per Frame: 33333
  8586.     30.000300 Frames Per Second
  8587.    Maximum Bytes Per Second: 1727488
  8588.    Pad to Multiples of This Size: 6050647
  8589.    Flags DWORD (hex): 710
  8590.     FLAG: (AVIF_HASINDEX)  AVI File Has 'idx1' chunk
  8591.     FLAG: (AVIF_ISINTERLEAVED)  AVI File is Interleaved
  8592.    Total Frames: 239
  8593.    Initial Frames: 23
  8594.    Number of Streams: 2
  8595.    Suggested Buffer Size: 57582
  8596.    Width in Pixels: 160
  8597.    Height in Pixels: 112
  8598.    Scale (MAY BE UNUSED): 0
  8599.    Rate (MAY BE UNUSED): 3220642425
  8600.     Samples Per Second (MAY BE UNUSED): 3220642425
  8601.    Start of AVI File (MAY BE UNUSED): 27920
  8602.    Length of AVI File (MAY BE UNUSED): 4294967295
  8603.   LIST (116) strl
  8604.    strh (56) 
  8605.     Stream Type (Four Character Code): 'vids'
  8606.      'vids' is Four Character Code for Video Stream
  8607.     Installable Compressor (Four Character Code): 'vdow'
  8608.      'VDOW' is Four Character Code for VDONet VDOWave Video Codec
  8609.     Flags (hex): 0
  8610.     Priority (MAY BE UNUSED) (hex): 0
  8611.     Language Code (MAY BE UNUSED) (hex): 0
  8612.     Initial Frames: 0
  8613.     Scale: 33333
  8614.     Rate: 1000000
  8615.     Start: 0
  8616.     Length: 239
  8617.     Suggested Buffer Size: 1340
  8618.     Quality: 0
  8619.     Sample Size: 0
  8620.     Frame (MAY BE UNUSED OR ABSENT): 0 0 0 2170023936
  8621.    strf (40) 
  8622.     Windows Bitmap Header
  8623.     Number of Bytes Required by Bitmap Structure: 40
  8624.     Width of Bitmap in Pixels: 160
  8625.     Height of Bitmap in Pixels: 112
  8626.     Number of Planes: 1
  8627.     Number of Bits Per Pixel (1,4,8,16,24, or 32): 24
  8628.     Compression Mode (hex): 574f4456 
  8629.      COMPRESSION: Custom Compression 'VDOW'
  8630.     Size of Image in Bytes: 53856
  8631.     Horizontal Resolution in Pixels per Meter: 0
  8632.     Vertical Resolution in Pixels per Meter: 0
  8633.     Number of Color Indices Actually Used by the Bitmap: 0
  8634.     Number of Color Indices Considered Important to Display Bitmap: 0
  8635.   LIST (92) strl
  8636.    strh (56) 
  8637.     Stream Type (Four Character Code): 'auds'
  8638.      'auds' is Four Character Code for Audio Stream
  8639.     Installable Compressor (Four Character Code): ''
  8640.      '' is Four Character Code for Uncompressed Audio
  8641.     Flags (hex): 0
  8642.     Priority (MAY BE UNUSED) (hex): 0
  8643.     Language Code (MAY BE UNUSED) (hex): 0
  8644.     Initial Frames: 23
  8645.     Scale: 1
  8646.     Rate: 11025
  8647.     Start: 0
  8648.     Length: 87512
  8649.     Suggested Buffer Size: 368
  8650.     Quality: 0
  8651.     Sample Size: 1
  8652.     Frame (MAY BE UNUSED OR ABSENT): 0 0 0 2170023936
  8653.    strf (16) 
  8654.     Windows Waveform Audio Header
  8655.     Waveform Audio Format Type (hex): 1
  8656.      Audio Format (WAVE_FORMAT_PCM): Microsoft Pulse Code Modulation Audio
  8657.     Number of Channels of Audio: 1
  8658.     Samples Per Second: 11025
  8659.     Required Data Transfer Rates (Bytes Per Second): 11025
  8660.     Block Alignment in Bytes: 1
  8661.     Bits Per Sample: 8
  8662.     Size of Extra Format Information Appended to End of WAVEFORMATEX Structure (Bytes): -15736
  8663.   vedt (8) 
  8664.   JUNK (1688) 
  8665.  LIST (104908) movi
  8666.   LIST (380) rec 
  8667.    01wb (367) 
  8668.   LIST (380) rec 
  8669.    01wb (368) 
  8670.   LIST (380) rec 
  8671.    01wb (367) 
  8672. .
  8673. .
  8674. .
  8675.   LIST (16) rec 
  8676.    00dc (4) 
  8677.  idx1 (11840) 
  8678.  DISP (21) 
  8679.  DISP (20268) 
  8680.  
  8681.  
  8682. <A HREF="ftp://ftp.rahul.net/pub/jfm/pcapps/vidtrace.exe">Download VIDTRACE</A>
  8683.  
  8684. <H3>Microsoft RIFFWALK</H3>
  8685.  
  8686. Microsoft distributes a command line utility called RIFFWALK with the
  8687. 16-bit Video for Windows 1.1e Development Kit that parses the
  8688. structure of RIFF and AVI files, displaying the file structure in RIFF
  8689. Forms, LISTS, and CHUNKS.
  8690.  
  8691. Sample output of RIFFWALK some-file.avi
  8692.  
  8693. 00000000    RIFF (00021F4E) 'AVI '
  8694. 0000000C        LIST (000007D4) 'hdrl'
  8695. 00000018            avih (00000038)
  8696. 00000058            LIST (00000074) 'strl'
  8697. 00000064                strh (00000038)
  8698. 000000A4                strf (00000028)
  8699. 000000D4            LIST (0000005C) 'strl'
  8700. 000000E0                strh (00000038)
  8701. 00000120                strf (00000010)
  8702. 00000138            vedt (00000008)
  8703. 000007E8        LIST (000199CC) 'movi'
  8704. 0001A1BC        idx1 (00002E40)
  8705. 0001D004        DISP (00000015)
  8706. 0001D022        DISP (00004F2C)
  8707. 00021F56
  8708.  
  8709. The Video for Windows 1.1e Development Kit is included with the
  8710. 16-bit SDK's in the Microsoft Developer Network CD-ROM's.
  8711.  
  8712. <H3>Bill Luken's RIFFSCAN</H3>
  8713.  
  8714. RIFFSCAN is another DOS console application that prints out
  8715. a human readable ASCII trace of RIFF and AVI files.
  8716.  
  8717. <A HREF="http://home.att.net/~wluken/bill2sw.htm">http://home.att.net/~wluken/bill2sw.htm</A>
  8718.  
  8719.  
  8720. <A HREF="#Top">Return to Top</A>
  8721.  
  8722. <A NAME="Style">
  8723. <H2>Effective Use of Video on a Web Page</H2>
  8724. </A>
  8725.  
  8726. The limited bandwidth of the Internet is the bane of effective
  8727. use of video on a Web page.  Video clips on a Web page need to
  8728. be small.  Even then downloading a video clip can take several
  8729. minutes, hours over a 28.8 modem to someone's home.  The longer
  8730. the wait, the better the video should be!
  8731.  
  8732. FIRST AND FOREMOST, tell a story!!!  A video clip without a
  8733. story is usually boring.  A story can be told in 30
  8734. seconds, the duration of many television advertisements.  Some
  8735. stories can be told in less time.  Because of the bandwidth
  8736. limitations of the Internet, even 30 seconds is a big file, several
  8737. megabytes.
  8738.  
  8739. Characters, human personalities, sell.  Sex sells.  Violence
  8740. sells.  Talking heads (your company's CEO saying "Welcome to our
  8741. great Web Site") tend to be boring.
  8742.  
  8743. USE AUDIO!  Sound makes a world of difference.  Use base, lower
  8744. frequencies in the soundtrack.  Human beings are more sensitive to
  8745. low frequency sound.   A soundtrack with more base tends to sound "better" to
  8746. most people.  Most computer speakers are very cheap and don't
  8747. reproduce high frequencies well anyway.  You will likely cheat
  8748. on higher frequencies to reduce bandwidth use by the audio as well.
  8749.  
  8750. TECHNICAL ISSUES
  8751.  
  8752. For widest distribution and ease of viewing:
  8753.  
  8754. Provide video clips as AVI using the Cinepak codec.  For maximum
  8755. distribution, also provide flattened QuickTime files again using
  8756. the Cinepak codec; these can be played on both PC's with QuickTime
  8757. for Windows and on Macs.  Provide MPEG-1 clips as well.  
  8758.  
  8759. Give the size of the video file in KBytes or MBytes in text as part of
  8760. the link to the video file.  This way the viewer can estimate how long
  8761. it will take to download the file if they wish to.
  8762.  
  8763. If you use less standard codecs or file formats to get smaller file
  8764. sizes, provide links to download the needed viewers or codecs.
  8765. Provide the AVI's with less standard codecs (e.g. VDOWave from VDONet)
  8766. in addition to Cinepak versions.  Don't omit the Cinepak versions.
  8767.  
  8768. VIDEO ACCEPTABILITY
  8769.  
  8770. Video encoded at less than 15 frames per second usually looks very
  8771. jerky to human viewers, like a slide show rather than smooth motion.
  8772. Most viewers seem to perceive some jerkiness in 15 frame per second
  8773. video.  The transition to smooth motion occurs somewhere in the range
  8774. 15-17 frames per second.  If motion is limited, frame rates below 15
  8775. may look acceptable, although often not.
  8776.  
  8777. The early motion picture industry standardized on 16 frame per second
  8778. film, which seemed to provide smooth motion in most cases.  This
  8779. appears to be the origin of the folklore in video engineering that
  8780. 16 frames per second is the transition to smooth motion.
  8781. Modern film uses 24 frames per second.
  8782.  
  8783. Image resolutions should be 320x240 or larger.  In some cases, smaller
  8784. sizes such as 160x120 may work.  In general, most viewers find sizes
  8785. smaller than 320x240 too small.
  8786.  
  8787. DO NOT COMPRESS the video so much that unnatural artifacts such as
  8788. blocking occur.  In general loss of fine details appears natural
  8789. to human viewers.  This corresponds to changes in natural viewing
  8790. conditions such as viewing an object at a distance or in poor lighting.
  8791. Unnatural artifacts such as visible 4x4 pixel blocks or 8x8 pixel
  8792. blocks jump out at most viewers and destroy the illusion of a natural
  8793. image.  
  8794.  
  8795. AUDIO DISTRIBUTION
  8796.  
  8797. For AVI, sound codecs aren't very standard.  Avoid using audio compression,
  8798. especially more exotic codecs.  ADPCM may be ok.  Again, if you use
  8799. an audio codec, make sure to include a link on your Web site to 
  8800. download the codec.  If possible, provide a version of the AVI without
  8801. special audio codecs (and Cinepak video).
  8802.  
  8803. AUDIO ACCEPTABILITY
  8804.  
  8805. Uncompressed audio takes space.  You ALMOST NEVER need to use the 44
  8806. KHz sampling rate.  At most, use 22 KHz sample rate.  Many people
  8807. cannot hear the frequencies above 11 KHz (the sample rate is twice the
  8808. highest frequency that the sampled audio data can represent
  8809. faithfully).  People who can hear frequencies between 11 KHz and 22
  8810. KHz are not very sensitive to these frequencies.
  8811.  
  8812. See if the soundtrack works ok at 11 KHz 8 bit Mono (not Stereo).
  8813. Use this low quality setting if you can get away with it (often this
  8814. won't work).
  8815.  
  8816. NOTE: You can select audio and video codecs, convert the frame rate,
  8817. convert the audio sampling rate, and resize the video using video
  8818. editor applications such as Adobe Premiere or VidEdit.  See the
  8819. section on video editors:
  8820.  
  8821. <A HREF="#Edit">Video Editors</A>
  8822.  
  8823. TO REPEAT:
  8824.  
  8825. TELL A STORY!!!  Many video clips in current (7/20/97) use on Web
  8826. sites are very short, a few seconds, and really don't tell a story.
  8827. These clips are boring!  So are most talking heads (I have one on
  8828. my Web site and it IS boring).  Movie trailers, short television
  8829. advertisements, etc. illustrate what is needed.  If you don't have
  8830. a story, think seriously about dropping the video.  
  8831.  
  8832. See elsewhere in this overview for information on authoring AVI files 
  8833. and converting to QuickTime and MPEG-1.
  8834.  
  8835. <A HREF="#Top">Return to Top</A>
  8836.  
  8837. <A NAME="Web">
  8838. <H2>How to embed an AVI file in a Web Page:</H2>
  8839. </A>
  8840.  
  8841. <H3>A Simple Hypertext Link</H3>
  8842.  
  8843. The simplest approach is to use the anchor tag 
  8844.  
  8845. < A HREF="http://www.somplace.com/movie.avi" > A Movie </A>
  8846.  
  8847.  
  8848. In this instance, clicking on the link will cause the AVI file
  8849. to be downloaded.  The browser recognizes that the AVI file is
  8850. not an HTML document.  Typically, the browser invokes a helper
  8851. application that can play the AVI file, such as Media Player under
  8852. Windows 3.1.  The movie will appear in a separate window.  The browser
  8853. may have a plug-in that provides support for AVI, in which case the
  8854. video window will appear embedded in the HTML page.
  8855.  
  8856. Web browsers such as Netscape and Internet Explorer know how to handle
  8857. a file through a Content (MIME) type reported by the Web server.  For
  8858. example, the MIME type for AVI files is video/avi.  The browser may
  8859. contain a built-in decoder for this MIME type.  For example, JPEG and
  8860. GIF still image compression decoding and viewing is built into
  8861. Internet Explorer and Netscape.  The browser can be configured to
  8862. invoke a helper application such as Media Player.  Helper applications
  8863. are invoked as separate applications with their own windows.  
  8864.  
  8865. The browser can be configured to use a "plug-in" instead of a helper
  8866. application.  A "plug-in" is a software component that extends the
  8867. capabilities of the browser.  The "plug-in" handles input and presents
  8868. output embedded within the page.  For example, a video plug-in's
  8869. decoded video appears within the page, not as a floating window.  
  8870.  
  8871. In the case of a simple hypertext link, a browser with an AVI
  8872. plugin will jump to a blank page with the AVI video appearing in 
  8873. a rectangle in the upper left corner of the blank page.  The video
  8874. is not embedded in the page with the hypertext link.  It is
  8875. necessary to use the Netscape EMBED HTML tag (see below) to produce a video
  8876. embedded in the page.  Using the EMBED tag is different from using
  8877. a simple anchor A tag (hyptertext link).
  8878.  
  8879. If the browser is unable to handle a MIME type (no built-in capability
  8880. exists and no helper application or plug-in is specified), the browser
  8881. will present a dialog box asking the user to select an application,
  8882. save the file to disk, or cancel the operation.
  8883.  
  8884. In both Internet Explorer and Netscape, the user can configure the browser
  8885. to use helper applications or plug-ins as desired.  
  8886.  
  8887. Netscape now provides a Netscape plug-in known as LiveVideo to play
  8888. AVI files.  This plug-in should be installed in the \NETSCAPE\PLUGINS
  8889. directory.  For the Windows 3.1 (16 bit) version of Netscape this
  8890. plug-in is named NPAVI16.DLL.
  8891.  
  8892. Digigami provides a plug-in for Netscape Navigator (Windows) called
  8893. CineWeb that adds playback of AVI, QuickTime .MOV, and MPEG files.
  8894. The URL is:
  8895.  
  8896. <A HREF="http://www.digigami.com/CineWebPress.html">http://www.digigami.com/CineWebPress.html</A>
  8897.  
  8898. <H3>Microsoft Internet Explorer HTML Syntax</H3>
  8899.  
  8900. Microsoft's Internet Explorer 2.0 added attributes to the IMG tag that
  8901. allow for inline video (an AVI file actually embedded in the page
  8902. rendered by the Web browser).  These are the DYNSRC, CONTROLS, START, and
  8903. LOOP attributes.  For example,
  8904.  
  8905. < IMG DYNSRC="movies/movie.avi" CONTROLS SRC="movies/movie.gif" >
  8906.  
  8907.  
  8908. This will embed the movie in the page with some simple playback controls
  8909. for the user to select.  Browsers that do not support the DYNSRC attribute
  8910. will use the SRC attribute and display the image movie.gif instead.
  8911. Internet Explorer will ignore the SRC attribute.
  8912.  
  8913. In the Microsoft spirit of a new API every week, Microsoft has added
  8914. some new tags in Internet Explorer 3.0 and is discouraging use of the
  8915. IMG tag and DYNSRC attribute.
  8916.  
  8917. In Internet Explorer 3.0, Microsoft has added support for the Netscape
  8918. EMBED tag, see the section on HTML for Netscape's LiveVideo below.
  8919. Microsoft has also added a Microsoft specific OBJECT tag which does
  8920. essentially the same things as EMBED and is overtly linked with
  8921. Microsoft's OLE/COM/ActiveX environment.  Naturally Microsoft
  8922. recommends using the OBJECT tag.
  8923.  
  8924. Unlike Netscape Navigator, Internet Explorer on Windows does not use
  8925. plug-ins, either from Micrsoft or 3rd parties, to view AVI.  Rather it
  8926. invokes either the Video for Windows media player or the ActiveMovie
  8927. ActiveX control.  If necessary, Internet Explorer is able to effectively
  8928. embed the applications in the Web page.
  8929.  
  8930. Microsoft has a copyrighted white paper "File References on HTML
  8931. Pages" on their Web site that provides a detailed description of
  8932. referencing AVI files on HTML pages for viewing with Internet Explorer.
  8933.  
  8934. <A HREF="http://www.microsoft.com/devonly/tech/amov1doc/amsdk008.htm">
  8935. http://www.microsoft.com/devonly/tech/amov1doc/amsdk008.htm</A>
  8936.  
  8937. Since Microsoft reportedly has $9 billion in cash for acquisitions,
  8938. lawyers, and other fun - and I don't, I will refrain from simply
  8939. incorporating the document here.
  8940.  
  8941. <H3>Netscape LiveVideo HTML Syntax</H3>
  8942.  
  8943.     If you hunt around the Netscape Web site you will find the following
  8944. detailed specification of the HTML syntax for embedding an AVI file
  8945. in a Web page for use with the LiveVideo Plug-in.
  8946.  
  8947. LIVEVIDEO SYNTAX 
  8948.  
  8949. DESCRIPTION 
  8950.      LiveVideo plays video files in AVI format. (Currently for Windows 95 and
  8951.      NT only.) 
  8952.  
  8953. HTML SYNTAX 
  8954.      <EMBED SRC=[URL] AUTOSTART=[TRUE|FALSE] LOOP=[TRUE|FALSE] WIDTH=[# PIXELS]
  8955.      HEIGHT=[# PIXELS] ALIGN=[TOP|BOTTOM|CENTER|BASELINE|LEFT|RIGHT|TEXTTOP
  8956.      MIDDLE|ABSMIDDLE|ABSBOTTOM]...> 
  8957.  
  8958.      EMBED - Use this tag to place AVI movies into your Web document. 
  8959.  
  8960.      SRC=[URL] - The URL of the source AVI file. 
  8961.  
  8962.      AUTOSTART=[TRUE|FALSE] - Setting the value to TRUE allows the AVI movie to begin
  8963.      playing automatically when the Web page is loaded. The default is FALSE. 
  8964.  
  8965.      LOOP=[TRUE|FALSE] - Setting the value to TRUE allows the AVI movie to play
  8966.      continuously until the user clicks on the movie to stop it from playing or goes to
  8967.      another page. The default is FALSE. 
  8968.  
  8969.      WIDTH=[# PIXELS] - Use this attribute to display the width of the AVI movie. 
  8970.  
  8971.      HEIGHT=[# PIXELS] - Use this attribute to display the height of the AVI movie.
  8972.      Standard sizes for movies are 90x120, 120x160, 180x240, and 240x320 (all size
  8973.      references are HEIGHT x WIDTH). These are all standard sizes using the 4:3 aspect
  8974.      ratio. 
  8975.  
  8976.      
  8977. ALIGN=[TOP|BOTTOM|CENTER|BASELINE|LEFT|RIGHT|TEXTTOP|MIDDLE|ABSMIDDLE|ABSB
  8978. OTTOM]
  8979.      - This attribute tells Netscape Navigator how you want to align text as it flows
  8980.      around the AVI movie. It acts similarly to the IMG tag. 
  8981.  
  8982. JAVA AND JAVASCRIPT FUNCTIONS 
  8983.      play() - Starts playing the source file at the current location.
  8984.      stop() - Stops the currently playing video.
  8985.      rewind() - Rewinds the currently loaded video.
  8986.      seek(frame-number) - Sets the current frame of the video to the given frame
  8987.      number. 
  8988.  
  8989. <A HREF="#Top">Return to Top</A>
  8990.  
  8991. <A NAME="Mail">
  8992. <H2>Sending AVI by E-Mail or Network News</H2>
  8993.  
  8994. The original Internet e-mail system was designed for sending purely
  8995. text messages using printable 7-bit ASCII codes (byte values from 0 to
  8996. 127 that represent printable characters).  Binary files such as AVI
  8997. can include non-printing 7-bit ASCII control codes and values higher
  8998. than 127.  These cause problems.
  8999.  
  9000. The Network News system was built on top of the Internet mail system.
  9001. Network News postings use the same text format as mail messages with
  9002. some additional headers for news postings.  Network News postings use
  9003. the same mechanisms to attach or embed binary files such as AVI to the
  9004. message.
  9005.  
  9006. There are two main ways to transfer binary files such as AVI
  9007. by e-mail (and also the Network News system which is derived
  9008. from e-mail).  The older method is UUENCODE.  UUENCODE is
  9009. a utility that translates binary files into printable 7-bit
  9010. ASCII codes that can be sent safely by e-mail.  Simply
  9011. include the uuencoded file in the body of the e-mail
  9012. message.
  9013.  
  9014. The modern method is to use MIME, the Mulipurpose Internet Mail
  9015. Extensions.  This is a standard for adding attachments to Internet
  9016. e-mail, including binary files such as AVI.  MIME supports a number of
  9017. schemes, notable base64 encoding, to represent binary files as
  9018. printable 7-bit ASCII characters.  See the section on <A
  9019. HREF="#MIME">MIME</A> for more information.
  9020.  
  9021. More modern e-mail software include built in support for
  9022. uuencode and MIME.
  9023.  
  9024. LESS COMMON METHODS
  9025.  
  9026. btoa
  9027.  
  9028. btoa (binary to ascii) is another Unix utility for encoding binary
  9029. files to printable 7-bit ASCII files.  btoa is less widely used than
  9030. UUENCODE.
  9031.  
  9032.  
  9033. BinHex
  9034.  
  9035. Another method is to use the Macintosh program BinHex.  Like UUENCODE,
  9036. BinHex translates a binary file into printable 7-bit ASCII codes that
  9037. can be transferred over mail networks.  There are cases of AVI files
  9038. being BinHex'ed and added to newsgroup postings as text MIME
  9039. attachments.
  9040.  
  9041. BinHex 4.0 files are identified by a first line:
  9042.  
  9043. (This file must be converted with BinHex 4.0)
  9044.  
  9045. followed by a blank line, followed by a colon, followed by the data.
  9046.  
  9047. On the PC, 
  9048.  
  9049. (1) WinZip 6.2 (and later versions of WinZIP) can open and
  9050. decode BinHex encoded files.  WinZip 6.2 also opens and
  9051. decodes uuencoded, XXencoded, and MIME (base64, plain/text, and
  9052. quoted-printable) files.
  9053.  
  9054. <A HREF="http://www.winzip.com/">http://www.winzip.com/</A>
  9055.  
  9056. (2) BinHex'ed files may be decoded using the PCBINHEX utility.
  9057.  
  9058. For more information on BinHex, see:
  9059.  
  9060. <A HREF="http://www.gis.at/infoalley/1095/31/what.html">http://www.gis.at/infoalley/1095/31/what.html</A>
  9061.  
  9062. <H3>Microsoft Internet Mail</H3>
  9063.  
  9064. In Microsoft's Internet Mail (included in Windows 95 OSR2 for
  9065. example), click New Message to generate a new e-mail message.
  9066.  
  9067. Select Insert | File Attachment to add an attachment, for example
  9068. an AVI file.
  9069.  
  9070. Select Format | Settings... to choose UUENCODE or MIME.  Internet
  9071. Mail defaults to MIME.  One can also select UUENCODE.
  9072.  
  9073. Internet Mail automates the binary file attachment process.
  9074.  
  9075. <A HREF="#Top">Return to Top</A>
  9076.  
  9077. <A NAME="Crypto">
  9078. <H2>How to Encrypt AVI Files</H2>
  9079. </A>
  9080.  
  9081. One option is to use the PGP (Pretty Good Privacy) program. PGP
  9082. appears to have been developed to encrypt conventional e-mail
  9083. messages, printable 7-bit ASCII characters which PGP's documentation
  9084. calls "ASCII-Armored Text".  You need to encode binary files such
  9085. as AVI using a binary to printable 7-bit ASCII encoder such as
  9086. UUENCODE or BinHex.  Then, run PGP on the encoded text.
  9087.  
  9088. In the case of E-Mail, there is a PGP-MIME standard for encrypted
  9089. multimedia attachments to e-mail messages.  
  9090.  
  9091. PGP versions exist for Windows, Macintosh, and Unix.  PGP includes
  9092. extensive documentation on its use.
  9093.  
  9094. <A HREF="http://web.mit.edu/network/pgp">PGP at MIT for Non-Commercial Uses</A>
  9095.  
  9096. <A HREF="http://www.pgp.com/">Pretty Good Privacy, Inc.</A>
  9097.  
  9098. Editorial Comment: PGP almost certainly provides excellent protection
  9099. against most would-be non-governmental codebreakers.  PGP also
  9100. emphasizes the threat of surveillance by the NSA, FBI, and other
  9101. governmental agencies in its marketing literature, citing apparent
  9102. efforts by the government to suppress public key cryptography in
  9103. general and PGP specifically.  For example, Phil Zimmerman, the PGP
  9104. author, was the target of a government investigation relating to PGP.
  9105.  
  9106. Spy agencies, both foreign and domestic, play such a major role in
  9107. funding research into cryptography and in most companies and
  9108. organizations involved in communications security that it is very
  9109. difficult to know if ANY well-known cryptography algorithms, whether
  9110. or not obviously associated with the NSA as in DES or the Clipper
  9111. chip, is secure against these agencies.  
  9112.  
  9113. These agencies might have the sense to appear opposed to the use of an
  9114. algorithm which they in fact know how to break, to make a high
  9115. profile but ineffective effort to suppress such an algorithm while
  9116. quietly dealing with algorithms which they cannot break.
  9117.  
  9118. <A HREF="#Top">Return to Top</A>
  9119.  
  9120.  
  9121. <A NAME="MIME">
  9122. <H2>MIME types of AVI</H2>
  9123. </A>
  9124.  
  9125. MIME stands for Multipurpose Internet Mail Extension.  This is a
  9126. mechanism that was developed to support multimedia and other file type
  9127. attachments to Internet e-mail.  MIME defines MIME types that identify
  9128. the data type of the attachment.  The World Wide Web uses MIME types
  9129. to identify the data type of files on Web sites.
  9130.  
  9131. A MIME type consists of a type/subtype, for example
  9132.  
  9133. image/jpeg
  9134.  
  9135. for JPEG images.
  9136.  
  9137. The MIME specification (IETF RFC 2046) specifies a type of video for
  9138. video images.  The specification defines video/mpeg as the MIME type
  9139. for MPEG video.  Beyond this, the MIME specification (IETF RFC 2048)
  9140. specifies a mechanism for registering MIME types with the Internet
  9141. Assigned Number Authority (IANA).  As of 5/16/97, the following
  9142. video subtypes were registered with IANA:
  9143.  
  9144. video/mpeg
  9145. video/quicktime
  9146. video/vnd.vivo
  9147. video/vnd.motorola.video
  9148. video/vnd.motorola.videop
  9149.  
  9150. Thus, AVI has never been officially registered with IANA.  To view
  9151. the complete list of registered MIME types:
  9152.  
  9153. <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>
  9154.  
  9155. More than one MIME type appears to be used in practice for AVI files.
  9156.  
  9157. MIME types used for AVI:
  9158.  
  9159. video/avi
  9160. video/msvideo
  9161. video/x-msvideo
  9162.  
  9163. Note that according to the MIME specification the prefix "x-" indicates
  9164. an unregistered, experimental MIME type.  
  9165.  
  9166. For extensive information on MIME, visit The MIME Information Page at:
  9167.  
  9168. <A HREF="http://www.hunnysoft.com/mime/">http://www.hunnysoft.com/mime/</A>
  9169.  
  9170. <A HREF="#Top">Return to Top</A>
  9171.  
  9172. <A NAME="HTTPD">
  9173. <H2>Configuring Web Servers to Handle AVI Files</H2>
  9174. </A>
  9175.  
  9176. Web servers are configured to send a MIME type to Web browsers to indicate
  9177. what to do with a file on the Web site that the browser is viewing.
  9178. For example, the MIME type image/gif indicates to a browser that it
  9179. is viewing a GIF file.  Web servers must send the AVI MIME type(s) to
  9180. Web browsers for files installed on the Web site.  
  9181.  
  9182. There are many Web servers.  Probably many are automatically configured
  9183. to send a MIME type for AVI files (files with the extension .avi).  
  9184. The folowing explains how this configuration is done for some of the
  9185. more popular Web servers.
  9186.  
  9187. <H3>Apache httpd</H3>
  9188.  
  9189. The free Apache httpd Web server is one of the most popular (perhaps the
  9190. most popular) Web server in use (May, 1997).  This is a free implementation
  9191. of the httpd daemon for Unix machines.  Apache is frequently run on
  9192. Sun workstations used as Web servers.
  9193.  
  9194. By default, Apache httpd looks in a configuration file httpd.conf for
  9195. directives that configure Apache.  One of these directives is 
  9196. AddType
  9197.  
  9198. AddType video/avi  .avi
  9199.  
  9200. The example above would configure the Apache Web server (the httpd Unix
  9201. daemon) to send the MIME type video/avi to a Web browser for files with
  9202. the file extension .avi on the Web site.
  9203.  
  9204. The Apache httpd daemon includes a command line option -f <file-spec>
  9205. to override the default httpd.conf file name and file location.  The Web
  9206. administrator can use this to set up an alternative configuration file.
  9207.  
  9208. Apache allows users to add a file .htaccess in the root directory of
  9209. their Web site which contains directives such as AddType.  In this way
  9210. individual users may add or override the configuration of the Web
  9211. server.  For example, my Web site did not send the x-world/x-vrml MIME
  9212. type for .wrl (VRML) files.  Netscape with Live3D expected to see this
  9213. MIME type for VRML "worlds".  I created a .htaccess file with
  9214.  
  9215. addtype  x-world/x-vrml .wrl
  9216.  
  9217. With this, my browser would correctly view VRML files.  The same could be
  9218. done with AVI files.
  9219.  
  9220. For further information on Apache, see the Apache Web site:
  9221.  
  9222. <A HREF="http://www.apache.org/">http://www.apache.org/</A>
  9223.  
  9224. <H3>CERN (or W3C) httpd</H3>
  9225.  
  9226. The CERN httpd is similar to Apache.  The CERN httpd defaults
  9227. to looking in a configuration file /etc/httpd.conf  The configuration
  9228. file contains configuration directives.  One of these is
  9229. AddType
  9230.  
  9231. AddType .suffix representation encoding [quality]
  9232.  
  9233. For example:
  9234.  
  9235. AddType .html text/html 8bit 1.0
  9236.  
  9237. Extensive information on the CERN httpd web server, including a
  9238. user manual, is available at:
  9239.  
  9240. <A HREF="http://www.w3.org/Daemon/">http://www.w3.org/Daemon/</A>
  9241.  
  9242. <H3>NCSA HTTPd</H3>
  9243.  
  9244. The NCSA (National Center for Supercomputer Applications at my 
  9245. alma mater, the University of Illinois at Urbana-Champaign) HTTPd
  9246. web server is similar to Apache and CERN.
  9247.  
  9248. NCSA HTTPd looks in a resource configuration file
  9249.  
  9250. conf/srm.conf   (srm for Server Resource Map)
  9251.  
  9252. You can add AddType configuration directives to this configuration
  9253. file to add new MIME types or override the default MIME types
  9254. used by NCSA HTTPd.
  9255.  
  9256. AddType type/subtype ext1 ext2 ... extn
  9257.  
  9258. For example:
  9259.  
  9260. AddType text/plain txt doc 
  9261.  
  9262. or
  9263.  
  9264. AddType video/avi avi
  9265.  
  9266. Extensive information on NCSA HTTPd is available at:
  9267.  
  9268. <A HREF="http://hoohoo.ncsa.uiuc.edu/">http://hoohoo.ncsa.uiuc.edu</A>
  9269.  
  9270.  
  9271. <H3>Microsoft Internet Information Server</H3>
  9272.  
  9273. Microsoft Internet Information Server is a server providing
  9274. HTTP (WWW), FTP, and Gopher services for Windows NT 4.0
  9275. Server.  IIS handles the mapping from file extensions to
  9276. MIME types through the Windows NT System Registry.
  9277.  
  9278. To view and modify the MIME map:
  9279.  
  9280. 1. Run the Windows NT Registry Editor  Regedt32.exe
  9281.  
  9282. 2. Look in the Windows NT Registry Key (Folder):
  9283.  
  9284. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters\MimeMap
  9285.  
  9286. 3. The MimeMap Key  contains a series of Registry Values (entries) of form:
  9287.  
  9288. < mime type > , < filename extension > ,, < gopher type >
  9289.  
  9290. 4. On my IIS server, the sole Registry Value (entry) for avi is:
  9291.  
  9292. video/x-msvideo,avi,,>:REG_SZ:
  9293.  
  9294. :REG_SZ: identifies a text string in the Registry editor.
  9295.  
  9296. The IIS server will send the MIME type video/x-msvideo for
  9297. files with the extension AVI.
  9298.  
  9299. IIS also uses the entries:
  9300.  
  9301. video/x-ms-asf,asf,,5:REG_SZ:
  9302. video/x-ms-asf,asx,,5:REG_SZ:
  9303.  
  9304. for the Microsoft Active (or Advanced) Streaming Format files.
  9305.  
  9306. 5. IIS defaults to treating files as vanilla binary files if they
  9307. are not explicitly listed in the MIME Map.
  9308.  
  9309. 6. To add a new MIME type, in the Registry Editor
  9310.  
  9311.              - Select Add Value ... from the Edit menu.
  9312.              - Create a Registry Value of type REG_SZ (for a string)
  9313.              - Enter the MIME type information as above as the
  9314.                     NAME of the Registry Value.
  9315.              - Leave the string blank.
  9316.  
  9317.  
  9318. <H3>Netscape Enterprise Server 3.0</H3>
  9319.  
  9320. Edit the mime.types file in the server's config directory.
  9321.  
  9322. This will contains lines of the form:
  9323.  
  9324. type=video/x-msvideo  exts=avi
  9325.  
  9326. These can also be of the form:
  9327.  
  9328. type=video/x-msvideo exts=avi,vid,vvv
  9329.  
  9330. when multiple file extensions map to the same MIME type.
  9331.  
  9332. The server reads this file to associate the MIME type video/x-msvideo
  9333. with files with the file extension avi.
  9334.  
  9335. The Netscape help site is:
  9336.  
  9337. <A HREF="http://help.netscape.com/">http://help.netscape.com/</A>
  9338.  
  9339. This includes many articles on the Netscape server including a
  9340. discussion of MIME types and the mime.types file.
  9341.  
  9342. <A HREF="#Top">Return to Top</A>
  9343.  
  9344. <A NAME="Java">
  9345. <H2>AVI and Java</H2>
  9346. </A>
  9347.  
  9348. Plans for Java include a collection of Java Media and Communications
  9349. API's (Application Programmer's Interfaces).  These include the Java
  9350. Media Framework (JMF for short).  The first part of JMF is the Java
  9351. Media Player, an API for synchronization, control, processing and
  9352. presentation of compressed streaming and stored timed media including
  9353. video and audio.  A public specification for the Java Media Player has
  9354. been released.  According to this the Java Media Players will be
  9355. designed to support many media types including AVI.  A beta release of
  9356. the JMF software is scheduled for the second quarter of 1997 and may
  9357. be happening as of 5/15/97 (some rumors at least although I have not
  9358. seen the software).
  9359.  
  9360. For further information on Java Media Framework, see:
  9361.  
  9362. <A HREF="http://java.sun.com/products/java-media/jmf/index.html">
  9363. http://java.sun.com/products/java-media/jmf/index.html</A>
  9364.  
  9365.  
  9366. For further information on Java, see the Java site:
  9367.  
  9368. <A HREF="http://java.sun.com/">http://java.sun.com/</A>
  9369.  
  9370. <A HREF="#Top">Return to Top</A>
  9371.  
  9372. <A NAME="VRML">
  9373. <H2>AVI and VRML</H2>
  9374. </A>
  9375.  
  9376. The Virtual Reality Modeling Language (VRML, often pronounced
  9377. 'vermal') is the file format standard for 3D multimedia and shared
  9378. virtual worlds on the Internet.  
  9379.  
  9380. VRML supports a "node" known as a MovieTexture.  This allows a video (or
  9381. movie) to be mapped onto the surface of an object.  A MovieTexture node
  9382. is referenced by the texture field of an Appearance node.  Each object has
  9383. an Appearance node.  
  9384.  
  9385. The VRML MovieTexture node includes a url field.  The url field, as the
  9386. name suggests, is the URL (Uniform Resource Locator) of a video file
  9387. to map onto the surface of the VRML object.  The VRML 2.0 specification
  9388. requires that this video file must be in either MPEG-1 Systems (audio and
  9389. video) or MPEG-1 video only format.  AVI is not directly supported.
  9390.  
  9391. It is necessary to convert an AVI file to MPEG-1 format to use the AVI file
  9392. with VRML.  This is VRML 2.0   VRML 97 may be different.
  9393.  
  9394. For further information on VRML, see the VRML Consortium Web Site.
  9395.  
  9396. <A HREF="http://www.vrml.org/">http://www.vrml.org/</A>
  9397.  
  9398. <A HREF="#Top">Return to Top</A>
  9399.  
  9400. <A NAME="NS">
  9401. <H2>Configuring Netscape Navigator 3.01 to Display AVI Files</H2>
  9402. </A>
  9403.  
  9404. The following remarks apply to Netscape Navigator 3.01 for
  9405. Windows 3.1, Windows 95, and Windows NT 4.0.
  9406.  
  9407. Netscape Navigator displays .AVI files either through a helper application
  9408. such as the Microsoft Media Player or a Netscape Plugin that supports
  9409. AVI playback, such as the Netscape npavi16.dll and npavi32.dll plugins.
  9410.  
  9411. A helper application is a separate application, executable, that is
  9412. invoked by the Web browser.  The helper application runs as a separate
  9413. process with its own window or windows.  The helper application is not
  9414. tied to the Web page.
  9415.  
  9416. A Netscape plugin is a dynamic link library that extends the
  9417. capabilities of the Netscape Navigator.  Typically the plugin will
  9418. receive control over a region of the Web page displayed by the
  9419. browser and display its output in that region.  The output appears to
  9420. be embedded in the Web page.
  9421.  
  9422. To view and configure helper applications, select the General Preferences
  9423. item from the Options menu of Netscape Navigator.  Select the Helpers tab
  9424. of the General Preferences.  Helpers lists registered File types (MIME
  9425. types), associated actions, and file extensions.
  9426.  
  9427. Options | General Preferences | Helpers 
  9428.  
  9429. A File Type is a MIME type such as image/gif or video/avi.  MIME
  9430. stands for Multipurpose Internet Mail Extensions.  MIME types are
  9431. a mechanism to identify the data type of multimedia attachments to
  9432. Internet e-mail messages.  MIME types are also used by Web servers
  9433. to identify to Web browsers the data type of multimedia files such as
  9434. AVI files on Web sites.
  9435.  
  9436. An action can be blank, Ask User, Browser, or a helper application such
  9437. as Media Player (mplayer.exe).  The blank action appears to be used
  9438. in cases where a Plugin is installed and may be used for other cases as
  9439. well.  The Ask User action indicates to pop up a dialog asking the user
  9440. what to do: save to disk, select an application, or cancel.  Browser
  9441. indicates that the File Type is supported by the browser.  For example
  9442. gif and jpeg decoding is built directly into Netscape Navigator.
  9443.  
  9444. To view installed plugins, select About Plugins from the Help menu.  This
  9445. produces a listing of installed Plugins.  The list has an
  9446. entry for each currently installed Netscape Plugin.  For example:
  9447.  
  9448. NPAVI32 Dynamic Link Library
  9449.  
  9450. MIME Type
  9451. video/msvideo       ... other information ...
  9452. video/x-msvideo     ... other information ...
  9453.  
  9454. is the information presented for Netscape's npavi32.dll plugin in
  9455. Netscape Navigator 3.0 on Windows NT 4.0 Server (Service Pack 2).
  9456.  
  9457. Netscape Plugins are dynamic link libraries stored in a plugins
  9458. directory.  For example, \Program Files\Netscape\Navigator\Program\plugins\
  9459.  
  9460. Many Netscape plugins including the Netscape AVI plugins (npavi16.dll for
  9461. 16 bit Windows and npavi32.dll for 32 bit Windows) can be dowloaded from
  9462. the Netscape Web site.
  9463.  
  9464. <A HREF="http://home.netscape.com/">http://home.netscape.com/</A>
  9465.  
  9466. <A HREF="#Top">Return to Top</A>
  9467.  
  9468. <A NAME="Plug-ins">
  9469. <H2>Netscape Navigator Plug-ins to Play AVI Files</H2>
  9470. </A>
  9471.  
  9472. <H3>Netscape LiveVideo</H3>
  9473.  
  9474. Netscape Navigator 3.0 includes LiveVideo which supports playback of
  9475. AVI files on Windows 3.x, Windows 95, and Windows NT platforms.  This is
  9476. implemented through the dynamic link libraries npavi.dll, npavi16.dll, and
  9477. npavi32.dll.
  9478.  
  9479. <A HREF="http://home.netscape.com/">http://home.netscape.com/</A>
  9480.  
  9481. You can download the latest Navigator 3.0 with LiveVideo from Netscape.
  9482. Netscape also maintains pages with Netscape Plug-Ins, mostly from other
  9483. companies.  These include CineWeb by Digigami and MacZilla by Knowledge
  9484. Engineering which provide AVI playback.
  9485.  
  9486. To get to the Audio/Video Plug-Ins page (as of May 15, 1997), go to the
  9487. Netscape Home Page.  There is a graphical text 
  9488.  
  9489.       "Get the latest Netscape Software".
  9490.  
  9491. Underneath this text there is pulldown list of the many Netscape products.
  9492. This initially reads "Pulldown to select products".
  9493. Click on this to show the pulldown list (it is very long).
  9494. Choose "Navigator Plug-Ins".
  9495.  
  9496. Click on the Product Info icon under the pulldown list.
  9497.  
  9498. This presents a page for Inline Plug-Ins.  Select the Audio/Video option.
  9499. This brings up a page of audio/video plugins that add support for various
  9500. audio and video formats.
  9501.  
  9502. CineWeb by Digigami and MacZilla by Knowledge Engineering are both in
  9503. this list.  These plug-ins are also available directly from their
  9504. makers.
  9505.  
  9506. <H3>CineWeb by DigiGami</H3>
  9507.  
  9508. Digigami produces a Netscape Navigator Plug-in for Windows 95 and Windows
  9509. NT called CineWeb that provides playback of AVI, QuickTime, and MPEG files.
  9510.  
  9511. <A HREF="http://www.digigami.com/cineweb/">http://www.digigami.com/cineweb/</A>
  9512.  
  9513. <H3>MacZilla by Knowledge Engineering</H3>
  9514.  
  9515. MacZilla is a Netscape Plug-in for the Power Macintosh that adds AVI,
  9516. QuickTime, and MPEG playback.
  9517.  
  9518. <A HREF="http://maczilla.com/">http://maczilla.com/</A>
  9519.  
  9520.  
  9521. <A HREF="#Top">Return to Top</A>
  9522.  
  9523. <A NAME="IE">
  9524. <H2>Configuring Internet Explorer 3.0x to Display AVI Files</H2>
  9525. </A>
  9526.  
  9527. The following applies to Internet Explorer on Windows 95 and Windows
  9528. NT 4.0.  The information may also work for Windows 3.1
  9529.  
  9530. Select the Options item from the View menu of Internet Explorer.  Select
  9531. the Programs tab.  Within the Programs sheet, click on the "File Types ..."
  9532. button.
  9533.  
  9534. View (menu) | Options (item in menu) | Programs (tab) | File Types ... (button)
  9535.  
  9536. Internet Explorer 3.0x uses the Windows 95 System Registry or
  9537. Windows NT System Registry to determine what to do with a file.  This is
  9538. the same mechanism that the Windows 95 or NT 4.0 Desktop uses to
  9539. determine which application to use when a user double clicks on a file
  9540. icon.  This is achieved through a Content or MIME type "value" (name
  9541. and data pair) in the registry.  See the section on how AVI is handled
  9542. in Windows 95 for more details.
  9543.  
  9544. The "File Types ..." brings up a list of file types and associated
  9545. actions.  This can be used to edit and modify the actions.
  9546.  
  9547. <A HREF="#Top">Return to Top</A>
  9548.  
  9549.  
  9550. <A NAME="Word"><H2>How to embed an AVI file in a Microsoft Word Document?</H2></A>
  9551.  
  9552. Media Player acts as an OLE (Object Linking and Embedding) server.  This means
  9553. that application such as Microsoft Word that support OLE can embed
  9554. a movie.
  9555.  
  9556. With Word 6.0 (Microsoft seems to keep changing the user interface for
  9557. Microsoft Word so I need to qualify which version of Microsoft Word),
  9558.  
  9559. 1. Select Insert from the menu bar.  This pulls down a long menu.
  9560.  
  9561. 2. Select Object... from the pulldown menu.  This pops up a dialog box.
  9562.  
  9563. 3. Select the Create from File tab.
  9564.  
  9565. 4. Select the AVI file from the file browser.
  9566.  
  9567. 5. Select OK
  9568.  
  9569. This inserts a link to the AVI file at the current location within the
  9570. Microsoft Word document that you are editing.  The first frame of the
  9571. AVI file is displayed.  Double click on the first frame of the AVI
  9572. file to start playback.
  9573.  
  9574. NOTE: With Word 6.0, this sequence of Word commands embeds a graphic
  9575. of the first frame of the AVI file along with instructions to invoke
  9576. Media Player on an external file in the Word document.  The binary AVI
  9577. file remains separate.  Only the file specification and a graphic
  9578. image of the first frame are actually inserted in the Word document.
  9579. The on-line help documentation with Word 6.0 is misleading or outright
  9580. false on this point.
  9581.  
  9582. Other Windows applications that act as OLE clients will be able to do
  9583. similar things with AVI files.
  9584.  
  9585. <A HREF="#Top">Return to Top</A>
  9586.  
  9587.  
  9588.  
  9589. <A NAME="Size">
  9590. <H2>Size limits on AVI files</H2>
  9591. </A>
  9592.  
  9593. An AVI file cannot be larger than the disk partition that
  9594. contains it.  Different filesystems have different maximum sizes
  9595. for disk partitions.
  9596.  
  9597. Under the 16 bit FAT (File Allocation Table) filesystem used by DOS,
  9598. disk partitions are limited to a maximum size of 2GB (Gigabytes).  In
  9599. DOS, a hard disk is divided into 512 byte sectors.  DOS Version 4
  9600. added support for 32 bit sector numbers.  2 raised to the 32 is roughly 4
  9601. billion, multiply this times 512 bytes in a sector to get the 2GB
  9602. limit.  FAT16 partitions are limited to 2GB, necessarilly limiting AVI
  9603. files to a maximum size of 2GB as well.
  9604.  
  9605. DOS versions prior to DOS 4 limited disk partitions to 32MB (Megabytes).
  9606. These earlier versions of DOS used 16 bit sector numbers in all I/O
  9607. routines.  2 raised to the 16th power is 64K, multiply this by 512 bytes
  9608. in a sector to get the 32MB limit.
  9609.  
  9610. Partitions using other filesystems such as the Windows NT File Systems (NTFS)
  9611. may not be subject to the 2GB limit.
  9612.  
  9613. The new FAT32 filesystem available with Windows 95 permits partitions larger
  9614. than 2GB.  Unfortunately, a 1 or 2 GB file size limit is hard wired
  9615. into some of the code for the Microsoft Video for Windows.  In
  9616. particular, the RIFF parser code and MCIAVI (the MCI driver for
  9617. AVI files) contain a 1 GB or 2 GB limit hard wired into them.
  9618.  
  9619. Microsoft's Active Movie, which replaces Video for Windows, contains
  9620. fixes for the 1-2 GB size limits hard wired into Video for Windows.
  9621.  
  9622. Microsoft's OEM Service Release 2 (OSR2) incorporates FAT32.  Earlier
  9623. OEM releases and the retail version of Windows 95 (as of 2/15/97) do
  9624. not include FAT32.  Microsoft sayeth: "Neither MS-DOS 6.x nor retail
  9625. versions of Windows 95 will recognize a FAT32 volume".  To see if you
  9626. have OSR2, go to the Control Panel, select the System icon, and click
  9627. the General tab.  It will say "4.00.950b".  If there is no trailing
  9628. letter or "4.00.950a", then you do not have OSR2.
  9629.  
  9630. OEM versions of Windows 95 cannot be purchased separately as off the
  9631. shelf software.  They are bundled on systems created by companies
  9632. like Dell, Compaq, and so forth.  The retail version(s?) of Windows 95
  9633. can be purchased at software stores or through software resellers.
  9634.  
  9635. I believe that there was some sort of beta release of FAT32 prior to
  9636. OSR2, either a special version of Windows 95 or a way to install FAT32
  9637. in versions of Windows 95 that did not come with FAT32.
  9638.  
  9639. OSR2 and FAT32 seem to have some problems.  Some applications
  9640. such as Corel's Paradox 7 fail on FAT32 volumes. See:
  9641.  
  9642. <A HREF="http://www.bugnet.com/">Bug Net Web Site</A>
  9643.  
  9644. or search the Microsoft Knowledge Base for the keyword OSR2.
  9645.  
  9646. The header for an AVI file includes a 32 bit AVI file length, imposing
  9647. a restriction of 4GB on the AVI file size.  
  9648.  
  9649. The Open Digital Media (OpenDML) Consortium has defined 
  9650. OpenDML AVI File Format Extensions to add support for 
  9651. professional video functionalities to AVI.  This includes
  9652. a fix for the 4 GB limit.  Microsoft has incorporated this
  9653. extended version of AVI into ActiveMovie 1.0 from
  9654. Microsoft.
  9655.  
  9656. <A HREF="#Top">Return to Top</A>
  9657.  
  9658.  
  9659. <A NAME="Corel">
  9660. <H2>How to Fix Problem with CorelMove4.0 AVI Files</H2>
  9661. </A>
  9662.  
  9663. CorelMove 4.0 exports AVI files that cannot be played using
  9664. Video for Windows 1.1 or the Windows 95 Video for Windows or
  9665. ActiveMovie 1.0.  
  9666.  
  9667. Corel has a fix file that can be downloaded from their software
  9668. library. The file is called "cmvfix.exe."
  9669.  
  9670. The URL is...
  9671. <A HREF="http://www.corel.com/products/graphicsandpublishing/draw4/library.htm">http://www.corel.com/products/graphicsandpublishing/draw4/library.htm</A>
  9672.  
  9673. Description text from the Web page...
  9674.  
  9675. Title: CMVFIX.EXE For CorelMOVE 4.0 AVI export correction
  9676.  
  9677. CMVFIX.EXE by Corel Corporation 1994 contains these
  9678. compressed files: CMV4FIX.EXE is a compressed file that
  9679. contains fixes for CorelMOVE 4.0's AVI file exports. These
  9680. are new replacement .DLLs. AVI4FIX.EXE is a Windows
  9681. application that will allow you to correct older CorelMOVE
  9682. 4.0 AVI files to work with MS-Video For Windows 1.1. If you
  9683. create an AVI file AFTER installing the CMV4FIX update that
  9684. accompanies this fix, then you will NOT be required to run
  9685. this application. This will change the RLE compression in
  9686. the CorelMOVE AVI files.
  9687.  
  9688. <A HREF="#Top">Return to Top</A>
  9689.  
  9690. <A NAME="Biblio">
  9691. <H2>Sources of Information on AVI and Related Topics:</H2>
  9692. </A>
  9693.  
  9694. TECHNICAL
  9695.  
  9696. How to Digitize Video
  9697. by Nels Johnson 
  9698. with Fred Gault and Mark Florence
  9699. John Wiley and Sons, New York, 1994
  9700. ISBN 0-471-01440-0
  9701.  
  9702. Article
  9703. "Digital Video File Formats"
  9704. by Mark Florence
  9705. Dr. Dobbs Sourcebook of Multimedia Programming, Winter 1994
  9706.  
  9707.  
  9708. Microsoft Software Development Kits (SDK) 
  9709. and Device Driver Kits (DDK)
  9710.  
  9711. Microsoft's SDK's and DDK's are included with
  9712. various products such as Visual C/C++ and in a
  9713. subscription to the Microsoft Developer Network.
  9714.  
  9715. The Microsoft Developer Network (MSDN) is a service
  9716. where Microsoft sends CD-ROM's with Microsoft
  9717. Operating Systems, Software Development
  9718. Kits, Device Driver Kits, and miscellaneous
  9719. other Microsoft products to the developer.
  9720. A subscription is usually for one year
  9721. and usually includes several full releases
  9722. of sets of CD's.  The Microsoft Developer
  9723. Network CD's usually include Beta releases
  9724. of various API's and new products that 
  9725. Microsoft is developing.  See the
  9726. Microsoft Web site
  9727.  
  9728. <A HREF="http://www.microsoft.com/">http://www.microsoft.com/</A>
  9729.  
  9730. for more information on the Microsoft
  9731. Developer Network.
  9732.  
  9733. Windows 3.1 Software Development Kit (SDK)
  9734. Win32 Software Development Kit (SDK)
  9735. Video for Windows Software Development Kit (SDK)
  9736.  
  9737. Windows 3.1 Device Driver Kit (DDK)
  9738. Windows NT Device Driver Kit (DDK)
  9739.  
  9740. specifically,
  9741.  
  9742. Windows Multimedia Programmer's Guide
  9743.     
  9744.       - includes overview of RIFF
  9745.  
  9746.  
  9747. Video for Windows Software Development Kit (SDK) Programmer's Guide
  9748.  
  9749.       - includes overview of AVI
  9750.  
  9751.  
  9752. RIFF Specification is available on World Wide Web at (11/7/96):
  9753.  
  9754. <A HREF="http://www.seanet.com/HTML/Users/matts/riffmci/riffmci.htm">
  9755. http://www.seanet.com/HTML/Users/matts/riffmci/riffmci.htm</A>
  9756.  
  9757. DirectX Software Development Kit (SDK)
  9758.     - DirectX 3 SDK Contents
  9759.     - ActiveMovie 1.0 SDK Contents
  9760.  
  9761.     included with Visual C++ 5.0 Professional Edition and other
  9762. Microsoft products.
  9763.  
  9764.  
  9765. Practical Digital Video with Programming Examples in C
  9766. Phillip E. Mattison
  9767. John Wiley and Sons, Inc.
  9768. New York, (c) 1994
  9769. ISBN: 0-471-31016-6
  9770.  
  9771.  
  9772. A Technical Introduction to Digital Video
  9773. Charles A. Poynton
  9774. John Wiley and Sons, Inc.
  9775. New York, (c) 1996
  9776. ISBN: 0-471-12253-X
  9777.  
  9778.  
  9779. Multimedia Developer's Guide
  9780. Paul Perry
  9781. SAMS Publishing: A Division of Macmillan Computer Publishing
  9782. Indianapolis, IN  1994
  9783. ISBN: 0-672-30160-1
  9784. Library of Congress Catalog Number: 93-86963
  9785.  
  9786. Information on Windows Multimedia using MCI, AVI, and Video
  9787. for Windows.  Dumps of Windows SDK references.
  9788.  
  9789.  
  9790. Video Demystified: A Handbook for the Digital Engineer
  9791. by Keith Jack
  9792. HighText Publications
  9793. Solana Beach, CA  
  9794. 1ed (C) 1993 by Brooktree Corporation
  9795. ISBN: 1-878707
  9796. Library of Congress Catalog No.: 93-14705
  9797.  
  9798. A popular highly technical book on analog and digital video
  9799. technology.  Not much on AVI, Video for Windows, or PC Video
  9800. but plenty of details on NTSC, PAL, SECAM, and other video
  9801. topics.  Now in a 2nd edition with new information on 
  9802. MPEG and H.26x
  9803.  
  9804.  
  9805. Publishing Digital Video, 2nd. Edition
  9806. by Jan Ozer
  9807. Academic Press, 1997
  9808. Price: $34.95
  9809.  
  9810. Covers video capture on PC/Windows, video editing, windows
  9811. video compression, and MPEG-1 compression for digital video 
  9812. and multimedia authors.  Includes chapters on streaming audio
  9813. and streaming video.
  9814.  
  9815.  
  9816. The Windows NT Device Driver Book
  9817. A Guide for Programmers
  9818. by Art Baker (Cydonix Corporation)
  9819. Prentice Hall, Upper Saddle River, New Jersey, 1997
  9820. Price: $44.95
  9821.  
  9822. An introduction to Windows NT Device Drivers with simple examples and
  9823. source code.  Does not use video display adapter drivers or video
  9824. capture drivers as examples.  Sticks with simple examples.  
  9825.  
  9826.  
  9827. Microsoft provides a number of detailed documents for the
  9828. Microsoft NetShow product in Microsoft Word format.
  9829.  
  9830. Microsoft NetShow Content Creation Authoring Guide (CCAG)
  9831.  
  9832. Microsoft NetShow Tools Guide
  9833.  
  9834. Microsoft NetShow System Administration Guide
  9835.  
  9836. See the Microsoft NetShow Web Site:
  9837.  
  9838. <A HREF="http://www.microsoft.com/netshow/">http://www.microsoft.com/netshow/</A>
  9839.  
  9840.  
  9841. BUSINESS and POP COMPUTING
  9842.  
  9843. "The 800-Pound Gorilla's New Toy: Microsoft's new video software is
  9844. coming on strong" Business Week, May 11, 1998, p. 60
  9845.  
  9846.     - article on NetShow 3.0
  9847.        
  9848.  
  9849. "Set-top boxing" by Edward W. Desmond, Fortune, November 10, 1997, p. 91
  9850.  
  9851.      - Microsoft and WebTV (pretty thin)
  9852.  
  9853. "Real Revolution" by Robert H. Reid, Wired, October, 1997, p. 122
  9854.  
  9855.      - All about Progressive Networks (now renamed
  9856. RealNetworks) and its CEO Rob Glaser, the purveyors of
  9857. RealAudio streaming audio and RealVideo streaming video.
  9858.  
  9859. <A HREF="#Top">Return to Top</A>
  9860.  
  9861. <A NAME="News">
  9862. <H2>Internet Newsgroups with Information on AVI and Video</H2>
  9863.  
  9864. Internet or USENET Newsgroups are a good source of current
  9865. information on AVI and video.  Some useful newsgroups are:
  9866.  
  9867. VIDEO SPECIFIC NEWSGROUPS
  9868.  
  9869. <A HREF="news:rec.video.desktop">rec.video.desktop</A>
  9870.  
  9871. <A HREF="news:comp.os.ms-windows.video">comp.os.ms-windows.video</A>
  9872.  
  9873. <A HREF="news:comp.sys.ibm.pc.hardware.video">comp.sys.ibm.pc.hardware.video</A>
  9874.  
  9875. <A HREF="news:comp.dcom.videoconf">comp.dcom.videoconf</A>  Videoconferencing
  9876.  
  9877.  
  9878. OTHER USEFUL NEWSGROUPS
  9879.  
  9880. <A HREF="news:comp.multimedia">comp.multimedia</A>
  9881.  
  9882.       Broad coverage of multimedia including video.
  9883.  
  9884. <A HREF="news:comp.compression">comp.compression</A>
  9885.  
  9886.       Both technical discussions of compression algorithms and
  9887. codecs, as well as end user issues such as utilities and
  9888. configuration issues.
  9889.  
  9890. <A HREF="news:alt.binaries.multimedia.utilies">alt.binaries.multimedia.utilities</A>
  9891.  
  9892.       Utilities for handling multimedia.
  9893.  
  9894. <A HREF="#Top">Return to Top</A>
  9895.  
  9896. <A NAME="VideoStandards">
  9897. <H2>Where to Find Information on Audio and Video Standards Other Than AVI</H2>
  9898. </A>
  9899.  
  9900. <H3>Apple QuickTime</H3>
  9901.  
  9902. Apple maintains a Web site on its QuickTime multimedia file format and
  9903. family of products.
  9904.  
  9905. <A HREF="http://www.apple.com/quicktime/">http://www.apple.com/quicktime/</A>
  9906.  
  9907. <H3>ISO (International Organization for Standardization) MPEG</H3>
  9908.  
  9909. The International Organization for Standardization, usually called ISO,
  9910. produces a family of digital audio, video, and multimedia standards
  9911. known as MPEG, Motion Pictures Expert Groups.  The MPEG standards include
  9912. MPEG-1, MPEG-2, MPEG-4, and MPEG-7.
  9913.  
  9914. The official ISO MPEG Web site is:
  9915.  
  9916. <A HREF="http://drogo.cselt.it/mpeg/">http://drogo.cselt.it/mpeg/</A>
  9917.  
  9918. Tristan Savatier's comprehensive MPEG Web site is:
  9919.  
  9920. <A HREF="http://www.mpeg.org/">http://www.mpeg.org/</A>
  9921.  
  9922.  
  9923. <A HREF="#Top">Return to Top</A>
  9924.  
  9925. <A NAME="Names">
  9926. <H2>Microsoft's Changing Names</H2>
  9927. </A>
  9928.  
  9929. Microsoft has an annoying tendency to rename API's, software
  9930. components, products, and perhaps even entire companies.  One has to
  9931. wonder if this is good marketing or a symptom of politics within the
  9932. colossus.  This has happened to a number of video and video related
  9933. products, most notably ActiveMovie.
  9934.  
  9935. List of Changed Names
  9936. ---------------------
  9937.  
  9938. Quartz             ( original codename for ActiveMovie )
  9939. Active Movie 1.0   ( new video software to replace Video for Windows)
  9940. Active Movie 2.0 ===> DirectShow 2.0    ( March, 1997 )
  9941.  
  9942. The change to DirectShow seems analagous to Ford renaming the Mustang
  9943. the Putt-Putt Mobile in 1967.
  9944.  
  9945. ASF  (Active Streaming Format)  (new video file format, to replace AVI?)
  9946. ASF  (Advanced Streaming Format)   Active is dropped in Sept. 1997
  9947.  
  9948. Somebody doesn't like Active????
  9949.  
  9950. (Microsoft's Streaming Video Product)
  9951. Microsoft NetShow ==> NetShow Services  (late 1998?)
  9952.  
  9953. (new Operating System to replace Windows 95)
  9954. Memphis  ==> Windows 97  ==>  Windows 98
  9955.  
  9956. Progressive Networks, marketers of RealAudio audio compression
  9957. for the Internet, was founded by Rob Glaser, a former top executive
  9958. at Microsoft.  In late 1997, Microsoft invested in Progressive
  9959. Networks, reportedly acquiring an option to acquire 23% of the 
  9960. company.  Progressive Networks renamed itself RealNetworks, possibly
  9961. to improve the prospects of its Initial Public Offering (IPO).
  9962.  
  9963. Progressive Networks  (that was then)
  9964. RealNetworks          (this is now  12/20/97)
  9965.  
  9966. RealNetworks has licensed and markets Iterated Systems fractal video
  9967. codec under the name RealVideo.  Iterated used to call their video
  9968. codec ClearVideo.
  9969.  
  9970. ClearVideo            (that was then)
  9971. RealVideo             (this is now  12/20/97)
  9972.  
  9973. <A HREF="#Top">Return to Top</A>
  9974.  
  9975.  
  9976. <A NAME="Business">
  9977. <H2>Business and Economics of AVI</H2>
  9978. </A>
  9979.  
  9980. <H3>Practical Business Uses of AVI</H3>
  9981.  
  9982. ADVERTISING
  9983.  
  9984. Probably the most practical use of digital video on computers is for
  9985. short advertisements such as movie trailers on Web sites and packaged
  9986. with other materials.  Short means in the range of 30 seconds to a few
  9987. minutes.
  9988.  
  9989. Bandwidth restrictions and the discomfort of watching video on
  9990. computer monitors at short distances for extended
  9991. periods of time probably insure that relatively short video clips that
  9992. contain a recognizable story will dominate the successful use of
  9993. digital video on computers and especially Web sites.
  9994.  
  9995. The common practice of putting movie trailers on promotional Web
  9996. sites for motion pictures provides a good illustration of this trend.
  9997. Movies have tended to use QuickTime, most prominently with the highly
  9998. successful trailer for Star Wars Episode I: The Phantom Menace, rather
  9999. than AVI or ASF (Windows Media).
  10000.  
  10001. Such advertisements could also include product demonstrations.
  10002.  
  10003. Talking Heads video is rarely interesting and entertaining although
  10004. inexpensive to produce.
  10005.  
  10006.  
  10007. <H3>Business and Economics of Standards</H3>
  10008.  
  10009. AVI is a de facto industry standard.  Standards in general, and 
  10010. de facto standards in particular, play a big role in the business,
  10011. economics, and politics of information technology and 
  10012. Microsoft and Intel (WinTel) in particular.  
  10013.  
  10014. <A HREF="http://www.gtwassociates.com/">GTW Associates</A> is
  10015. a consulting firm specializing in standards and related issues.
  10016. As of May 6, 1999 their Web site contained many excellent papers
  10017. and resources on business, political, and economic issues of
  10018. standards.  GTW Associates clients, according to the Web site, include
  10019. Microsoft, the colossus itself.
  10020.  
  10021. <A HREF="http://www.gtwassociates.com/">http://www.gtwassociates.com/"</A>
  10022.  
  10023. <A HREF="http://www.santafe.edu/arthur/">W. Brian Arthur</A> is an
  10024. economist who has written extensively on increasing returns for
  10025. adoption, standards, and related topics.  
  10026.  
  10027. <A HREF="http://www.santafe.edu/arthur/">http://www.santafe.edu/arthur/</A>
  10028.  
  10029. <A HREF="http://www.rahul.net/jfm/Monopoly_2.pdf">Standard Based
  10030. Monopolies and Near Monopolies: The WinTel Example</A> 
  10031. (in the Adobe Acrobat PDF format) is my personal
  10032. opinion about how Microsoft and Intel, and many other computer
  10033. related businesses, function as <I>near</I> monopolies.  
  10034.  
  10035. <A HREF="http://www.adobe.com/prodindex/acrobat/readstep.html"><IMG SRC="http://www.rahul.net/jfm/images/getacro.gif" ALT="Get Acrobat Reader"></A>
  10036.  
  10037.  
  10038. <H3>Antitrust</H3>
  10039.  
  10040. <A HREF="http://www.reason.org/">Reason Foundation</A>
  10041. which publishes Reason magazine has substantial coverage and links
  10042. on the Microsoft antitrust saga.  Reason is a libertarian
  10043. organization with a distinct anti-antitrust or pro-Microsoft
  10044. bias, depending on how one looks at it.  
  10045.  
  10046. <A HREF="http://www.reason.org/">http://www.reason.org/</A>
  10047.  
  10048.  
  10049. <A HREF="http://www.cptech.org/">The Consumer Project on Technology</A>
  10050. maintains an extensive Web site with extensive information on the legal,
  10051. political, and economic issues of technology.  This includes 
  10052. a large section on Microsoft and the antitrust cases against Microsoft.
  10053. Despite an obvious political agenda, this is a very comprehensive site.
  10054.  
  10055. <A HREF="http://www.cptech.org/">http://www.cptech.org/</A>
  10056.  
  10057. <A HREF="#Top">Return to Top</A>
  10058.  
  10059. <A NAME="Glossary">
  10060. <H2>GLOSSARY</H2>
  10061. </A>
  10062.  
  10063. <P>
  10064. A quick guide to the acronyms, jargon, and techno-babble related
  10065. to AVI, Video for Windows, ActiveMovie, DirectShow, desktop and
  10066. networked video.
  10067.  
  10068. <DL>
  10069.  
  10070. <DT>ACM
  10071. <DD>Audio Compression Manager.  The Windows Multimedia software
  10072. component that manages audio codecs (compressor/decompressors).
  10073. ACM can also be considered an API specification.  A codec must
  10074. conform to the implicit ACM specification to work with
  10075. Windows Multimedia.
  10076.  
  10077. <DT>ActiveMovie
  10078. <DD>Microsoft software component for handling and displaying
  10079. digital video, including AVI, MPEG, and QuickTime, for
  10080. Windows 95 and Windows NT 4.0.  Intended to replace
  10081. Video for Windows.  Renamed DirectShow.
  10082.  
  10083. <DT>AC-3
  10084. <DD>Audio Compression-3.  Usually marketed as Dolby Digital.  
  10085. A digital audio compression format from Dolby Laboratories.
  10086. Incorporates "5.1" audio channels: left, right, center, left
  10087. surround, right surround, and a base channel for more realistic
  10088. three-dimensional sound.
  10089. Used in DVD, GA-HDTV, laser discs, and movie theaters.
  10090.  
  10091. <DT>ADSL
  10092. <DD>Asymmetric Digital Subscriber Line.  A technology and standard to
  10093. enable much higher bitrates between telephone company central offices
  10094. and homes over the already installed copper telephone lines.  One of
  10095. a family of such technologies and standards collectively referred to
  10096. as xDSL.  May provide sufficient bandwidth for network video to
  10097. homes.  
  10098.  
  10099. <DT>algorithm
  10100. <DD>A mathematical rule or procedure for solving a problem.
  10101.  
  10102. <DT>ANSI
  10103. <DD>American National Standards Institute.  A private not-for-profit
  10104. membership organization that administers the private sector voluntary
  10105. standards system in the United States.  It is the dues paying member
  10106. and sole U.S. representative to the International Organization
  10107. for Standardization (ISO) and the International Electrotechnical
  10108. Commission (IEC).
  10109.  
  10110. <DT>ASCII
  10111. <DD>American Standard Code for Information Interchange.  This is the
  10112. most widely used character set for representing Latin characters and
  10113. certain control codes using 7 bit codes, that is 0 to 127 (decimal)
  10114. or 0x00 to 0x7f (hexadecimal).  ASCII is an American National Standard:
  10115. ANSI X3.4-1968 ASCII Character Set.  There is an updated
  10116. standard: ANSI X3.110-1983 ASCII Character Set Revised.
  10117.  
  10118. <DT>AVI
  10119. <DD>Audio Video Interleave.  Microsoft format for digital audio, video,
  10120. and other multimedia data.  
  10121.  
  10122. <DT>ASD
  10123. <DD>Advanced Streaming Format (ASF) Stream Descriptor.  .asd
  10124. files are files that specify encoding parameters for the ASF
  10125. Real Time Encoder, one of the NetShow Tools.
  10126.  
  10127. <DT>ASF
  10128. <DD>Advanced Streaming Format (formerly Active Streaming Format).
  10129. A Microsoft file and data stream format for multimedia data
  10130. including audio, video, still images, and other data types.
  10131. Also referred to as Windows Media format.
  10132.  
  10133. <DT>ASX
  10134. <DD>Active stream redirector (.asx) file.  .asx files provide
  10135. information that a NetShow Player needs to receive either
  10136. unicast or multicast ASF streams.  An .asx file may be encrypted
  10137. or not.  An unencrypted .asx file is simply a text file that 
  10138. contains the URL's for the ASF streams.  A .asx file is not a
  10139. .asf file.
  10140.  
  10141. <DT>ASIC
  10142. <DD>Applications Specific Integrated Circuit.  A silicon chip
  10143. customized for a specific application such as video compression.
  10144.  
  10145. <DT>ATM
  10146. <DD>Asynchronous Transfer Mode.  Networking technology and standard
  10147. frequently used for implementing high-speed Wide Area Networks over
  10148. fiber optic cables.
  10149.  
  10150. <DT>Bitrate
  10151. <DD>Bitrate may refer to bits per pixel for compressed images or
  10152. bits per second (such as 128 Kilobits/second) for compressed
  10153. video.
  10154.  
  10155. <DT>BMP
  10156. <DD>Windows Bitmap file format.  The most common type of still
  10157. image on the PC.  There are also OS/2 BMP still image files.
  10158. The OS/2 BMP file format is similar but not identical to the
  10159. Microsoft Windows BMP file format.
  10160.  
  10161. <DT>CBR
  10162. <DD>Constant Bit Rate.  In video coding, the bitrate of the compressed
  10163. video is fixed at a certain rate.  This usually results in variable
  10164. perceived quality of the video.
  10165.  
  10166. <DT>CCIR
  10167. <DD>The International Radio Consultative Committee.  An international
  10168. body responsible for a number of video standards, e.g. CCIR-601.  
  10169. Renamed ITU-R (International Telecommunications Union - Radio Standardization 
  10170. Sector).
  10171.  
  10172. <A NAME="CCIR601">
  10173. <DT>CCIR-601
  10174. </A>
  10175. <DD>This is now "Recommendation ITU-R BT.601-5, Studio encoding 
  10176. parameters of digital television for standard 4:3 and wide screen
  10177. 16:9 aspect ratios".  This is a standard for high quality 
  10178. uncompressed digital video used in studios and video production.
  10179. CCIR-601 digital video is frequently stored on D1 digital video
  10180. tapes.
  10181.  
  10182. <DT>CCITT
  10183. <DD>The International Telephone and Telegraph Consultative Committee.
  10184. An international body responsible for a number of communications
  10185. standards, e.g. H.261.  Renamed ITU-T (International Telecommunications
  10186. Union - Telecommunications Standardization Sector).
  10187.  
  10188. <DT>CMOS
  10189. <DD>Complimentary Metal Oxide Semiconductor.  A semiconductor
  10190. process technology for making chips.  Most personal computer and
  10191. consumer electronics chips are some variant of CMOS.  Other
  10192. semicondcutor technologies include BiCMOS and GaAs (Gallium Arsenide).
  10193. CMOS is also used to refer a permanent 64 byte piece of CMOS RAM on IBM
  10194. Personal Computer (PC) compatible computers that contains various 
  10195. parameters used by the PC BIOS, Basic Input Output System.
  10196.  
  10197. <DT>codec
  10198. <DD>short for <B>compressor decompressor</B>.  Usually a software
  10199. or hardware component that compresses and/or decompresses audio or
  10200. video data.  A hardware codec is usually a silicon chip.
  10201.  
  10202. <DT>DCT
  10203. <DD>Discrete Cosine Transform.  Mathematical transform used in
  10204. digital video compression.  Used in JPEG, MPEG-1, MPEG-2, H.261, H.263,
  10205. H.263+, and DV digital video compression.
  10206.  
  10207. <DT>de facto
  10208. <DD>by fact.  
  10209.  
  10210. <DT>de jure
  10211. <DD>by law.  
  10212.  
  10213. <DT>Device Driver
  10214. <DD>A software component that handles direct interaction with
  10215. a piece of hardware.
  10216.  
  10217. <DT>DirectShow
  10218. <DD>Microsoft software component for handling and displaying
  10219. digital video, including AVI, MPEG, and QuickTime, for
  10220. Windows 95 and Windows NT 4.0.  Intended to replace
  10221. Video for Windows.  Originally codenamed Quartz, then released
  10222. as ActiveMovie.  Now DirectShow.
  10223.  
  10224. <DT>DLL
  10225. <DD>Dynamic Link Library.  A type of software library in
  10226. Microsoft Windows.
  10227.  
  10228. <DT>DV
  10229. <DD>DV is a format for storing digital audio and video
  10230. used by by the DV-standard digital video cameras such as
  10231. the DVCam and DVCPro cameras.
  10232.  
  10233. <DT>DVD
  10234. <DD>Digital Versatile Disc.  (Digital Video Disc at one time.)
  10235. High density optical storage discs.
  10236. DVD used to distribute movies using MPEG-2 digital video and either
  10237. Dolby Digital (AC-3) or MPEG-2 (Philips MUSICAM) digital audio.
  10238.  
  10239. <DT>EBU
  10240. <DD>European Broadcasting Union.
  10241.  
  10242. <DT>EIA
  10243. <DD>Electronics Industry Association.  A trade organization responsible
  10244. for a number of standards.  For example, EIA Standard EIA-189-A, July
  10245. 1976, Encoded Color Bar Signal
  10246.  
  10247. <A NAME="Entropy">
  10248. <DT>entropy coding
  10249. </A>
  10250. <DD>Entropy coding is a fancy name for a variety of methods that 
  10251. seek to compress digital data by representing frequently occuring
  10252. patterns with few bits and rarely occuring patterns with many bits.
  10253. Examples include run length encoding, Huffman coding, and arithmetic
  10254. coding.
  10255.  
  10256.  
  10257. <DT>FCC
  10258. <DD>Federal Communications Commission.  The United States government
  10259. agency that regulates the television industry.  Established the NTSC
  10260. television standard and the GA-HDTV high definition television standard.
  10261.  
  10262. <DT>FTC
  10263. <DD>Federal Trade Commission.  A United States government agency
  10264. that enforces antitrust laws amongst other things.
  10265.  
  10266. <DT>GA-HDTV
  10267. <DD>Grand Alliance - High Definition Television.  The new United
  10268. States standard for High Definition Television based on the
  10269. MPEG-2 digital video compression format and the Dolby Digital (AC-3)
  10270. audio compression format.
  10271.  
  10272. <DT>H.261
  10273. <DD>An ITU-T standard for digital video compression for videoconferencing.
  10274. Uses the Discrete Cosine Transform (DCT).  ITU-T Recommendation H.261 (1993)
  10275. "Video codec for audiovisual services at px64 kbit/s".
  10276.  
  10277. <DT>H.263
  10278. <DD>An ITU-T standard for digital video compression for videoconferencing.
  10279. Uses the Discrete Cosine Transform.  ITU-T Recommendation H.263 (199x) 
  10280. "Video Coding for Low Bitrate Communication"
  10281.  
  10282. <DT>H.320 
  10283. <DD>An ITU-T standard for digital videoconferencing over
  10284. ISDN.  ITU-T Recommendation H.320 (1993) "Narrow-band ISDN visual
  10285. telephone systems and terminal equipment".
  10286.  
  10287. <DT>H.323
  10288. <DD>An ITU-T standard for digital videoconferencing over TCP/IP networks.
  10289.  
  10290. <DT>H.324
  10291. <DD>An ITU-T standard for digital videoconferencing over telephone lines.
  10292. ITU-T Recommendation H.324 (1995) "Terminal for low bitrate multimedia
  10293. communication".
  10294.  
  10295. <DT>HDTV
  10296. <DD>High Definition Television.  Various schemes to increase the
  10297. resolution of broadcast television.  The original schemes were
  10298. analog, but HDTV now refers almost exclusively to various digital
  10299. audio and video technologies and standards.
  10300.  
  10301. <DT>IA
  10302. <DD>Intel Architecture.  This is the instruction set architecture of the
  10303. series of chips used in IBM PC-compatible computers.  This includes
  10304. the 8080, 8086, 80286, 80386, 80486, Pentium (formerly 80586 or P5),
  10305. Pentium Pro (formerly 80686 or P6), Pentium with MMX, Pentium II
  10306. (formerly Pentium Pro with MMX), Pentium II Xeon (TM), Celeron (TM), and
  10307. Pentium III.
  10308. <P>
  10309.  
  10310. The Intel Architecture is a de facto standard.  Intel has repeatedly
  10311. added new instructions and features to the architecture, although so
  10312. far maintaining backward compatibility with previous versions.  New
  10313. instructions such as the MMX instructions and the Streaming SIMD
  10314. Extensions in the Pentium III can be used to accelerate video codecs
  10315. such as are used in AVI files.  Advanced Micro Devices (AMD), National
  10316. Semiconductor's Cyrix division, and Integrated Device Technology (IDT)
  10317. manufacture processor chips compatible with the Intel Architecture.
  10318.  
  10319.  
  10320. <DT>IEC
  10321. <DD>International Electrotechnical Commission.  The International
  10322. Organization for Standardization (ISO) and the IEC work closely together
  10323. to standardize information technology through the Joint Technical 
  10324. Committee 1 (JTC1).  The MPEG digital video standards activities
  10325. fall under the umbrella of JTC1.
  10326.  
  10327. <DT>IEEE
  10328. <DD>Institute of Electrical and Electronics Engineers.  An organization
  10329. of engineers responsible for a number of electrical and electronics
  10330. industry standards.  IEEE is an international professional society
  10331. headquartered in the United States.
  10332.  
  10333. <DT>IETF
  10334. <DD>Internet Engineering Task Force.  The body responsible for managing
  10335. and establishing protocols for the Internet.
  10336.  
  10337. <DT>IPR
  10338. <DD>Intellectual Property Rights.  This usually refers to four major
  10339. categories of intellectural property: patents, copyrights, trademarks,
  10340. and trade secrets.
  10341.  
  10342. <DT>ISO
  10343. <DD>International Organization for Standardization.  ISO is a
  10344. non-governmental organization that was established in 1947.  ISO works
  10345. closely with the International Electrotechnical Commission (IEC) and
  10346. the International Telecommunications Union (ITU).  Note that ISO is <B>
  10347. not</B> an acronym.  It is derived from the Greek isos for "equal".
  10348. Responsible for many audio, video, and telecommunications standards.
  10349.  
  10350. <DT>ITU
  10351. <DD>International Telecommunications Union.  The ITU has been an
  10352. agency of the United Nations since 1948.  It is older, dating back
  10353. to 1865.  It may be the world's oldest intergovernmental agency.
  10354.  
  10355. <DT>ITU-R
  10356. <DD>ITU Radiocommunications Standardization Sector.  Formerly known as
  10357. CCIR, the International Radio Consultative Committee.
  10358.  
  10359. <DT>ITU-T
  10360. <DD>ITU Telecommunications Standardization Sector.  ITU-T is a 
  10361. permanent organ of the International Telecommunications Union.  The
  10362. ITU-T is responsible for studying technical, operating and tariff
  10363. questions and issuing Recommendations on them with a view
  10364. to standardizing telecommunications on a worldwide basis.  Formerly
  10365. known as CCITT, the International Telephone and Telegraph Consultative
  10366. Committee.
  10367.  
  10368. <DT>JFIF
  10369. <DD>JPEG File Interchange Format.  A standard file format for
  10370. storing JPEG images in a binary data file.  When people refer to
  10371. JPEG images, they are usually refering to JFIF format files.
  10372. JFIF had some competitors in the early days of JPEG, such as the
  10373. JPEG TIFF format which has fallen into to disuse.
  10374.  
  10375. <DT>JPEG
  10376. <DD>Joint Photographic Experts Group.  A body within the International
  10377. Organization for Standardization (ISO) that established the JPEG still image
  10378. compression standard.  JPEG is usually used to refer to compression
  10379. of still images or video frames using the "baseline JPEG" compression
  10380. algorithm using the Discrete Cosine Transform and Huffman coding.  
  10381. JPEG is the basis of the Motion JPEG used in digital video, where each
  10382. frame in a video is encoded separately using JPEG.
  10383. See JFIF.
  10384.  
  10385. <DT>JPEG-LS
  10386. <DD>A new standard for lossless JPEG still image encoding. The original
  10387. JPEG standard included a lossless still image encoding mode - actually
  10388. a completely different algorithm from the DCT based "baseline JPEG".
  10389. JPEG-LS is a new lossless compression algorithm that achieves better
  10390. compression ratios than the original lossless JPEG.
  10391.  
  10392. <DT>JPEG-2000
  10393. <DD>A new standard under development by the JPEG committee for
  10394. improved lossy still image compression.  JPEG-2000 will probably
  10395. use a different technology than the Block Discrete Cosine Transform
  10396. used in baseline JPEG.
  10397.  
  10398. <DT>MCI
  10399. <DD>Media Control Interface.  A Microsoft standard API for
  10400. software control of multimedia devices and components.  MCI includes
  10401. API's for playback of AVI files and digital video devices (such as
  10402. laser disc players).
  10403.  
  10404. <DT>MIME
  10405. <DD>Multipurpose Internet Mail Extensions.  An extension to the
  10406. Internet mail format to allow attaching multimedia data types
  10407. such as AVI files, word processing documents, sound files, and
  10408. so forth to Internet electronic mail.  MIME is discussed in
  10409. substantial detail elsewhere in the AVI Overview.
  10410.  
  10411. <DT>MMS
  10412. <DD>Microsoft Media Server.  Network protocol used by Microsoft
  10413. NetShow Server to communicate with NetShow Players.  The actual
  10414. multimedia data in ASF format may be delivered using HTTP, TCP, or UDP
  10415. protocols as available.
  10416.  
  10417. <DT>Motion JPEG
  10418. <DD> A type of digital video in which the video frames are
  10419. individually compressed using JPEG still image compression.  A standard
  10420. exists for Motion JPEG stored in AVI files.
  10421.  
  10422. <DT>MPEG
  10423. <DD>Motion Pictures Experts Group.  A body within the International
  10424. Organization for Standardization (ISO) that established the MPEG-1, MPEG-2,
  10425. and MPEG-4 digital audio and video compression standards.  MPEG
  10426. is also used to refer to video and audio clips compressed using
  10427. the MPEG standards and the MPEG standards themselves.
  10428.  
  10429. <DT>MSE
  10430. <DD>Mean Squared Error.  A statistical measure of error, used
  10431. to determine quality of compressed images.  Mathematically 
  10432. equivalent to Peak Signal to Noise Rate (PSNR).
  10433.  
  10434. <DT>NAB
  10435. <DD>National Association of Broadcasters.  A trade organization for the
  10436. television broadcast industry in the United States.  NAB is involved in
  10437. standards, lobbying the federal government, sponsors trade shows, and other
  10438. activities.
  10439.  
  10440. <DT>NetMeeting
  10441. <DD>Microsoft videoconferencing software.
  10442.  
  10443. <DT>NetShow
  10444. <DD>Microsoft streaming audio/video/multimedia product for
  10445. broadcasting multimedia streams over computer networks.
  10446. Also see ASF, ASX, and MMS.
  10447.  
  10448. <DT>network effect
  10449. <DD>The value of a product or service to a buyer increases with the
  10450. cumulative number of other buyers.  Also known as <B>increasing
  10451. returns to adoption</B>.  This usually occurs when the product or
  10452. service is part of a network of components that must work together to
  10453. produce a useful result, hence the name network effect.  A simple
  10454. example is a telephone service.  If a telephone service has one
  10455. subscriber, it has no value.  The subscriber can communicate with no
  10456. one else.  The more subscribers to the telephone service, the more
  10457. valuable the service becomes.  The subscribers can communicate with
  10458. more people, the other subscribers.  This is a common phenomenon with
  10459. communication systems and communication technologies.  Microsoft's
  10460. near-monopoly is frequently attributed to network effects.  The value
  10461. of the AVI file format - or Apple's QuickTime file format, or the ISO
  10462. MPEG format - depends on the number of people who can view the AVI
  10463. files, the amount of entertaining or useful content available in the
  10464. format, and the number of applications supporting the format.
  10465.  
  10466. <DT>NIST
  10467. <DD>National Institute of Standards and Technology.  A part of
  10468. the United States Department of Commerce.  NIST was formerly the
  10469. National Bureau of Standards (NBS).
  10470.  
  10471. <DT>NSA
  10472. <DD>National Security Agency.  A United States agency within
  10473. the U.S. Department of Defense responsible for signals
  10474. intelligence, encryption, cryptography, and related topics.
  10475. NSA was established by a still classified executive order.
  10476. Thus the full scope of its powers and responsibilities
  10477. remains secret.  NSA is involved in computer security
  10478. policy and setting computer and communications security
  10479. standards within the United States.  NSA has a long history
  10480. of relationships with major telecommunications companies.
  10481.  
  10482. <DT>NTSC
  10483. <DD>National Television System Committee.  The 
  10484.  color analog television standard used in the United
  10485. States, Japan, and a number of other countries.  Adopted by
  10486. United States in 1953.
  10487.  
  10488. <DT>OMF
  10489. <DD>Open Media Framework.  A standard for high end digital
  10490. video from Avid.  Avid video editing products use OMF as
  10491. do some products from other companies.  
  10492.  
  10493. <DT>open standard
  10494. <DD>A standard that is easy for companies to produce and market
  10495. products or services conforming to the standard.  Essentially
  10496. there is a competitive market without monopoly profits in products
  10497. or services conforming to the standard.  Some standards that are
  10498. marketed as "open" aren't open in this sense.  Some open standards
  10499. are the 8 1/2 " by 11 " paper size used in the United States and the
  10500. ASCII (American Standard Code for Information Interchange) used for
  10501. representing alphanumeric characters on computers and computer networks.
  10502. Also see standard, de facto, de jure, and specification.
  10503.  
  10504. <DT>PAL
  10505. <DD>Phase Alternation Line.  The analog television standard used in
  10506. Germany, England, and many other nations.
  10507.  
  10508. <DT>patent
  10509. <DD>A grant made by a government to an inventor, assuring the sole
  10510. right to make, use, and sell the invention for a certain
  10511. period of time.  Many audio and video technologies are covered by
  10512. patents.  This is also true of the underlying technologies for many of the
  10513. international standards such as MPEG.
  10514.  
  10515. <DT>PICT
  10516. <DD>Macintosh QuickDraw picture file.  The most common type of
  10517. still image on the Macintosh.
  10518.  
  10519. <DT>POTS
  10520. <DD>Plain Old Telephone Service.  Analog copper wires between
  10521. telephones and the phone company.  
  10522.  
  10523. <A NAME="PSNR">
  10524. <DT>PSNR
  10525. </A>
  10526. <DD>Peak Signal to Noise Ratio.  A statistical measure of error, used
  10527. to determine the quality of compressed images.  Mathematically equivalent
  10528. to the mean squared error (MSE) and the root mean squared error (RMSE).
  10529. This is the most commonly used metric of image quality used in the image
  10530. and video compression literature.  The PSNR is usually quoted in
  10531. decibels, a logarithmic scale.  The PSNR has a limited, approximate
  10532. relationship with the perceived errors noticed by the human
  10533. visual system.
  10534. <P>
  10535. As a rough rule of thumb, an image with a PSNR of 25 dB (decibels) is
  10536. usually pretty poor.  Anything below 25 dB is usually unacceptable.
  10537. Perceived quality usually improves from 25 dB to about 30 dB.  
  10538. Above around 30 dB images look pretty good and are often indistinguishable
  10539. from the uncompressed original image.
  10540. <P>
  10541. The human visual system appears to have sensitivity thresholds.  This
  10542. can be rigorously demonstrated in controlled experiments using 
  10543. sinusoidal gratings against black backgrounds.  Because of this
  10544. thresholding, once the PSNR exceeds some value, the errors become
  10545. undetectable to human viewers.  Hence an image with a PSNR of 35 dB
  10546. may look the same as an image with a PSNR of 40 dB.
  10547. <P>
  10548. Conversely, the human visual system seems to have a saturation
  10549. effect as well.  Once the image quality falls below a certain
  10550. level, the image simply looks bad.  An image with a PSNR of 15 dB and an
  10551. image with a PSNR of 10 dB may look equally bad to a viewer.
  10552. Typically by this point the image appears quite poor.
  10553. <P>
  10554. There is a range where the perceived quality and the PSNR tend to
  10555. scale.  
  10556. <P>
  10557.  
  10558.  |                             ************
  10559. Q|                        *****
  10560. u|                    ****
  10561. a|                 ***
  10562. l|               **
  10563. i|             **    
  10564. t|          ***      
  10565. y|**********
  10566.  |
  10567.  ---------------------------------------------
  10568.               25 dB      30 db       35 dB
  10569.                          (PSNR)
  10570.  
  10571.      Relationship Between Perceived Quality and Image PSNR
  10572.  
  10573. <P>
  10574. The Mean Squared Error is the mean of the squares of the differences
  10575. between the values of pixels in two images.  If i and j are indices
  10576. of an images and N is the total number of pixels:
  10577. <P>
  10578. MSE = (1 / N) * (Sum[i][j] |P[i][j] - Q[i][j]|^2
  10579. <P>
  10580. Where P and Q are two images.  i and j are the horizontal and vertical
  10581. location of a pixel.  P[i][j] is the value of the pixel at location (i,j)
  10582. in the image.  Sum[i][j] indicates a sum over i and j.
  10583. <P>
  10584. The Root Mean Squared Error (RMSE) is:
  10585. <P>
  10586. RMSE = Sqrt(MSE)
  10587. <P>
  10588. The Peak Signal to Noise Ratio expressed in decibels is:
  10589. <P>
  10590. PSNR = 20 log_10(b/RMSE)
  10591. <P>
  10592. Where b is the peak value for a pixel, typically 255 (8 bit pixels).
  10593.  
  10594. <DT>PTO (USPTO)
  10595. <DD>Patent and Trademark Office, United States Patent and Trademark Office.
  10596. This is the government office responsible for granting patents and
  10597. trademarks. Currently (May 10, 1999) the Patent and Trademark Office
  10598. is part of the United States Department of Commerce.  Many audio and
  10599. video compression technologies are covered by patents.  
  10600.  
  10601. <DT>QoS
  10602. <DD>Quality of Service.  In networking, QoS refers to various
  10603. schemes to insure a certain quality, such as limiting or
  10604. eliminating packet loss for video streams.
  10605.  
  10606. <DT>Quartz
  10607. <DD>Microsoft software component for handling and displaying
  10608. digital video, including AVI, MPEG, and QuickTime, for
  10609. Windows 95 and Windows NT 4.0.  Intended to replace
  10610. Video for Windows.  Originally codenamed Quartz, then released as
  10611. as ActiveMovie.  Now (May, 1998) DirectShow.
  10612.  
  10613. <DT>QuickTime
  10614. <DD>QuickTime is Apple's equivalent of Video for Windows for
  10615. the Macintosh.  Apple also makes QuickTime for Windows.
  10616. QuickTime is also used to refer to the QuickTime Movie file
  10617. format, a widely used format for digital audio, video, and
  10618. other multimedia.
  10619.  
  10620. <DT>RGB
  10621. <DD>Red Green Blue.  Color represented as red, green, and blue
  10622. components.  Most computer monitors use RGB pixels.  
  10623.  
  10624. <DT>RS-170
  10625. <DD>Original black and white television standard used in the
  10626. United States.  NTSC was designed to be compatible with RS-170
  10627. black and white television sets.  
  10628.  
  10629. <DT>SECAM
  10630. <DD>Sequentiel Couleur Avec Memoire or Sequential Color with Memory.
  10631. Analog television standard developed in France.  Used in France 
  10632. and some other nations.
  10633.  
  10634. <DT>SMPTE
  10635. <DD>Society of Motion Picture and Television Engineers.  
  10636.  
  10637. <DT>specification
  10638. <DD>The English word <I>specification</I> has a few meanings, or
  10639. word senses.  The Webster's New World Dictionary gives the
  10640. following meaning: "<B>2</B> [<I>usually pl.</I>] <I>a)</I>a
  10641. detailed description of the parts of a whole <I>b)</I> a statement
  10642. or enumeration of particulars, as to actual or required size, quality,
  10643. performance, terms, etc. [<I>specifications</I> for a new building]".
  10644.  
  10645. <DT>standard
  10646. <DD>The English word <I>standard</I> has a large number of 
  10647. meanings, or word senses.  The Webster's New World Dictionary
  10648. gives the following meaning: "<B>4</B> the type, model, or example 
  10649. commonly or generally accepted or adhered to; criterion set for
  10650. usages or practices [moral <I>standards</I>]".  This is the closest
  10651. dictionary meaning or word sense to the usage of engineers.
  10652. <P>
  10653. The ISO (International Organization for Standardization) gives the
  10654. following definition: "Standards are documented agreements containing
  10655. technical specifications or other precise criteria to be used
  10656. consistently  as rules, guidelines, or definitions of characteristics,
  10657. to ensure that materials, products, processes and services are fit
  10658. for their purpose."
  10659. <P>
  10660. Standard can have a precise legal meaning in the context of U.S. law,
  10661. the laws of foreign nations, treaties and international organizations
  10662. such as the United Nations.  For example, the United States Office
  10663. of Management and Budget (OMB) Circular A-119, "Federal Participation
  10664. in the Development and Use of Voluntary Consensus Standards and in
  10665. Conformity Assessment Activities", Revised and Dated February 10, 1998
  10666. provides the following definition of standards (Note: the Act
  10667. refers to Public Law 104-113, the "National Technology Transfer and
  10668. Advancement Act of 1995"):
  10669. <P>
  10670. WHAT DEFINITIONS OF STANDARDS 
  10671. <P>
  10672. 3. What Is A Standard? 
  10673. <P>
  10674.  
  10675. a. The term "standard," or "technical standard" as cited in the Act,
  10676. includes all of the following:
  10677.  
  10678. <P>
  10679.  
  10680. (1) Common and repeated use of rules, conditions,guidelines or
  10681. characteristics for products or related processes and production
  10682. methods, and related management systems practices.
  10683.  
  10684. <P>
  10685.  
  10686. (2) The definition of terms; classification of components; delineation
  10687. of procedures; specification of dimensions, materials, performance,
  10688. designs, or operations; measurement of quality and quantity in
  10689. describing materials, processes, products, systems, services, or
  10690. practices; test methods and sampling procedures; or descriptions of
  10691. fit and measurements of size or strength.
  10692.  
  10693. <P>
  10694. b. The term "standard" does not include the following: 
  10695. <P>
  10696. (1) Professional standards of personal conduct. 
  10697. <P>
  10698. (2) Institutional codes of ethics. 
  10699. <P>
  10700.  
  10701. c. "Performance standard" is a standard as defined above that states
  10702. requirements in terms of required results with criteria for verifying
  10703. compliance but without stating the methods for achieving required
  10704. results. A performance standard may define the functional requirements
  10705. for the item, operational requirements, and/or interface and
  10706. interchangeability characteristics. A performance standard may be
  10707. viewed in juxtaposition to a prescriptive standard which may specify
  10708. design requirements, such as materials to be used, how a requirement
  10709. is to be achieved, or how an item is to be fabricated or constructed.
  10710.  
  10711. <P>
  10712.  
  10713. d. "Non-government standard" is a standard as defined above that is in
  10714. the form of a standardization document developed by a private sector
  10715. association, organization or technical society which plans, develops,
  10716. establishes or coordinates standards, specifications, handbooks, or
  10717. related documents.
  10718.  
  10719. <P>
  10720. 4. What Are Voluntary, Consensus Standards? 
  10721. <P>
  10722.  
  10723. a. For purposes of this policy, "voluntary consensus standards" are
  10724. standards developed or adopted by voluntary consensus standards
  10725. bodies, both domestic and international. These standards include
  10726. provisions requiring that owners of relevant intellectual property
  10727. have agreed to make that intellectual property available on a
  10728. non-discriminatory, royalty-free or reasonable royalty basis to all
  10729. interested parties. For purposes of this Circular, "technical
  10730. standards that are developed or adopted by voluntary consensus
  10731. standard bodies" is an equivalent term.
  10732.  
  10733. <P>
  10734.  
  10735. (1) "Voluntary consensus standards bodies" are domestic or
  10736. international organizations which plan, develop, establish, or
  10737. coordinate voluntary consensus standards using agreed-upon
  10738. procedures. For purposes of this Circular, "voluntary, private sector,
  10739. consensus standards bodies," as cited in Act, is an equivalent
  10740. term. The Act and the Circular encourage the participation of federal
  10741. representatives in these bodies to increase the likelihood that the
  10742. standards they develop will meet both public and private sector
  10743. needs. A voluntary consensus standards body is defined by the
  10744. following attributes:
  10745.  
  10746. <P>
  10747. (i) Openness. 
  10748. <P>
  10749. (ii) Balance of interest. 
  10750. <P>
  10751. (iii) Due process. 
  10752. <P>
  10753. (vi) An appeals process. 
  10754. <P>
  10755.  
  10756. (v) Consensus, which is defined as general agreement, but not
  10757. necessarily unanimity, and includes a process for attempting to
  10758. resolve objections by interested parties, as long as all comments have
  10759. been fairly considered, each objector is advised of the disposition of
  10760. his or her objection(s) and the reasons why, and the consensus body
  10761. members are given an opportunity to change their votes after reviewing
  10762. the comments.
  10763.  
  10764. <P>
  10765.  
  10766. b. Other types of standards, which are distinct from voluntary
  10767. consensus standards, are the following:
  10768.  
  10769. <P>
  10770.  
  10771. (1) "Non-consensus standards," "Industry standards," "Company
  10772. standards," or "de facto standards," which are developed in the
  10773. private sector but not in the full consensus process.
  10774.  
  10775. <P>
  10776.  
  10777. (2) "Government-unique standards," which are developed by the
  10778. government for its own uses.
  10779.  
  10780. <P>
  10781.  
  10782. (3) Standards mandated by law, such as those contained in the United
  10783. States Pharmacopeia and the National Formulary, as referenced in 21
  10784. U.S.C. 351.
  10785.  
  10786. <P>
  10787. The AVI file format is an example of a standard.  AVI would probably be
  10788. considered a "de facto standard" in the language of the U.S. Federal
  10789. Government.
  10790.  
  10791. <DT>Video for Windows (VfW)
  10792. <DD>Microsoft Windows software component for handling and displaying
  10793. video.  Windows 3.x incorporates a 16-bit Video for Windows.
  10794. Windows 95 and Windows NT both incorporate a 32-bit Video for
  10795. Windows.
  10796.  
  10797. <DT>VBR
  10798. <DD>Variable Bit Rate.  In video coding, the bitrate of the encoded
  10799. video stream varies over time.  Sometimes the video is encoded with
  10800. a fixed quantization factor resulting in varying bitrates and varying
  10801. perceived quality.  Sometimes the video is encoded with a fixed
  10802. perceived quality which usually results in varying bitrate.
  10803.  
  10804. <DT>VCM
  10805. <DD>Video Compression Manager.  The Microsoft Video for Windows
  10806. component that manages video codecs (compressor/decompressors).
  10807. VCM can also be considered a specification for an API.  A video
  10808. codec must conform to VCM to work with Video for Windows.
  10809.  
  10810. <DT>VQEG
  10811. <DD>Video Quality Experts Group.  The ITU's Video Quality
  10812. Experts Group ad hoc committee to establish a standard for
  10813. objectively measuring video quality.  A group of experts from
  10814. three groups: ITU-R Study Group 11, ITU-T Study Group 9, and
  10815. ITU-T Study Group 12.
  10816.  
  10817.  
  10818. <DT>VxD
  10819. <DD>Virtual Device Driver.  A type of device driver for
  10820. Microsoft Windows 3.x and Windows 95.  
  10821.  
  10822. <DT>WIPO
  10823. <DD>World Intellectual Property Organization.  Many nations, including
  10824. the United States, have agreed to try to harmonize their intellectual
  10825. property laws through various treaties and this organization.  In
  10826. principle, this makes it easier to patent inventions worldwide, not just
  10827. in one nation.
  10828.  
  10829. <DT>WTO
  10830. <DD>World Trade Organization.  The successor to GATT, the General
  10831. Agreement on Tarrifs and Trade.  The ostensible
  10832. goal of the WTO is to reduce or eliminate barriers to free trade
  10833. between nations such as tariffs.  Relevant to the theme of the AVI
  10834. Overview, WTO and related agreements cover
  10835. <B>Technical Barriers to Trade (TBT)</B>, which include such issues as 
  10836. incompatible technical standards between different nations.  European
  10837. nations and other foreign nations frequently own their national
  10838. communications businesses, such as telephone and television, and 
  10839. set and mandate technical standards through government or government
  10840. sponsored organizations.  Thus, this is far from an academic issue
  10841. for companies and organizations seeking to market products and services
  10842. in Europe and many other nations.
  10843. <B>Voluntary consensus standards</B> as defined by the WTO related
  10844. agreements have favored standing under the Agreement on Technical
  10845. Barriers to Trade.  The ISO standards such as MPEG and the ITU
  10846. standards such as H.261 and H.263 are considered voluntary consensus
  10847. standards under these agreements.  Governments may mandate or
  10848. encourage the use of such standards.  For example, a national government
  10849. may legally block a company without the ISO 9000 and ISO 9001 quality
  10850. system standards certification from selling products or servies
  10851. in their nation.
  10852.  
  10853. <P>
  10854.  
  10855. Under the Uruguay Round agreements that established the WTO, the
  10856. United States was able to exempt government sponsored research and
  10857. development of <B>non-commercial working prototypes</B> from treatment
  10858. as a government subsidy to industry.  While the United States has
  10859. relatively few direct subsidies of companies compared to other
  10860. nations, many high technology businesses in the United States were
  10861. built on technologies and non-commercial working prototypes developed
  10862. with federal funding.  The Internet and the Worldwide Web are probably
  10863. the most prominent example of this currently - with Microsoft
  10864. licensing the Mosaic Web browser to become Internet Explorer and
  10865. Netscape hiring several of the Mosaic development team from the
  10866. federally funded National Center for Supercomputer Applications (NCSA)
  10867. at the University of Illinois.  In the video world, the emerging
  10868. wavelet technologies were largely developed with federal funding,
  10869. including the development of working still image prototypes in software.
  10870.  
  10871. <DT>YCbCr
  10872. <DD>The color space used in the <A HREF="#CCIR601">CCIR-601</A> digital video specification.
  10873.  
  10874. <DT>YIQ
  10875. <DD>The color space used in the NTSC analog television standard.
  10876.  
  10877. <DT>YUV
  10878. <DD>The color space used in the PAL analog television standard.
  10879.  
  10880. </DL>
  10881.  
  10882. <A HREF="#Top">Return to Top</A>
  10883.  
  10884. <A NAME="Chronology">
  10885. <H2>Chronology</H2>
  10886. </A>
  10887.  
  10888. January 6, 1999    Radius Incorporated, the Cinepak company,
  10889. renames itself Digital Origin Incorporated.
  10890.  
  10891. May 4, 1998        Microsoft's first public test version
  10892. of Microsoft NetShow 3.0 streaming video and video
  10893. server product.
  10894.  
  10895. February 26, 1998  Date of Advanced Streaming Format (ASF)
  10896. Specification Public Specification Version 1.0 co-authored by
  10897. Microsoft Corporation and RealNetworks, Inc.  ASF is supposed
  10898. to replace the AVI format.
  10899.  
  10900. November 12, 1997  Microsoft releases a new NetShow distribution:
  10901. NetShow 2.1  NetShow 2.1 adds support for RealNetworks (formerly
  10902. Progressive Networks) RealVideo and RealAudio, NetShow clients for
  10903. Windows 3.1, MacOS, and the Linux, Solaris, SunOS, and HP-UX versions
  10904. of Unix, and TheaterServer for streaming broadcast-quality video over
  10905. highbandwidth networks such as ATM and fast Ethernet.
  10906.  
  10907. September 10, 1997 Microsoft releases second draft of
  10908. ASF (Advanced Streaming Format) Specification.  ASF is
  10909. intended to replace the AVI format.
  10910.  
  10911. August 14, 1997    Microsoft releases first draft of
  10912. the ASF (Advanced Streaming Format) Specification.  ASF is
  10913. intended to replace the AVI format.
  10914.  
  10915. August 5, 1997     Microsoft pays $75 million to acquire
  10916. VxTreme of Sunnyvale, California.  VxTreme markets
  10917. a video codec that is probably wavelet-based.
  10918.  
  10919. July 21, 1997      Microsoft invests $30 million in
  10920. RealNetworks (formerly Progressive Networks) of
  10921. Seattle.  Microsoft also pays an additional $30 million
  10922. to license RealNetworks audio and video technologies.
  10923. RealNetworks technologies are RealAudio and RealVideo.
  10924. RealVideo is actually the fractal video compression
  10925. technology formerly known as ClearVideo, licensed from
  10926. Iterated Systems.
  10927.  
  10928. October 6, 1996    Microsoft invests $5 million for 10% of
  10929. VDONet of Palo Alto, CA.  VDONet markets the VDOWave
  10930. wavelet-based video codec.
  10931.  
  10932.  
  10933. <A HREF="#Top">Return to Top</A>
  10934.  
  10935. <A NAME="Awards">
  10936. <H2>Awards</H2>
  10937. </A>
  10938.  
  10939. <!-- ##### Begin PC Webopaedia Code ##### -->
  10940. <a href="http://www.pcwebopedia.com/" target="_top">
  10941. <img src="http://www.pcwebopedia.com/images/awards/outstanding.gif" 
  10942. width="68" height="63" border="0" alt="PC Webopaedia Outstanding Page Award">
  10943. </a>
  10944. <!-- #####  End PC Webopaedia Code  ##### -->
  10945.  
  10946. On March 23, 1998 the AVI Overview received the PC Webopaedia 
  10947. Outstanding Page Award.
  10948.  
  10949.  
  10950. <A HREF="http://www.12c4.com/hotcool/"><IMG SRC="http://www.rahul.net/jfm/bestsite.gif" ALT="HotCool SuperSite" width="88 Height="31" BORDER=1></A>
  10951.  
  10952. On February 4, 1999 was selected as a HotCool SuperSite.
  10953.  
  10954.  
  10955. <A NAME="Credits">
  10956. <H2>Credits</H2>
  10957. </A>
  10958.  
  10959. The following people have contributed ideas, suggestions,
  10960. criticisms, and information to the AVI Overview:
  10961.  
  10962. John Avis            (information on Video for DOS)
  10963. Jens Mutschke        Q-Team Dr. Knabe GmbH
  10964. John Whelan          Dublin City University
  10965. Victor Rutman        Netvision
  10966. Wolfgang Hesseler    QuickView for DOS
  10967. Marcus Moenig        MainConcept
  10968. Dave Wilson          Rockwell/Brooktree
  10969. Steve P.             (no full last name, information on CorelMove 4.0)
  10970. Dennis Strauch
  10971. Tom Harding          Practice Corporation
  10972. Alexander Grigoriev
  10973. Michael Caracena     AVI Constructor
  10974. Ashley Jacobs        Mystech Associates
  10975. Bernd Schoenes
  10976. WashDC@aol.com       (information on BinHex and AVI)
  10977. Kevin McKinnon       Dowco Computer Systems   (info on IFF file format and RIFF)
  10978. Tom Lane             (Independent JPEG Group)
  10979. Cindy Fuhrman        Techsmith Corporation
  10980. Timothy Barr         (information on Premiere AVI to GIF89a plug-in)
  10981. Chris Coppess        (information on Microsoft MPEG-4 and NetShow)
  10982. David Gartner        Public Relations Manager, Equilibrium
  10983. jim@shansys.com      (information on Shannon Communications Systems H.263+ AVI Codec)
  10984. Susan Stearman       Ligos Technology Inc.  (LSX-MPEG Encoder)
  10985. Guillaume de Balliencourt  Morgan Multimedia (Software M-JPEG Decoder)
  10986. Paula Clark          (information on Woldo's Video Player and other tools)
  10987. Laszlo               (information on MooVId and PIV-MooVId Amiga AVI/MOV players)
  10988. Bill Luken           (information on RIFFSCAN and QTSCAN)
  10989. Serguei Grigoriev    (information on MainConcept Motion JPEG Codec)
  10990. Ron Gery             Gamani Productions/GIF Movie Gear
  10991.  
  10992. Special thanks to:
  10993.  
  10994. Desktop Video Expert Center/NASA Ames Research Center
  10995. <A HREF="http://zeus.arc.nasa.gov/">http://zeus.arc.nasa.gov/</A>
  10996.  
  10997. <A HREF="#Top">Return to Top</A>
  10998.  
  10999. NOTE: Suggestions, additions, and corrections are welcome.  Please
  11000. send to 
  11001. <P>
  11002. <ADDRESS>
  11003. <A HREF="mailto:jfm@rahul.net">jfm@rahul.net</A>
  11004. </ADDRESS>
  11005.  
  11006. <!--
  11007. About the author:
  11008.  
  11009.     John F. McGowan is a software engineer with experience in digital
  11010. video and computer generated imagery.  He has developed commercial
  11011. MPEG-1 and MPEG-2 players for PC/Windows, Unix, and Power Macintosh
  11012. platforms.  He has a B.S. in Physics from the California Institute
  11013. of Technology and a Ph.D. in Physics from the University of Illinois
  11014. at Urbana-Champaign.
  11015. -->
  11016.  
  11017. </PRE>
  11018. </BODY>
  11019. </HTML>
  11020. -- 
  11021.  
  11022.  
  11023.  
  11024.  
  11025.