packages icon



 MPEG_PLAY(1)                                                   MPEG_PLAY(1)
                                 28 May 1995



 NAME
      mpeg_play - plays mpeg-1 encoded bitstreams using X11

 SYNOPSIS
      mpeg_play [ -nob ] [ -nop ] [ -display display_name ] [ -quality
      {on|off} ] [ -dither dither_option ] [ -loop ] [ -eachstat ] [ -seek
      offset ] [ -start num ] [ -end num ] [ -gamma gamma_correction_value ]
      [ -framerate num ] [ -no_display ] [ -controls {on|off|none} ] [ -
      shmem_off ] [ -l_range num ] [ -cr_range num ] [ -cb_range num ] [ -
      quiet ] file_name

 DESCRIPTION
      mpeg_play decodes and displays mpeg-1 encoded bitstreams on systems
      running X11.  The player will create a new window, display the
      bitstream, and exit.  Any error messages or notices are sent to
      stderr.

 OPTIONS
      -nob : causes the player to ignore and not display any B frames.

      -nop : causes the player to ignore and not display any P and B frames.

      -display display_name : causes the player to open the window on the
           display display_name.

      -quality {on|off} : forces player to choose output quality over speed
           when on, and vice versa when off.  When quality is on, the player
           uses a computationally expensive IDCT and also improves playback
           through improved handling of half pixel motion vectors.  The
           default can be set to on if you compile mpeg_play with the flag
           -DQUALITY.

      -dither dither_option : selects from a variety of dither options. The
           possible values are:

           ordered - ordered dither.

           ordered2 - a faster ordered dither. This is the default.

           mbordered - ordered dithering at the macroblock level. Although
                there is a noticeable decrease in dither quality, this is
                the fastest dither available.

           fs4 - Floyd-Steinberg dithering with 4 error values propagated.

           fs2 - Floyd-Steinberg dithering with 2 error values propagated.

           fs2fast - Fast Floyd-Steinberg dithering with 2 error values
                propagated.





                                    - 1 -           Formatted:  June 1, 2020






 MPEG_PLAY(1)                                                   MPEG_PLAY(1)
                                 28 May 1995



           hybrid - Hybrid dithering, a combination of ordered dithering for
                the luminance channel and Floyd-Steinberg 2 error dithering
                for the chrominance channels. Errors are NOT propagated
                properly and are dropped all together every two pixels in
                either direction.

           hybrid2 - Hybrid dithering as above, but with error propagation
                among pixels.

           2x2 - A dithering technique using a 2x2 pixel area for each
                pixel. The image displayed is 4 times larger than the
                original image encoded. Random error terms are added to each
                pixel to break up contours and gradients.

           gray - Grayscale dithering. The image is dithered into 128
                grayscales. Chrominance information is thrown away.

           gray256 - Grayscale dithering. The image is dithered into 256
                grayscales (requires private colormap). Chrominance
                information is thrown away.

           color - Full color display (only available on 16/24 bit color
                displays).

           color2 - Full color display with increased size (only available
                on 16/24 bit color displays).

           none - no dithering is done, no image is displayed. Used to time
                decoding process.

           mono - Floyd-Steinberg dithering for monochrome displays.

           threshold - Floyd-simple dithering for monochrome displays.

           ppm - Write a PPM file for each frame.

      -loop : makes the player loop back to the beginning after reaching the
           end.

      -owncm : makes the player use a private colormap for the window.

      -step : requires the user to press return for each new frame.

      -seek offset : before playing the movie, seek to the given offset in
           the file (useful for large movies).  In this case -end is
           redefined to give the number of frames to play, and -start has no
           meaning.  The offset should point to a Sequence or (closed) GOP
           header, but data will be discarded until one is found.  The
           initial sequence header will be parsed before the seek.  The
           skipped sections must not change the quantization matrices or the
           results are undefined.



                                    - 2 -           Formatted:  June 1, 2020






 MPEG_PLAY(1)                                                   MPEG_PLAY(1)
                                 28 May 1995



      -start num : Waits to start display until this frame number (previous
           frames are parsed).

      -end num : ends display at this frame number (except when -seek is
           used).

      -gamma gamma_correction_param : specifies the amount of gamma
           correction.  Default is 1.0.  Use higher values if movie looks
           dark and hard to see.

      -framerate num : sets the framerate of the playback to num frames per
           second.  A value of 0 indicates that the stream should be played
           as fast as possible.  The default is to play at the rate
           specified in the stream (if possible).  Note this is merely a
           framerate limiter, it will not discard frames to meet the rate.

      -controls {on|off|none} : determines the initial interactive X user
           interface control bar state (if available).  The value on
           (default) opens the control bar at initialization and enters
           pause mode after displaying the first frame.  The value off
           leaves the control bar initially hidden and begins playback
           without pausing (similar to the old behavior).  The control bar
           can be toggled on and off at any time by clicking in the video
           display window, unless the -controls none option is specified, in
           which case the control bar is unavailable and playback functions
           as though the player were built without interactive controls
           (exactly the old behavior).

      -quiet : suppresses printing of frame numbers, timing information, and
           most error messages.

      -eachstat : causes statistics to be displayed after each frame. Only
           valid when compiled with -DANALYSIS.

      -shmem_off : turns shared memory off.

      -l_range num_colors : sets the number of colors assigned to the
           luminance component when dithering the image.  The product of
           l_range, cr_range and cb_range should be less than the number of
           colors on the display.

      -cr_range num_colors : sets the number of colors assigned to the red
           component of the chrominance range when dithering the image.  The
           product of l_range, cr_range and cb_range should be less than the
           number of colors on the display.

      -cb_range num_colors : sets the number of colors assigned to the blue
           component of the chrominance range when dithering the image.  The
           product of l_range, cr_range and cb_range should be less than the
           number of colors on the display.




                                    - 3 -           Formatted:  June 1, 2020






 MPEG_PLAY(1)                                                   MPEG_PLAY(1)
                                 28 May 1995



      -no_display : dithers, but does not display, usually used for testing
           and timing purposes.

 NOTES
      The player expects video streams only. It can handle multiplexed MPEG
      streams (video+audio streams) by discarding the audio. Some streams do
      not end with the proper sequence end code and will probably generate
      an "Improper sequence end code." error when done playing.  This player
      can play XING data files. Be aware that XING makes no use of temporal
      redundancy or motion vector information. In other words, they do not
      use any P or B frames in their streams. Instead, XING data is simply a
      sequence of I frames. Since I frames take significantly longer to
      decode, performance of the player using XING data is not
      representative of the player's ability.  The player does not play
      MPEG-1 D-frame streams, but they are a rarity.  If the player is
      compiled without the controlbar, then it can play multiple streams in
      different windows.

 VERSION
      This is version 2.1a, containing some new features since 2.0, and
      several bug fixes.  It is a major change since version 1.0.

 BUGS
      The only known bug is that multiple mpeg_plays cannot seem to be run
      simultaneously on a multiprocessor SPARC 20 or a SparcCenter 2000E
      using shared memory (in particular:  "On a bi-processor Sparc 20/20
      sparc-processor 2000E running Solaris 2.3 or 2.4, it is not possible
      to run two concurrent 'mpeg_play -loop' on the same bitstream.  One of
      the mpeg_play dies when it loops."  This may be a problem with the X
      shared memory library and not our code.)

 AUTHORS
      Ketan Patel - University of California, Berkeley,
           kpatel@cs.berkeley.edu

      Brian Smith - University of California, Berkeley,
           bsmith@cs.berkeley.edu

      Henry Chi-To Ma - University of California, Berkeley,
           cma@cs.berkeley.edu

      Kim Man Liu - University of California, Berkeley, kliu@cs.berkeley.edu

      Steve Smoot - University of California, Berkeley,
           smoot@cs.berkeley.edu

      Eugene Hung - University of California, Berkeley,
           eyhung@cs.berkeley.edu






                                    - 4 -           Formatted:  June 1, 2020