home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 August / Chip_2004-08_cd2.bin / prevodniky / download / AVI2MPG / avi2mpg1.exe / README.TXT < prev    next >
Text File  |  1997-08-29  |  15KB  |  285 lines

  1. Readme for avi2mpg1 ver 1.4
  2.  
  3. This program is distributed under the GNU copyright, please see the accompanying
  4. file COPYING for details. Please note that only the changes to the original source
  5. code are copyrighted under GNU, except for the the multiplexer portions, which
  6. are also under the GNU copyright. The copyrights for the other two source programs,
  7. the video and audio encoders are detailed in their respective source, as well as the
  8. original distributions. 
  9.  
  10.  
  11. avi2mpg1 is a simple command line mpeg-1 encoder that runs at the command prompt
  12. under Windows '95 or NT. Copy the file avi2mpg1.exe to any directory in your
  13. path. C:\WINDOWS\COMMAND or C:\WINNT should work for most people.
  14. Invoke the program with the following syntax:
  15.  
  16.  usage: avi2mpg1 [-options] inputfile.avi [outputfile.mpg]
  17.  
  18.      where:
  19.            options can be:
  20.                           -b byterate Where byterate is total system stream
  21.                                      rate in KBytes/s (default 150)
  22.                                      Valid range = 10 to 500.
  23.  
  24.                           -s bitrate Where bitrate is total system stream 
  25.                                      rate in K bits/s (default 1200)
  26.                                      Valid range = 80 to 4000.
  27.  
  28.                           YOU CAN ONLY SPECIFY -b OR -s, NOT BOTH!
  29.  
  30.                           -a bitrate Where bitrate is audio bitrate in
  31.                                      K bits/s (default 128)
  32.                                      Valid values for layer I:
  33.                                      32,64,96,128,160,192,224,256,288,320,352,
  34.                      384,416,448
  35.                                      Valid values for layer II:
  36.                                      32,48,56,64,80,96,112,128,160,192,224,256,
  37.                      320,384
  38.  
  39.                           -l layer   Where layer specifies which audio layer
  40.                                      to use, valid values 1 or 2.
  41.                                      (default 2)
  42.  
  43.                           -j         specifies use joint stereo mode IF
  44.                                      input file contains stereo audio.
  45.                                      Has no effect if audio portion of .avi
  46.                                      is mono. (default non-joint stereo)
  47.  
  48.                           -v         specifies fixed datarates as defined
  49.                                      for video cd streams. If this option
  50.                                      is used, it overides any -a, -b or -s
  51.                                      rates specified as well as -l, -n, -c and -y
  52.                                      options.
  53.  
  54.                           -p filename.par specifies video encoding parameter
  55.                                      file, (OPTIONAL) allows control over additional
  56.                                      parameters. See Param.txt. Note that the
  57.                                      parameter file as well as the matrix files
  58.                                      must be in the current directory unless you
  59.                                      specify full path names.
  60.  
  61.                           -e         specifies encode file even if some frames in
  62.                                      avi are bad, ie: use previous good video frame
  63.                                      or 0 data for audio if file is corrupt.
  64.                                      At least FIRST frame must be valid!
  65.  
  66.                           -n         generate video stream only, ignore audio if
  67.                                      there is an audio stream. You must use this
  68.                                      option to encode an avi file that does not
  69.                                      have an audio track. Result is a .m1v file.
  70.                                      (Even if you specify .mpg)
  71.  
  72.                           -y         vbv_buffer size in 16K bit multiples,
  73.                                      default = 20
  74.  
  75.                           -m         motion search magnitude, range 0 - 4, default 0,
  76.                                      higher values MAY result in better encoding
  77.                                      (depending on video), but will take
  78.                                      SIGNIFICANTLY longer to encode.
  79.                                      Try it on a short sample first!
  80.  
  81.                           -c hs vs   set output video size to hs horizontal and 
  82.                                      vs vertical. Larger input video is cropped to
  83.                                      fit while smaller video is padded out to size.
  84.  
  85.                           -f frame_rate_code force mpeg file frame rate regardless of
  86.                                      input file frame rate. Implies -n (video only).
  87.                                      Frame rates codes -> 1 = 23.976 FPS
  88.                                                           2 = 24 FPS
  89.                                                           3 = 25 FPS
  90.                                                           4 = 29.97 FPS
  91.                                                           5 = 30 FPS
  92.  
  93.             inputfile.avi   A windows avi file constrained to the following
  94.                             parameters:
  95.  
  96.                                  Horizontal size: max 720 pixels
  97.                                  Vertical size:   max 480 pixels
  98.  
  99.                  Note: if dimensions are not a multiple of 16,
  100.                  then frame data will be padded out to a multiple
  101.                                  of 16 with resulting black bands around picture.
  102.  
  103.                                  Frame rate : 23.976, 24, 25, 29.97, or 30 FPS
  104.                                               10, 12, and 15 FPS are upsampled.
  105.                                  Colour depth: 8, 16, 24, or 32 bit.
  106.                                                (palletized, thousands,
  107.                                                 millions, millions+)
  108.                                  codec used in file must be installed in windows.
  109.  
  110.                                  Audio sample rate: 11.025, 22.05, and 44.1KHz
  111.                                  Audio sample size: 8 or 16 bit
  112.                                  Audio channels: 1 or 2
  113.                                  Uncompressed PCM audio only.
  114.  
  115.             outputfile.mpg  Optional, if not specified, inputfilename with .mpg
  116.                             extension will be created.
  117.  
  118.         The optional template.par file contains the same values that the
  119.                 encoder has hard coded as default values for all other video
  120.                 encoding parameters. Use this file as your starting point for
  121.                 experimenting with other values, such as motion search vectors.
  122.                 See param.txt.
  123.  
  124. *** WARNING: VIDEO EXCEEDS CPB STANDARD!, if you get this warning during video
  125. encoding, your video exceeds the Constrained Parameter Bitstream standard, and
  126. may not be playable on many mpeg-1 players, either software or hardware.
  127. Although many players can play mpeg-1 with higher than CPB bitrates, 
  128. few are capable of higher resolutions than SIF (352x288).
  129.  
  130. Example:      avi2mpg1 test
  131.  
  132.         This example will encode an .avi file "test.avi" located in the
  133.         current directory to test.mpg, at 150KB/sec total data rate
  134.         with audio at 128Kb/sec.
  135.  
  136. You will need to make sure that the current directory has enough room for the
  137. temporary files the encoder will produce, in other words, approximately twice
  138. the space needed for the resulting .mpg file.
  139.  
  140. Credits:
  141.  
  142. This program is basically the combination of the video encoder by the
  143. MPEG Software Simulation Group, available from:
  144. "http://www.creative.net/~tristan/MPEG/mssg/mpeg2vidcodec_v12.tar.gz"
  145.  
  146. the ISO audio encoder, available from:
  147. "ftp://ftp.iuma.com/audio_utils/converters/source/mpegaudio.tar.Z",
  148.  
  149. and Christoph Moar's systems stream multiplexer, available from:
  150. "ftp://ftp.informatik.tu-muenchen.de/pub/comp/graphics/mpeg/mplex/mplex-1.1.tar.gz".
  151.  
  152. into a single program to process windows .avi files. My goal was to create a
  153. simple, one step program consisting of a single executable file with no required
  154. .dll's,bit tables, or configuration files, making it extremely easy to use. 
  155.  
  156. My own use of MPEG-1 consists primarily of compressing 320x240x30FPS files captured
  157. with a 'miro DC20 MJPEG capture board, to 150KB/sec with 128Kb audio .mpg streams for
  158. burning to CD. As such, the default values for the program are obvious. I have 
  159. used the encoder extensively to encode avi files of the above nature with no
  160. problems. You may encounter some problems using avi files that differ from the above.
  161.  
  162.  
  163. QUALITY:
  164.  
  165.     General Recommendations:
  166.     The quality of your original source is extremely important! VHS video
  167.     tape is generally not sufficient. If you use live capture from a video
  168.     camera, make sure you have LOTS of light. Any noise in the video will
  169.     seriously degrade the encoded mpeg quality. This is true for all
  170.     mpeg encoders!
  171.  
  172.     PLEASE NOTE: although this encoder accepts avi files with less than 24 FPS,
  173.         24 bit video and less than 44.1KHz 16 bit audio, you aren't getting the full
  174.         value of MPEG compression in these cases. Particularily if the video was
  175.         highly compressed by another windows codec. Internally, the encoder simply
  176.         upsamples the avi file to 24 bit video at 24 or higher FPS, and the audio
  177.         is upsampled to 44.1Khz 16 bit. If your capturing the video yourself, try
  178.         doing it at the maximum rate/resolution your equipment is capable of. The
  179.         general rule for maximum quality is keep your source file as uncompressed
  180.         as possible throughout all capturing and editing phases. Let the final
  181.         compressor (MPEG in this case) do all the compression.
  182.  
  183. BUGS:
  184.  
  185.     Using the -v parameter has not been extensively tested, it does
  186.     generate a valid, playable file, but it has only been tested with
  187.         Adaptec's EZ CD Creator 3.0 to generate a Video CD, and while some
  188.         software mpeg players can play the resulting Video CD, I have found 
  189.         at least 1 which does not. This may be because my CD recorder can not
  190.         record disk-at-once. You should test Video CD stream generation in
  191.         your environment before any extensive use for Video CD generation.
  192.  
  193.     Some combinations of parameters and certain video streams will result
  194.     in vbv_buffer overflows or underflows. If this occurs, you will get a
  195.     count of the number of times it has occured at the completion of the video
  196.     stream encoding. An mpeg file will still be generated, and is still
  197.     playable by most players (I haven't found any that can't). You can try
  198.         adjusting the vbv_buffer_size using the -y parameter.
  199.  
  200. Changes:
  201.     Ver 1.1 - Added support for 8-bit audio.
  202.         - added support for 11.025 and 22.050 Khz sample rates
  203.         - modified vbv_delay overflow reporting
  204.  
  205.     Ver 1.2 - improved low-pass filtering for 11025 & 22050 sample rate audio
  206.                   sources.
  207.                 - added support for 8 bit palletized video
  208.         - corrected chromatic subsampling
  209.                 - added option to specify system stream data rate in bits per second.
  210.         - added option to specify video encoding parameter file and inter and
  211.                   intra quantization matrix files (examples provided)(optional).
  212.  
  213.     Ver 1.2a- incorrect template.par included with 1.2, the correct one has been
  214.                   added to this release.
  215.  
  216.         Ver 1.3 - added option (-e) to allow encoding of avi files with corrupt
  217.                   frames, (from some versions of HyperCam). Missing frames are
  218.                   replicated from last good frame, audio data is blanked.
  219.                 - added option to generate video only stream (-n)
  220.                 - added support for 10, 12, and 15 FPS video by upsampling to
  221.                   30, 24, 30 FPS respectively.
  222.                 - made options case insensitive
  223.                 - handles odd pixel size video, pads out to even number.
  224.                 - corrected error in RGB->YUV conversion that caused pure white areas
  225.                   in non-real (ie: computer animations) to appear black in mpg file.
  226.                 - intermediate file names (.m1v, .mp2) are based on output filename
  227.                   (if any) instead of input filename.
  228.                 - opened max size limitation up to 704 x 480
  229.                 - increased max bit-rate to 4000kbit/sec, or 500Kbyte/sec
  230.                 - decreased min bit-rate tp 80kbit/sec, or 10KByte/sec
  231.                 - added -y option to adjust vbv_buffer_size from default of 20
  232.                 - appended .par extension to user supplied parameter file if none
  233.                   provided
  234.                 - added -m option to allow easy selection of higher magnitude motion
  235.                   search range.
  236.                 - eliminated estimated time remaining during video encode, it wasn't
  237.                   very accurate, now reports % complete, and at end of video encode,
  238.                   average time to encode one frame.
  239.  
  240.         Ver 1.4 - several minor corrections to VideoCD file generation, the -v
  241.                   option generates a stream which has been tested with Adaptec's
  242.                   EZ CD Creator 3.0 Video CD Creator.
  243.                 - added -c cropping option to specify horizontal and vertical size
  244.                   of output file. Input files larger than specified have excess pixels
  245.                   trimmed off, while input files smaller than specified are padded out
  246.                   to specified size with blank pixels. The -v parameter implies
  247.                   -c 352 240 (or 288), hence even input video which does not
  248.                   correspond to VideoCD size can still be encoded.
  249.                 - when blank pixels are added to video to bring to multiple of 16, or
  250.                   -c option is used, blank pixels are now added evenly to both sides
  251.                   and top and bottom instead of just the right side and bottom.
  252.                 - added force frame rate option (-f), can be used to encode video of
  253.                   arbitary frame rates (say, 6 FPS) to a standard frame rate. Video can
  254.                   then be played back at normal speed with player which supports user
  255.                   specified playback rates. Using this option implies -n (video only)
  256.                   since there is no way to syncronise the resulting video with audio.
  257.                 - opened max size limitation to 720 x 480.
  258.  
  259. For the latest revision check out http://www/mnsi.net/~jschlic1.
  260.  
  261. TODO:
  262.  
  263.     Future releases of the encoder (as time permits) may have some or all
  264.     of the following enhancements:
  265.  
  266.     Improve extremely low bitrate video generation.
  267.  
  268.     Generally clean up code, it was rather quickly hacked together, could be
  269.     more elegant.
  270.  
  271.     Ability to specify multiple input source avi's for a single output mpg,
  272.     neccessary to deal with Windows avi file size limitation of 1GB.
  273.  
  274. Compiling:
  275.  
  276.     The source code was compiled using MicroSoft Visual C++ 5.0, to
  277.         recompile, create a new project of the type "Win32 Console
  278.         Appplication". Add all the .c and .h files to the project, and
  279.         under the Project Settings menu, under the Link tab, add
  280.         vfw32.lib to the object/library modules list.
  281.  
  282.  
  283. jschlic1@mnsi.net
  284.  
  285.