JPC-RR r11.7
[jpcrr.git] / streamtools / manual.txt
blob1c4f3b418f04ece33fbf1cf7c7fcb0a5da6ee621
1 Dumping processing tools manual
3 1 Concatenating dumps
5 Concatenation of dump files is concatenation of their contents. 
6 So cat and similar tools can be used to concatenate dumps.
8 2 Brief description of tools
10 • audiotodump.exe - Convert raw PCM audio to dump file.
12 • cutdump.exe - Save section of dump file to another.
14 • demuxdump.exe - Save stream from dump file to another.
16 • dumpconvert.exe - Convert dump files to variety of formats.
18 • dumppackets.exe - Dump contents of dump in textual form (meant 
19   for debugging).
21 • fmtopcm.exe - Convert individual FM-type stream into PCM-type 
22   stream.
24 • guessresolution.exe - Try to guess resolution of video.
26 • mknulldump.exe - Make empty dump of specified length.
28 • muxdump.exe - Mux streams from multiple dumps together.
30 • picturestodump.exe - Make dump with specified image or 
31   animation.
33 • playdump.exe - Play dump in realtime.
35 • testresizer.exe - Test various resizer algorithms on still 
36   image (meant for debugging).
38 3 audiotodump.exe
40 Converts raw PCM audio to dump file containing said audio as PCM 
41 audio track.
43 Syntax: audiotodump.exe <options> <input> <stream> <output>
45 Convert raw PCM audio from file <input> to dump named <output>. 
46 The audio data is placed as PCM-type stream named <stream>.
48 3.1 Options
50 3.1.1 --8bit
52 Assume that samples in file are 8 bits per channel.
54 3.1.2 --16bit
56 See --16bit-little-endian
58 3.1.3 --16bit-little-endian
60 Assume that sample in file are 16 bits per channel and 
61 little-endian. This is the default.
63 3.1.4 --16bit-big-endian
65 Assume that sample in file are 16 bits per channel and 
66 big-endian.
68 3.1.5 --mono
70 Assume that samples in file have only one channel.
72 3.1.6 --stereo
74 Assume that samples in file have two channels in order left, 
75 right, left, right,... This is the default.
77 3.1.7 --stereo-swapped
79 Assume that samples in file have two channels in order right, 
80 left, right, left...
82 3.1.8 --signed
84 Assume that samples in file are signed. This is the default.
86 3.1.9 --unsigned
88 Assume that samples in file are unsigned.
90 3.1.10 --rate=<rate>
92 Assume that sampling rate in input file is <rate> Hz.
94 3.1.11 --volume=<left>,<right>
96 Write initial volume <left> for left channel and <right> for 
97 right channel to output.
99 3.1.12 --volume=<volume>
101 Write initial volume <volume> for both channels to output.
103 4 cutdump.exe
105 Copies section out of the dump.
107 syntax: cutdump.exe <input> <start> <end> <output>
109 Cuts section <start> to <end> from dump <input> and saves it to 
110 <output>.
112 <start> and <end> are specified in nanoseconds if these don't 
113 contain '.'. Otherwise these are assumed to be in seconds. So for 
114 example both 100000000 and 0.1 signifies 0.1s point.
116 5 demuxdump.exe
118 Copies stream out of the dump.
120 syntax: demuxdump.exe <input> <stream> <output>
122 Copies stream <stream> from dump <input> and saves it to 
123 <output>.
125 6 dumpconvert.exe
127 The main dump to other formats converter.
129 syntax: dumpconvert.exe <options> [<subtitle options>...] [<audio 
130 options>...] <files>...
132 Convert <files>... into other formats. Note that this tool takes 
133 subtitle and audio options (and that they are shared with 
134 playdump.exe).
136 6.1 Options
138 6.1.1 --video-width=<width>
140 Set video output width to <width>. No default, must be specified.
142 6.1.2 --video-height=<height>
144 Set video output height to <height>. No default, must be 
145 specified.
147 6.1.3 --video-framerate=<fps>
149 Set video output fps to <fps>. <fps> can also be 'auto' to allow 
150 variable-framerate output. Default is fixed 60fps.
152 6.1.4 --video-scale-algo=<algo>
154 Set video scaling algorithm to <algo>. Currently following 
155 algorithms are available:
157 • 'nearest' (nearest neighbor)
159 • 'bilinear' (bilinear interpolation)
161 • 'average' (weighted average of covered pixels)
163 • 'lanczos1', 'lanczos2', 'lanczos3', 'lanczos4', 'lanczos5' 
164   (higher-quality resizeers)
166 • 'xdrop9' (drop every 9th column followed by nearest neighbor, 
167   handy for matching 720x400 text mode with 640x400 GFX mode)
169 • 'hqx2', 'hqx3', 'hqx4', 'hqx22', 'hqx32', 'hqx42', 'hqx2d', 
170   'hqx3d', 'hqx4d' (HQx resizers; requires compile with HQx 
171   support).
173 Additionally <algo> can be in form [<algo> <width> <height>]... 
174 <algo> to do multi-step resize with specified intermediate 
175 resolutions. The order resizes are performed is from right to 
176 left.
178 6.1.5 --video-scale-algo=”<algo> <width> <height>”
180 Set video scaling algorithm to <algo> for frames that are <width> 
181 by <height> (i.e. set special scaler for specific resolution).
183 6.1.6 --video-max-dedup=<dedup>
185 Allow up to <dedup> consequtive frames to be elided if they are 
186 indentical to previous (truly identical, not just “identical”). 
187 Requires variable framerate output.
189 6.1.7 --audio-delay=<delay>
191 Delay audio by <delay> nanoseconds/seconds (seconds if <delay> 
192 has '.', nanoseconds otherwise). Delay may be negative.
194 6.1.8 --subtitle-delay=<delay>
196 Delay subtitles by <delay> nanoseconds/seconds (seconds if 
197 <delay> has '.', nanoseconds otherwise). Delay may be negative.
199 6.1.9 --output-<format>=<filename>[,<parameters>]
201 Output to <filename> in format <format>. <parameters> is 
202 format-dependent parameters.
204 6.2 Output formats
206 6.2.1 oggenc
208 syntax: 
209 --output-oggenc=<filename>[,<oggenc-option>[,<oggenc-option[...]]]
211 Pipe audio to oggenc in order to encode OGG Vorbis to <filename>. 
212 Note that audio bitrate and format is automatically set 
213 correctly. For oggenc options in form --foo=bar, use foo=bar as 
214 <oggenc-option>. For oggenc options of form --baz, use baz as 
215 <oggenc-option>
217 6.2.2 rawaudio
219 syntax: --output-rawaudio=<filename>
221 Write 16-bit stereo little-endian signed audio track in raw 
222 format to <filename>.
224 6.2.3 rawi420
226 syntax: --output-rawi420=<filename>
228 Write video in raw I420 format to <filename>
230 6.2.4 rawi420-uvswap
232 syntax: --output-rawi420-uvswap=<filename>
234 Write video in raw I420 format to <filename>. Red and blue are 
235 swapped.
237 6.2.5 rawrgbx
239 syntax: --output-rawrgbx=<filename>
241 Write video in raw RGBx format to <filename>.
243 6.2.6 timecodev2
245 syntax: --output-timecodev2=<filename>
247 Write video timestamp data in v2 format to <filename>. Very 
248 useful for automatic-/variable-fps encoding.
250 6.2.7 wav
252 syntax: --output-wav=<filename>
254 Write audio in wav form to <filename>. Note that files with over 
255 1 billion samples are not written properly.
257 6.2.8 x264
259 syntax: 
260 --output-x264=<filename>[,<x264-option>[,<x264-option[...]]]
262 Pipe video to x264 in order to encode h.264 to <filename>. Note 
263 that video size is automatically set correctly. For x264 options 
264 in form --foo bar, use foo=bar as <x264-option>. For x264 options 
265 of form --baz, use baz as <x264-option>. 
267 BUG: Framerate is not set correctly automatically.
269 6.2.9 faac
271 syntax: --output-faac=<filename>[,<option>[,<option>[...]]]
273 Pipe audio to faac in order to encode AAC to <filename>. 
274 Interesting options include 'q=<quality>' (set quality), 
275 'c=<freq>' (force bandwidth, default is autodetect).
277 7 dumppackets.exe
279 Dump the stream in textual format (useful for debugging):
281 syntax: dumppackets.exe <file>
283 Dumps the data in <file> in textual form.
285 8 fmtopcm.exe
287 Convert given stream from FM format to PCM format (this is mainly 
288 useful for dumps somehow containing multiple FM streams).
290 syntax: fmtopcm.exe <input> <stream> <rate> <output>
292 Reads dump from <input> and converts FM output on stream <stream> 
293 into PCM output at sampling rate <rate>. The output (all other 
294 streams plus converted stream) is written to <output>.
296 9 guessresolution.exe
298 Try to guess proper encoding resolution from dump.
300 sytax: guessresolution.exe <files>...
302 Read given files <files>... and try to guess the proper 
303 resolution.
305 10 mknulldump.exe
307 Make empty clip of specified length.
309 syntax: mknulldump.exe <length> <output>
311 Make empty clip of <length> nanoseconds (seconds if <length> 
312 contains dot) and write it to <output>.
314 11 muxdump.exe
316 Mux multiple dumps into one.
318 syntax: muxdump.exe <input>... <output>
320 Read dump files <input>... and combine streams, writing result to 
321 <output>.
323 12 picturestodump.exe
325 Transform set of pictures into dump.
327 syntax: picturestodump.exe [--fps=<fps>] <input>... <output>
329 Reads pictures from <input>... and writes dump at <fps> (defaults 
330 to 60 if not specified) to <output> containing those pictures.
332 13 playdump.exe
334 Play dump in realtime.
336 syntax: playdump.exe [<subtitle options>...] [<audio options>...] 
337 [--audio-rate=<rate>]
339 [--speed=<percent>] <files>...
341 Play concatenation of <files>... at <percent>% realtime speed 
342 (default 100%). Use <rate> Hz for audio sampling rate (default 
343 44100Hz). Note that this command accepts audio and subtitle 
344 options.
346 14 testresizer.exe
348 Resize image and show result. This is mainly intended for 
349 debugging resizers.
351 syntax: testresizer.exe <image> <algo> <width> <height>
353 Read <image> and resize it to <width> by <height> using algorithm 
354 <algo> (see dumpconvert.exe option --video-scale-algo for 
355 possible algorithms). Then display the result on screen.
357 15 Audio processing options
359 Audio processing has three stages:
361 • Per-stream premix filtering
363 • Mixing
365 • Postmix filtering.
367 For each, the operations are done in order they are given on 
368 command line. If <stream> is specified for some operation, it 
369 occurs as part of premix filtering for that stream. Otherwise it 
370 occurs as postmix filtering.
372 15.1 --audio-mixer-filter=[<stream>:]<a0>,<a1>,...
374 Perform FIR filtering using coefficients <a0>, <a1>, ..., given 
375 in order of increasing delay.
377 15.2 --audio-mixer-filter=[<stream>:]<a0>,<a1>,...;<b0>,<b1>,...
379 Perform IIR filtering using input coefficents <a0>, <a1>, ..., 
380 output coefficients <b0>, <b1>,... given in order of increasing 
381 delay.
383 15.3 --audio-mixer-gain=[<stream>:]<gain>
385 Amplify signal by <gain> dB.
387 15.4 --audio-mixer-attenuate=[<stream>:]<attenuation>
389 Attenuate signal by <attenuation> dB.
391 15.5 --silence[=<stream>]
393 Silence specified stream or entiere sound output.
395 16 Subtitle processing options
397 Subtitle option of form foo=bar is given as 
398 --video-hardsub-foo=bar on command line and as foo=bar in script 
399 file. For option of form baz, the corresponding forms are 
400 --video-hardsub-baz and baz. Options are processed in order they 
401 are encountered, script files are processed immediately when 
402 script file option is encountered.
404 16.1 font=<font>
406 Syntax (command line): --video-hardsub-font=<font>
408 Syntax (script): font=<font>
410 Set the font used to <font>. No default, this has to be set 
411 before using any font rendering commands.
413 16.2 size=<size>
415 Syntax (command line): --video-hardsub-size=<size>
417 Syntax (script): size=<size>
419 Set the size used to <size>. Default is 16.
421 16.3 xpos=<xpos>
423 Syntax (command line): --video-hardsub-xpos=<xpos>
425 Syntax (script): xpos=<xpos>
427 Set the x offset to <xpos> pixels. There are also special offsets 
428 left, center and right. Default is center.
430 16.4 ypos=<ypos>
432 Syntax (command line): --video-hardsub-ypos=<ypos>
434 Syntax (script): ypos=<ypos>
436 Set the y offset to <ypos> pixels. There are also special offsets 
437 top, center and bottom. Default is bottom.
439 16.5 duration=<duration>
441 Syntax (command line): --video-hardsub-duration=<duration>
443 Syntax (script): duration=<duration>
445 Set the duration to <duration> (nano)seconds (seconds being 
446 selected if <duration> has '.'). Default is 5.0 (5 seconds).
448 16.6 halo=<thickness>
450 Syntax (command line): --video-hardsub-halo=<thickness>
452 Syntax (script): halo=<thickness>
454 Set the halo thickness to <thickness> pixels. 0 disables halo. 
455 Default is 0.
457 16.7 textalign=<align>
459 Syntax (command line): --video-hardsub-textalign=<align>
461 Syntax (script): textalign=<align>
463 Set the between-lines text alignment to <align>. Valid alignments 
464 are left, center and right. Default is center.
466 16.8 spacing=<amount>
468 Syntax (command line): --video-hardsub-spacing=<amount>
470 Syntax (script): spacing=<amount>
472 Set the between-lines text spacing to <amount> pixels. Default is 
475 16.9 script=<file>
477 Syntax (command line): --video-hardsub-script=<file>
479 Read file <file> and execute it as subtitle commands.
481 16.10 text=<timestamp>,<text>
483 Syntax (command line): --video-hardsub-text=<timestamp>,<text>
485 Syntax (script): text=<timestamp>,<text>
487 Display <text> at <timestamp> (seconds or nanoseconds, depending 
488 on presence of '.'). The following sequences are special in 
489 <text>:
491 • '\\': Literal backslash
493 • '\n': Newline
495 • '\A': Authors from runinfo
497 • '\G': Game name from runinfo
499 • '\L': Movie length from runinfo.
501 • '\R': Movie rerecord count from runinfo.
503 16.11 background-color=<color>
505 Syntax (command line): --video-hardsub-background-color=<color>
507 Syntax (script): background-color=<color>
509 Set the background color to <color>. Following <color> 
510 specifications are allowed:
512 • '<a>': Partially transparent black. <a> of 0 is fully 
513   transparent, 255 is fully opaque.
515 • '<rgb>,<a>': Partially transparent gray. <a> of 0 is fully 
516   transparent, 255 is fully opaque. <rgb> sets brightness of 
517   gray, 0 is black and 255 is white.
519 • '<r>,<g>,<b>,<a>': Partially transparent color. <a> of 0 is 
520   fuly transparent, 255 is fully opaque. <r>, <g> and <b> set the 
521   color (0-255 for each component).
523 Default is fully transparent.
525 16.12 foreground-color=<color>
527 Syntax (command line): --video-hardsub-foreground-color=<color>
529 Syntax (script): foreground-color=<color>
531 Set the foreground color to <color>. Following <color> 
532 specifications are allowed:
534 • '<a>': Partially transparent white. <a> of 0 is fully 
535   transparent, 255 is fully opaque.
537 • '<rgb>,<a>': Partially transparent gray. <a> of 0 is fully 
538   transparent, 255 is fully opaque. <rgb> sets brightness of 
539   gray, 0 is black and 255 is white.
541 • '<r>,<g>,<b>': Fully opaque color. <r>,<g>, <b> set the color 
542   (0-255 for each component).
544 • '<r>,<g>,<b>,<a>': Partially transparent color. <a> of 0 is 
545   fuly transparent, 255 is fully opaque. <r>, <g> and <b> set the 
546   color (0-255 for each component).
548 Default is fully opaque white.
550 16.13 halo-color=<color>
552 Syntax (command line): --video-hardsub-halo-color=<color>
554 Syntax (script): halo-color=<color>
556 Set the halo color to <color>. Following <color> specifications 
557 are allowed:
559 • '<a>': Partially transparent black. <a> of 0 is fully 
560   transparent, 255 is fully opaque.
562 • '<rgb>,<a>': Partially transparent gray. <a> of 0 is fully 
563   transparent, 255 is fully opaque. <rgb> sets brightness of 
564   gray, 0 is black and 255 is white.
566 • '<r>,<g>,<b>': Fully opaque color. <r>,<g>, <b> set the color 
567   (0-255 for each component).
569 • '<r>,<g>,<b>,<a>': Partially transparent color. <a> of 0 is 
570   fuly transparent, 255 is fully opaque. <r>, <g> and <b> set the 
571   color (0-255 for each component).
573 Default is fully opaque black.
575 16.14 push
577 Syntax (command line): --video-hardsub-push
579 Syntax (script): push
581 Save all settings to settings stack.
583 16.15 pop
585 Syntax (command line): --video-hardsub-pop
587 Syntax (script): pop
589 Pop all settings from settings stack and apply them.
591 16.16 reset
593 Syntax (command line): --video-hardsub-reset
595 Syntax (script): reset
597 Reset all settings that have defaults to defaults (ones that 
598 don't are not reset).