mpeg2enc - MPEG-1/2 encoder


   mpeg2enc  [-v|--verbose  num]  [-M|--multi-thread num_CPU] [-f|--format
   mpeg_profile]       [-l|--level]h|high|m|main       [-b|--video-bitrate
   bitrate_kbps] [-V|--video-buffer video_buf_size_kB] [-T|--target-still-
   size  still_size_kB]  [-q|--quantisation  quantisation]   [-r|--motion-
   search-radius     motion_search_radius]    [-Q|--quantisation-reduction
   -4.0..5.0]          [-X|--quant-reduction-max-var          0.0..2500.0]
   [-p|--3-2-pulldown]  [-I|--interlace-mode 0|1|2] [-s|--sequence-header-
   every-gop]    [-g|--min-gop-size    min_gop_size]    [-G|--max-gop-size
   max_gop_size]  [-P|--force-b-b-p]  [-n|--video-norm n|p|s] [-F|--frame-
   rate frame_rate_code]  [-x|--display-hsize]  32..38383]  [-y|--display-
   vsize] 32..38383] [-a|--aspect aspect_ratio_code] [-z|--playback-field-
   order  b|t]   [-4|--reduction-4x4   1..4]   [-2|--reduction-2x2   1..4]
   [-S|--sequence-length   size_MB]  [-B|--nonvideo-bitrate  bitrate_kbps]
   [-N|--reduce-hf  0.0..2.0]  [-D|--intra_dc_prec  8..11]  [-H|--keep-hf]
   [-d|--no-dummy-svcd-SOF]   [-C|--correct-svcd-hds]   [--no-constraints]
   [-K|--custom-quant-matrices                    kvcd|tmpgenc|default|hi-
   res|file=inputfile|help]  [-E|--unit-coeff-elim  -40..40]  [-R|--b-per-
   refframe      0..2]      [--no-altscan-mpeg2]       [--dualprime-mpeg2]
   [-A|--ratecontroller    0..1]    [-u|--cbr]    [--chapters   frame,...]
   [-?|--help] -o|--output filename


   mpeg2enc is heavily enhanced derivative of the MPEG Software Simulation
   Group's  MPEG-2  reference  encoder.   It  accepts  streams in a simple
   planar YUV format  "YUV4MPEG"  produced  by  the  lav2yuv  and  related
   filters  (e.g. yuvscaler(1)) from the mjpegtools(1) package.  An output
   plug-in to the mpeg2dec(1) MPEG decoder is available to permit its  use
   in  transcoding  applications. The encoder currently fully supports the
   generation of  elementary  MPEG-1,  progressive  and  interlaced  frame
   MPEG-2  streams.   Field  encoded  MPEG-2  is  also possible but is not
   currently maintained or supported.

   For most purposes  this  elementary  stream  output  will  need  to  be
   multiplexed  with  one  or  more  audio  streams into a program/systems
   stream using the mplex(1) tool.

   Note that although this manual page aims to explain how mpeg2enc can be
   used  effectively  it  is  not  intended as an introduction to MPEG-1/2
   video which is a fairly complex topic in its own right.  The MPEG video
   format  is  a somewhat baroque standard with many many options, not all
   of which necessarily easy to explain or even particular useful  in  the
   context of a software encoder.

   Much  useful  practical  information  for  novices  can be found in the
   mjpeg-HOWTO document that should have been installed with mjpegtools(1)
   package.   Further  information  and  useful supporting software can be
   found on the mjpegtools web-site:


   Set the MPEG profile to use.  The MPEG standards support a vast  number
   of  options.   In  practice,  different applications of the MPEG format
   place additional constraints of the form the MPEG stream.  Setting this
   flag selects the kind of stream to produce.

   -f|--format 0
           -       Generic MPEG1.

           A basic MPEG-1 profile that lets most parameters
           be adjusted for particular applications using the other flags.
           Typical  applications  would  be  to produce a variable bitrate
           stream with big buffers and a high data-rate software playback
           on a computer.

   -f|--format 1
           -       Standard VCD.

   An MPEG1 profile exactly to the VCD2.0  specification.   Flag  settings
   that  would  result  in  a  non-standard  stream  structure  are simply

   -f|--format 2
           -       User VCD.

   As for profile 2 but bitrate and video buffer size can be set  to  non-
   standard  values.  Frame  size  may also be non-standard.  Bit-rate and
   buffer sizes default to those for standard VCD.

   -f|--format 3
           -       Generic MPEG2.

   A basic MPEG-2 profile  that  lets  most  parameters  be  adjusted  for
   particular  applications  using  the other flags.  Typical applications
   would be to produce a MPEG-2 stream with big buffers and long GOP's for
   software playback on a computer.

   -f|--format 4
           -       Standard SVCD.

   An  MPEG-2  profile exactly to the SVCD2.0 specification. Flag settings
   that would  result  in  a  non-standard  stream  structure  are  simply

   -f|--format 5
           -       Non-standard SVCD.

   As  for  profile  4  but  bitrate,  video  buffer  size,  GOP sizes and
   structure can be set to non-standard values. Frame  size  may  also  be
   non-standard.   Bit-rate and buffer sizes default to those for standard

   -f|--format 6
           -       VCD Stills sequence.

   Encodes the special style of MPEG stream used for still images on VCDs.
   To  use  this profile you must set the target size you wish to compress
   the images to using the -T flag.   Reasonable values  are  around  35KB
   for standard resolution stills (352 wide) and 120KB for high resolution
   stills (704 wide).

   -f|--format 7
           -       SVCD Stills sequence.

   Encodes the special style of MPEG  stream  used  for  still  images  on
   SVCDs.   Both standard (480 wide) and high resolution (704 wide) images
   are supported. As with VCD stills you select how  big  each  compressed
   still should be using the -T flag.

   -f|--format 8
           -       DVD MPEG-2 for 'dvdauthor'

   This  version  adds  special  dummy  navigation packets into the output
   stream that the dvdauthor tool fills in  to  make  a  proper  .VOB  for
   authoring.   Bit-rate defaults to 7500kbps, buffer sizes to the maximum
   permitted by the DVD specification.

   -f|--format 9
           -       DVD MPEG-2.

   Just a very basic implementation. Useful with DXR2  board  and  similar
   hardware  that  can decode MPEG-2 only if it is presented in a DVD like
   form.  Bit-rate defaults to  7500kbps,  buffer  sizes  to  the  maximum
   permitted by the DVD specification.

   -f|--format 10
           -       ATSC 480i

   -f|--format 11
           -       ATSC 480p

   -f|--format 12
           -       ATSC 720p

   -f|--format 13
           -       ATSC 1080i


   -v|--verbose num

   Set  verbosity  level  to  num.   0  =  warnings  and  errors only, 1 =
   information as well, 2=really verbose.

    default | hi-res | file=inputfile | help

   Specify which quantisation matrices to  use  instead  of  the  defaults
   (which  can be specified by using "-K default").   Using "-K hi-res" is
   identical to using the -H option. The  value  kvcd  uses  the  Kvcd.Net
   matrices  from;  the  value  tmpgenc  invokes the
   TMPGEnc matrices from  On  average
   (this  depends  on  the source material), the tmpgenc tables reduce the
   average bitrate by about 10% and the  kvcd  tables  reduce  bitrate  by
   about 16% (compared to the default tables).

   -E|--unit-coeff-elim -40..40

   Specify  when a special 'unit coefficient elimination' algorithm should
   be applied to the encoded picture blocks.   Basically,  this  procedure
   forces  blocks  of  a  type  that  don't carry much information but are
   expensive to encode to be simply skipped.  The larger  the  number  the
   more  potentially  visible  this  skipping is likely to be but the more
   compression is boosted.  A negative value means that  all  coefficients
   are  zeroed,  positive  means  only  texture  but  not  base  intensity
   coefficients are zeroed.  Values of around 10 or -10 seem to work  well
   with  high  quality  source  material. For noisier material it might be
   worth trying 20 or -20.

   -R|--b-per-refframe 0..2

   Specify how many bi-directionally (B  type)  difference-encoded  frames
   should  be encoded between reference (I or P) frames.  The default is 0
   except for VCD encoding where it is 2  B  frames  as  required  by  the
   standard.    Experts  differ  on  how  much  using  B  frames  improves
   compression. In practice unless you have  really  clean  material  they
   tend  to  be  fairly  useless  and sometimes even harmful.  Encoding is
   significantly faster and uses less memory if no B  frames  are  encoded
   and compression is rarely more than marginally worse.


   Display a synopsis of the command syntax.


   N.b.  If the profile you have selected sets particular values for these
   parameters it will over-ride these adjustment  flags.   In  particular,
   there  is  almost nothing that can be adjusted for the standard VCD and
   SVCD profiles.

   -b|--video-bitrate num

   The bitrate of the output video stream in kBits/sec.   The  default  is
   exactly  the  bitrate  required  for  VCD streams.  If variable bitrate
   (VBR) mode has been selected (see the -q option) this  is  the  maximum
   bitrate  of  the stream. NOTE: By default MPEG-2 streams (-f 3, 4, 5, 8
   and 9 are VBR.  Use the --cbr option for generating CBR  (Constant  Bit
   Rate) streams.

   -A|--ratecontroller 0..1

   Specify which of the rate control algorithms to use.   Default is 0.

   -V|--video-buffer num

   The maximum video buffer usage required to decode the stream in KBytes.
   The default is 46KB the (tiny) size specified for VCD.  The size to use
   for  SVCD  is  the  (more reasonable) 230KB.  If you are encoding for a
   half-decent software decoder it makes sense to push this up to 500K  or

   -T|--target-still-size num

   Set the target size for (S)VCD still images in KB.


   This  flag  forces  the  encoder to generate a "sequence header" at the
   start of every  group-of-pictures.   This  is  needed  by  some  player
   hardware  to support fast forward/rewind/random access functions but is
   a waste of bits otherwise.


   The SVCD MPEG-2 profile demands that special "Scan  OFfset"  which  are
   (in  effect)  pointers  to  the  place on the final SVCD disk where the
   video for 0.5 and around 5-10 seconds behind and ahead in the stream is
   located.   The  intended  use  of  this  information is to support"Fast
   forward/Rewind" functions.  Unfortunately, at the time mpeg2enc encodes
   the  video  it doesn't know where the video is going to finally end up.
   So special dummy "Scan OFfset" values are written which are intended to
   be  filled  in during the creation of the SVCD image. Currently the GNU
   vcdimager tool handles this task.  However, in some  circumstances  the
   dummy   offsets   can  cause  problems.    This  flags  stops  mpeg2enc
   generating them.


   In  the  official  SVCD  standards  the  field  in  the  MPEG-2  header
   information  that  passes  on  the  encoders  "recommended"  horizontal
   resolution to decode the stream to is supposed to take the  values  540
   (for  4:3  sequences)  or  720  (for 16:9 sequences).  In practice many
   players don't work unless the value is 480. This flag, forces  mpeg2enc
   to  follow  the official standard. It is worth trying if 16:9 sequences
   play at 4:3 aspect ratio.


   This flag deactivates all constraints for the maximum video  samplerate
   or  video  resolution.  Its purpose is to allow the encoding of unusual
   resolutions of MPEG-video (e.g. 2200 x 576, 160 degrees FOV  VR-theatre
   MPEG  movies), but should be used with care: It can possible circumvent
   a number of other security checks,  and  untested  settings  can  cause
   mpeg2enc to crash in this mode.  -l|--level h|high|m|main

   This  flag  allows  the  MPEG-2  implementation level against which the
   coding parameters are checked to be set.  You may need to set  this  to
   'high' if you're encoding HDTV material.


   This  flag  deactivates  the  use  of  the  'alternate' macroblock scan
   pattern for MPEG2 encoding.  Normally this pattern is used  but  a  few
   elderly  software  decoders  had  bugs  relating  to this feature.  You
   should never need to use this flag.


   MPEG-2 supports a special motion  estimation  mode  (DPME,  Dual  Prime
   Motion Estimation) for I/P-frame only streams that can somewhat improve
   compression.  A number of players (both hardware and software)  do  not
   support  this  mode.  Those players  may or may not be MPEG-2 compliant
   depending if DPME is an option or not in the MPEG-2 specs.  If you need
   to  generate content for  such players (e.g. Ogle or Apple's DVD player
   application) you should NOT turn on dualprime-mpeg2!   Surprisingly  at
   least one hardware/set-top player is known to be allergic to DPME being

   -z|--playback-field-order b|t

   This flag overrides the field-order specified in the interlacing tag of
   the  input  stream  header.  (If  you  need this option, it indicates a
   problem in the capturing/encoding process where the temporal  order  of
   the two fields in each frame has been mislabeled. The effect of this is
   weird "juddering" when playing back the  stream  on  a  TV.  Check  the
   mjpeg-howto for more information about interlacing problems.)


   -n|--video-norm n|p|s

   Force  the  input  stream to be treated as NTSC|PAL|SECAM regardless of
   what the stream header might suggest.  Basically  this  just  sets  the
   defaults for a bunch of other options.

   -F|--frame-rate num

   Set  the  frame-rate  of  the  output-stream. By default, this value is
   inferred from the input header. Currently only the standard MPEG  rates
   are   supported.   Eventually  more-or-less  arbitrary  rates  will  be
    0 - illegal
    1 - 24000.0/1001.0 (NTSC 3:2 pulldown converted FILM)
    2 - 24.0 (NATIVE FILM)
    3 - 25.0 (PAL/SECAM VIDEO / converted FILM)
    4 - 30000.0/1001.0 (NTSC VIDEO)
    5 - 30.0
    6 - 50.0 (PAL FIELD RATE)
    7 - 60000.0/1001.0 (NTSC FIELD RATE)
    8 - 60.0

   -a|--aspect num

   Set the playback aspect ratio code of the encoded  video.  By  default,
   this value is inferred from the input header.
    1 - 1  - 1:1 display
    2 - 2  - 4:3 display
    3 - 3  - 16:9 display
    4 - 4  - 2.21:1 display

          For  MPEG-2  the  specified aspect ratios are used directly. For
          MPEG-1 mpeg2enc infers the MPEG-1 pixel  aspect  code  from  the
          video norm specified and the specified playback aspect ratio.

   -x|--display-hsize num

   -y|--display-vsize num

   These  set  the display-horizontal-size and display-vertical-size hints
   in  the  MPEG-2.   By  default  these  are  simply  the  encode   frame
   dimensions.   However,  if  they are set to different values the player
   gets a hint that  the  appropriate  'black  bars'  or  cropping/scaling
   should  be  performed.  The  main  use for these parameters is to set a
   display-vertical-size of 1080 for HDTV 1080i or 1080p material.   Here,
   since  the  frame  height has to be a multiple of 16, the encoded frame
   height is forced to be 1088, even though HDTV  standards  specify  only
   1080 lines of picture content.  Standards committees ... love' em.


   Setting  -p only makes sense for 24frame/sec Movie source material.  It
   sets flags in the output stream that tell the decoder to play the movie
   as  NTSC  60field/sec  video using "3:2 pulldown".  This is vastly more
   efficient than encoding as 60field/sec video.  The classic  application
   is  to transcode a PAL-encoded movie (24fps played too fast at 25 fps!)
   into NTSC (see the -f flag).


   -M|--multi-thread num_CPU

   MPEG encoding is a task that can be split over a small number of  CPU's
   quite  efficiently.   Mpeg2enc  can  be  internally  set to split major
   processing tasks between a number of concurrent  threads.    This  flag
   adjusts  the  multi-threading  to  the optimum to utilise the specified
   number of CPU's.

   It should be noted that even with 1 CPU present some multi-threading is
   performed:  frame  input  takes  place  in parallel with encoding.  The
   default -M value is 1.  This allows good  performance  to  be  achieved
   when when a seperate machine is being used for pre-processing (decoding
   from MJPEG, scaling, denoising etc)  with  the  final  result  pipe  to
   mpeg2enc (e.g. using rsh or ssh).

   Setting -M 0 disables all multithreading.  This is sometimes useful for
   debugging or to achieve maximum CPU efficiency  on  a  shared  machine.
   Setting -M 3 on a dual-CPU machine will produce slightly faster results
   than -M 2 at the price of slightly less CPU efficiency.  This is useful
   if  nothing else needs to be done on the encoding machine.  In practice
   there is little point setting -M greater than 4 even if the  CPU's  are
   available  due  to  the fairly coarse-grained parallelism used.  Indeed
   there is a hardcoded limit of 4 worker threads.

   The default has been changed to be 0 instead of 1 to avoid the crash at
   end of encoding:

   INFO: [mpeg2enc] Signaling last frame = 499
   mpeg2enc: void SeqEncoder::EncodeStream(): Assertion `pass1coded.size() == 0' failed.

   -q|--quantisation 1..31

   Minimum  quantisation  of the output stream.  Quantisation controls the
   precision with which image  information  is  encoded.   The  lower  the
   number  the  higher the quality but the greater the required data-rate.
   NOTE: on IA32 systems it is possible to cause  artifacting  by  setting
   the  value too low (3 or less) due to arithmetic overflow/truncation in
   the DCT/iDCT routines.  If this option is set a variable bitrate stream
   is produced.  This is more efficient but variable bitrate MPEG-1 cannot
   be played by some  hardware  decoders  and  is  rejected  by  some  DVD
   authoring  packages.   If you intend to use a software decoder you'd be
   insane not to use variable bitrate.

   If this option is set without a maximum bitrate  being  specified  then
   quantisation  is fixed at the specified value.  It should be noted that
   not  specifying  a  bitrate  is  probably  an  error  and  may  produce
   unexpected results.

   For  MPEG-2  streams  a  default  of  8 is used if -q is not explicitly
   given.  To force constant bitrate streams use --cbr and -b NOT -q!

   -I|--interlace-mode 0|1|2

   Set the sequence picture structure and block encoding type  for  MPEG-2
   streams.   By  default, this value is inferred from the interlacing tag
   of the input stream. Setting 0 encodes frame-by-frame with support  for
   interlaced  video  turned  off,  and  specifies that progressive chroma
   subsampling has been  used.   Setting  1  encodes  frame-by-frame  with
   interlace-adapted motion compensation and block encoding, and specifies
   that interlaced chroma subsampling has been  used.  Setting  2  encodes
   interlaced  material  field-by-field,  which will produce more accurate
   results for highly textured interlaced material with lots of motion, at
   the expense of generally less efficiency.

          This  setting  should  match  the  interlaced-ness  of the input
          stream, otherwise chroma artifacts may  be  generated  when  the
          MPEG stream is played back.

   -g|--min-gop-size num

   -G|--max-gop-size num

   These flags set the minimum and maximum group-of-picture (GOP) size for
   the output MPEG stream.   The  default  values  depend  on  the  output

   For  MPEG-1 (for example VCD) the default is a fixed GOP size of 12 (-g
   and -G are both set to 12).

   For MPEG-2 the default value of -G (max) is set according to the  video
   system:  -G  15  for  625 line (PAL) and 18 for 525 line (NTSC).  If -g
   (min) has not been specified then the minimum GOP size is set to be one
   half of the maximum (-G).

   To force a fixed GOP size specify both -g and -G with the same value.

   If  the  minimum  and maximum GOP sizes are not identical then mpeg2enc
   will start a new GOP if more than 60% of the macroblocks in a  P  or  B
   frame  are  Intra  encoded.   This ensure big changes of image coincide
   with a fully-encoded I-frame by starting  a new  GOP.   This  can  help
   prevent transient "blockiness".

   Reasonable minimum GOP sizes are 6 or 9.  If a minimum is not specified
   but a maximum is given then the minimum will be set  to  one  half  the
   maximum.   A larger GOP size can help reduce the bitrate required for a
   given quality.  However,  this  really  only  applies  to  high-quality
   source  material with little noise (e.g. digital video).  For broadcast
   material there is little point setting GOP size much beyond 21  or  24.
   Even  with  good  source  material  diminishing  returns  set  in quite
   rapidly.  Also it must be noted that specific MPEG-2 formats  (such  as
   for DVD) are constrained in the maximum allowable GOP size.

   Note:  mpeg2enc  is  currently hard-wired to produce 2 B frames between
   each I/P frame unless the GOP size forces less.  This is reasonable for
   medium  to  high  bitrates (>= 1Mbps) but probably sub-optimal for low-
   bitrate encoding.


   Setting this flag causes the encoder to  generate  only  "closed"  GOPs
   (Groups  of  Pictures)  that  can be decoded without reference to their
   predecessor.  This is useful for streams that are supposed to  be  used
   in  multi-angle DVD's and applications where more easily edittable MPEG
   is required.


   This flag forces the GOP size selection to choose sizes that ensure 2 B
   frames  appear  between  adjacent  I/P  frames.   Several common MPEG-1
   decoders can't handle streams where less than 2 B-frames appear between
   I/P frames.

   -Q|--quantisation-reduction -4.0..5.0

   This flag sets the amount quantisation is reduced for blocks containing
   large amounts of sharp image detail.  Large values  produces  efficient
   use of bits but may cause visible artifacting around detailed sections.
   With noisy source material this option may cause a "swimming" effect on
   textured  backgrounds  as the noise cause the quantisation of blocks to
   be boosted at random.  The default is  0.0  (off).   See  also  the  -X

   -X|--quant-reduction-max-var 0.0..2500.0

   Luma variance below which quantisation boost (-Q) is activated.

   -r|--motion-search-radius num

   This  flag sets the motion estimation search radius.  For most purposes
   the default (16) should be just fine.  For high-resolution  MPEG-2  and
   active  scenes  it may be worth bumping it up.  However, this will make
   encoding significantly slower.  There  is  little  point  reducing  the
   radius.   Speed  gains  are  not  huge and the impact on quality can be

   -4|--reduction-4x4 1..4

   -2|--reduction-2x2 1..4

   These options control how radical  the  encoder  is  in  throwing  away
   apparently  poor  candidate  estimates  during  motion  estimation.   A
   setting of 1 means very few blocks are discarded early which makes  for
   slow  encoding but quality as good as it gets. A setting of 4 makes for
   fast encoding but can impact quality.  The -4 flag controls  discarding
   during  the  initial 4*4 sub-sampled search stage, the -2 flag controls
   discarding during the secondary 2*2 sub-sampled stage.

          These flags  are  useful  as  the  speed  quality  trade-off  is
          markedly  different  depending on which CPU you have.  On modern
          machines the impact on speed is  around  a  factor  2  on  older
          machines  a  factor  3.   The  impact  on  quality is around 10%
          quantisation (0.2 of a bit of precision in  encoding  textures).
          For most purposes the default settings will be fine.  However on
          P-III Katmai etc -4 2 -2 1 gives  a  good  near-optimum  quality
          setting with reasonably speed.

   -N|--reduce-hf num

   Setting this flag adjusts the way texture detail is quantised to reduce
   the precision with which of high-frequency information encoded. This is
   very  useful  for  mildly  noisy  sources.   If  you  have really noisy
   material the filtering tools available in mjpegtools are a much  better
   bet.   The  specified  number must be in the range 0.0 to 2.0 gives the
   maxium quantisation boost.  A useful number to use would be 1.5 or 1.0.


   Setting this flag makes  the  encoder  encode  as  much  high-frequency
   information  as  possible.    This  is  a  good  setting for maximising
   quality at VCD resolution with good quality low-noise source  material.
   It can also help with "swimmy" material if you can spare the bitrate!

   -D|--intra_dc_prec num

   Specifies  the  precision  of  the DC component. The default is 9. Most
   commercial DVDs use 10. Using 9 instead saves  a  few  bits.  Using  10
   might  help  to  avoid  looking  larger  areas of nearly the same color
   blocky.  A value of 11 is only valid at the next  MPEG-2  profile/level
   so it's not a currently meaningful value to use.


   -S|--sequence-length num

   This  flag  allows the target size of individual sequences in the final
   multiplexed stream to be set in MBytes. If set  mpeg2enc keeps track of
   how  large  the eventual stream is getting and inserts a sequence split
   (actually: sequence end / sequence start) into the output  stream  each
   time  it  reaches  the  specified  limit.  The multiplexer mplex(1) can
   recognise these splits and start a new  multiplexed  output  file  each
   time  it  encounters  one.    In  this  way it is easy to automatically
   ensure each component sequence file can be burnt onto a CD-R and  still
   be  played  as  a  stand-alone  MPEG  sequence.    For the SVCD and VCD
   profiles the default target sequence length is 700M  bytes.  For  other
   profiles the default is that sequence length is unlimited.

   -B|--nonvideo-bitrate num

   Since  mpeg2enc  can't  read minds it cannot know in advance what other
   material will be multiplexed with the output video stream.  Thus to get
   its  calculations  of  where to insert split point right it needs to be
   told the combined data-rate of the other material that is eventually to
   be  multiplexed  with  the  video.   This  flag  allows this rate to be
   specified in K bits/sec.

   A good rule of thumb is to use the total rate of all the other  streams
   plus 1% of the total rate including video.


   Force  the  use  of Constant Bit Rate encoding.  Less than optimal (and
   inefficient in almost all cases) but some folks  insist  on  it.  NOTE:
   this disables (overrides) the use of the -q option!

   It  is  an  error to use this option and not specify a bitrate using -b
   since a constant bitrate of 0 makes no sense.

   --chapters frame,...

   This flag allows you to define chapter points within the  mpeg  stream.
   This  is  most useful when generating DVD video.  Each chapter point is
   specified by frame number, with the first frame being number 0.   Every
   chapter  point  defined will end up at the beginning of a closed GOP as
   an I frame.

SSE, 3D-Now!, MMX !

   mpeg2enc makes extensive use of these SIMD instruction set extension on
   x86 family CPU's.  The routines used are determined dynamically at run-
   time.  It should be noted that  using  SSE  requires  operating  system
   support.   Old 2.2.x Linux kernels (unless patched ones like RedHat) do
   not have this  and  so  SSE,  although  physically  present,  won't  be


   There  should  be  an  option to force GOP sizes that permit 2 B frames
   between I/P frames.  Some decoders (even software)   can't  handle  the
   case  where I/P frames come back to back or with only 1 B frame between

   There needs to be a facility for writing dummy user-data fields so that
   the   multiplexer/imager  can  insert  forward/backward  pointers  when
   muxing/imaging an SVCD.


   This man page was written by Andrew Stevens.  If  you  have  questions,
   remarks,  problems or you just want to contact the developers, the main
   mailing list for the MJPEG-tools is:

   For more info, see our website at


   mplex(1), mp2enc(1),  lavrec(1),  lavplay(1),  lav2yuv(1),  lav2wav(1),
   yuvscaler(1), yuvdenoise(1), y4mdenoise(1), mjpegtools(1)


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.

Free Software

Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.

Free Books

The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.