Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
2 | pj | 1 | MPEG_PLAY(1) MPEG_PLAY(1) |
2 | 28 May 1995 |
||
3 | |||
4 | NAME |
||
5 | mpeg_play - plays mpeg-1 encoded bitstreams using X11 |
||
6 | |||
7 | SYNOPSIS |
||
8 | mpeg_play [ -nob ] [ -nop ] [ -display display_name ] [ -quality |
||
9 | {on|off} ] [ -dither dither_option ] [ -loop ] [ -eachstat ] [ -seek |
||
10 | offset ] [ -start num ] [ -end num ] [ -gamma gamma_correction_value ] |
||
11 | [ -framerate num ] [ -no_display ] [ -controls {on|off|none} ] [ - |
||
12 | shmem_off ] [ -l_range num ] [ -cr_range num ] [ -cb_range num ] [ - |
||
13 | quiet ] file_name |
||
14 | |||
15 | DESCRIPTION |
||
16 | mpeg_play decodes and displays mpeg-1 encoded bitstreams on systems |
||
17 | running X11. The player will create a new window, display the |
||
18 | bitstream, and exit. Any error messages or notices are sent to |
||
19 | stderr. |
||
20 | |||
21 | OPTIONS |
||
22 | -nob : causes the player to ignore and not display any B frames. |
||
23 | |||
24 | -nop : causes the player to ignore and not display any P and B frames. |
||
25 | |||
26 | -display display_name : causes the player to open the window on the |
||
27 | display display_name. |
||
28 | |||
29 | -quality {on|off} : forces player to choose output quality over speed |
||
30 | when on, and vice versa when off. When quality is on, the player |
||
31 | uses a computationally expensive IDCT and also improves playback |
||
32 | through improved handling of half pixel motion vectors. The |
||
33 | default can be set to on if you compile mpeg_play with the flag |
||
34 | -DQUALITY. |
||
35 | |||
36 | -dither dither_option : selects from a variety of dither options. The |
||
37 | possible values are: |
||
38 | |||
39 | ordered - ordered dither. |
||
40 | |||
41 | ordered2 - a faster ordered dither. This is the default. |
||
42 | |||
43 | mbordered - ordered dithering at the macroblock level. Although |
||
44 | there is a noticeable decrease in dither quality, this is |
||
45 | the fastest dither available. |
||
46 | |||
47 | fs4 - Floyd-Steinberg dithering with 4 error values propagated. |
||
48 | |||
49 | fs2 - Floyd-Steinberg dithering with 2 error values propagated. |
||
50 | |||
51 | fs2fast - Fast Floyd-Steinberg dithering with 2 error values |
||
52 | propagated. |
||
53 | |||
54 | hybrid - Hybrid dithering, a combination of ordered dithering for |
||
55 | the luminance channel and Floyd-Steinberg 2 error dithering |
||
56 | for the chrominance channels. Errors are NOT propagated |
||
57 | properly and are dropped all together every two pixels in |
||
58 | either direction. |
||
59 | |||
60 | hybrid2 - Hybrid dithering as above, but with error propagation |
||
61 | among pixels. |
||
62 | |||
63 | 2x2 - A dithering technique using a 2x2 pixel area for each |
||
64 | pixel. The image displayed is 4 times larger than the |
||
65 | original image encoded. Random error terms are added to each |
||
66 | pixel to break up contours and gradients. |
||
67 | |||
68 | gray - Grayscale dithering. The image is dithered into 128 |
||
69 | grayscales. Chrominance information is thrown away. |
||
70 | |||
71 | gray256 - Grayscale dithering. The image is dithered into 256 |
||
72 | grayscales (requires private colormap). Chrominance |
||
73 | information is thrown away. |
||
74 | |||
75 | color - Full color display (only available on 16/24 bit color |
||
76 | displays). |
||
77 | |||
78 | color2 - Full color display with increased size (only available |
||
79 | on 16/24 bit color displays). |
||
80 | |||
81 | none - no dithering is done, no image is displayed. Used to time |
||
82 | decoding process. |
||
83 | |||
84 | mono - Floyd-Steinberg dithering for monochrome displays. |
||
85 | |||
86 | threshold - Floyd-simple dithering for monochrome displays. |
||
87 | |||
88 | ppm - Write a PPM file for each frame. |
||
89 | |||
90 | -loop : makes the player loop back to the beginning after reaching the |
||
91 | end. |
||
92 | |||
93 | -owncm : makes the player use a private colormap for the window. |
||
94 | |||
95 | -step : requires the user to press return for each new frame. |
||
96 | |||
97 | -seek offset : before playing the movie, seek to the given offset in |
||
98 | the file (useful for large movies). In this case -end is |
||
99 | redefined to give the number of frames to play, and -start has no |
||
100 | meaning. The offset should point to a Sequence or (closed) GOP |
||
101 | header, but data will be discarded until one is found. The |
||
102 | initial sequence header will be parsed before the seek. The |
||
103 | skipped sections must not change the quantization matrices or the |
||
104 | results are undefined. |
||
105 | |||
106 | -start num : Waits to start display until this frame number (previous |
||
107 | frames are parsed). |
||
108 | |||
109 | -end num : ends display at this frame number (except when -seek is |
||
110 | used). |
||
111 | |||
112 | -gamma gamma_correction_param : specifies the amount of gamma |
||
113 | correction. Default is 1.0. Use higher values if movie looks |
||
114 | dark and hard to see. |
||
115 | |||
116 | -framerate num : sets the framerate of the playback to num frames per |
||
117 | second. A value of 0 indicates that the stream should be played |
||
118 | as fast as possible. The default is to play at the rate |
||
119 | specified in the stream (if possible). Note this is merely a |
||
120 | framerate limiter, it will not discard frames to meet the rate. |
||
121 | |||
122 | -controls {on|off|none} : determines the initial interactive X user |
||
123 | interface control bar state (if available). The value on |
||
124 | (default) opens the control bar at initialization and enters |
||
125 | pause mode after displaying the first frame. The value off |
||
126 | leaves the control bar initially hidden and begins playback |
||
127 | without pausing (similar to the old behavior). The control bar |
||
128 | can be toggled on and off at any time by clicking in the video |
||
129 | display window, unless the -controls none option is specified, in |
||
130 | which case the control bar is unavailable and playback functions |
||
131 | as though the player were built without interactive controls |
||
132 | (exactly the old behavior). |
||
133 | |||
134 | -quiet : suppresses printing of frame numbers, timing information, and |
||
135 | most error messages. |
||
136 | |||
137 | -eachstat : causes statistics to be displayed after each frame. Only |
||
138 | valid when compiled with -DANALYSIS. |
||
139 | |||
140 | -shmem_off : turns shared memory off. |
||
141 | |||
142 | -l_range num_colors : sets the number of colors assigned to the |
||
143 | luminance component when dithering the image. The product of |
||
144 | l_range, cr_range and cb_range should be less than the number of |
||
145 | colors on the display. |
||
146 | |||
147 | -cr_range num_colors : sets the number of colors assigned to the red |
||
148 | component of the chrominance range when dithering the image. The |
||
149 | product of l_range, cr_range and cb_range should be less than the |
||
150 | number of colors on the display. |
||
151 | |||
152 | -cb_range num_colors : sets the number of colors assigned to the blue |
||
153 | component of the chrominance range when dithering the image. The |
||
154 | product of l_range, cr_range and cb_range should be less than the |
||
155 | number of colors on the display. |
||
156 | |||
157 | -no_display : dithers, but does not display, usually used for testing |
||
158 | and timing purposes. |
||
159 | |||
160 | NOTES |
||
161 | The player expects video streams only. It can handle multiplexed MPEG |
||
162 | streams (video+audio streams) by discarding the audio. Some streams do |
||
163 | not end with the proper sequence end code and will probably generate |
||
164 | an "Improper sequence end code." error when done playing. This player |
||
165 | can play XING data files. Be aware that XING makes no use of temporal |
||
166 | redundancy or motion vector information. In other words, they do not |
||
167 | use any P or B frames in their streams. Instead, XING data is simply a |
||
168 | sequence of I frames. Since I frames take significantly longer to |
||
169 | decode, performance of the player using XING data is not |
||
170 | representative of the player's ability. The player does not play |
||
171 | MPEG-1 D-frame streams, but they are a rarity. If the player is |
||
172 | compiled without the controlbar, then it can play multiple streams in |
||
173 | different windows. |
||
174 | |||
175 | VERSION |
||
176 | This is version 2.1a, containing some new features since 2.0, and |
||
177 | several bug fixes. It is a major change since version 1.0. |
||
178 | |||
179 | BUGS |
||
180 | The only known bug is that multiple mpeg_plays cannot seem to be run |
||
181 | simultaneously on a multiprocessor SPARC 20 or a SparcCenter 2000E |
||
182 | using shared memory (in particular: "On a bi-processor Sparc 20/20 |
||
183 | sparc-processor 2000E running Solaris 2.3 or 2.4, it is not possible |
||
184 | to run two concurrent 'mpeg_play -loop' on the same bitstream. One of |
||
185 | the mpeg_play dies when it loops." This may be a problem with the X |
||
186 | shared memory library and not our code.) |
||
187 | |||
188 | AUTHORS |
||
189 | Ketan Patel - University of California, Berkeley, |
||
190 | kpatel@cs.berkeley.edu |
||
191 | |||
192 | Brian Smith - University of California, Berkeley, |
||
193 | bsmith@cs.berkeley.edu |
||
194 | |||
195 | Henry Chi-To Ma - University of California, Berkeley, |
||
196 | cma@cs.berkeley.edu |
||
197 | |||
198 | Kim Man Liu - University of California, Berkeley, kliu@cs.berkeley.edu |
||
199 | |||
200 | Steve Smoot - University of California, Berkeley, |
||
201 | smoot@cs.berkeley.edu |
||
202 | |||
203 | Eugene Hung - University of California, Berkeley, |
||
204 | eyhung@cs.berkeley.edu |