1 README for the TOOLS directory
2 ==============================
7 In this directory you can find some nice scripts and code that makes
10 FIXME: Document the following tools:
15 MPlayer scripts in the TOOLS dir
16 --------------------------------
18 edgedetect.fp, emboss.fp
20 Author: Reimar Döffinger
22 Description: Examples of custom fragment program for OpenGL video out driver
24 Usage: mplayer -vo gl:yuv=4:customprog=edgedetect.fp
29 Author: Tobias Diedrich
31 Description: Runs 'mplayer -identify' for all arguments while preventing
32 video window flashing.
34 Usage: midentify.sh file1 [file2 ...]
41 Description: Script to run MPlayer on the console (fbdev/mga_vid/etc.) without
42 the console text and/or flashing cursor getting in the way.
44 Usage: mpconsole.sh [mplayer options]
49 Author: Reimar Döffinger
51 Description: Example how to output video on multiple windows in sync. Might
52 be even more useful in combination with -vo ggi to distribute
53 the video arbitrarily.
55 Usage: mplmult.sh <n> <options>
56 n Number of MPlayer instances that display the video.
57 options Any options you would pass to MPlayer, more than
58 one file will usually not work.
63 Author: Alex Beregszaszi
65 Description: Collects subtitle files from the directory given as argument
66 ('.' if none is given) and its subdirectories and prints
67 them as a comma separated list to stdout.
69 Usage: subsearch.sh [directory]
70 mplayer -sub `subsearch.sh` movie
77 Description: Converts WMA files to Ogg or MP3.
79 Usage: wma2ogg [options] <-f FILE1 | -f FILE2 ... | -a>
81 -a converts all WMA files in the current directory
82 -t output filetype (ogg, mp3) [default=ogg]
83 -lame I wanna use L.A.M.E. sure enough!
84 -br bitrate (kb/s) [default=from the WMA]
85 -del remove WMA file(s) after the transcoding
88 Tech scripts in the TOOLS dir
89 -----------------------------
95 Description: A script that calculates the $bpp for a movie, mentioned in
96 DOCS/tech/encoding-tips.txt, see that document for more info.
98 Usage: calcbpp.pl <resolution> <aspect ratio> <bitrate> <fps>
99 resolution: the cropped but unscaled resolution
100 (use '-vf cropdetect')
101 aspect ratio: the encoded aspect ratio. All DVDs come at
102 720x576 but contain a flag that tells the player
103 wether it should display the DVD at an aspect
104 ratio of 4/3 (1.333) or at 16/9 (1.777). Have a
105 look at MPlayer's output - there's something
106 about 'prescaling'. That's what you are looking
108 bitrate: the video bitrate in kbit/s
111 example: calcbpp.pl 720x440 16/9 896 25
116 Author: Moritz Bunkus
118 Description: Counts the quantizers used for the encoding, mentioned in
119 DOCS/tech/encoding-tips.txt, see that document for more info.
121 Usage: countquant.pl < divx2pass.log
122 It will print out which quantizer was used how often. If you see
123 that e.g. the lowest quantizer (vqmin=2) gets used for > 95% of
124 the frames then you can safely increase your picture size.
129 Author: Jonas Jermann
131 Description: Draw PSNR log graphs using gnuplot.
133 Usage: plotpsnr.pl [options] <file>
134 -h, --help Display this help message
135 -quant Display quantizers
138 -iframes Display I-frames
139 -pframes Display P-frames
140 -bframes Display B-frames
141 -aframes Display all frames in different colors
142 -cmp <file2> Compare two files
143 -qs <style> Quantizer style
144 -ss <style> Size style
145 -ps <style> PSNR style
147 Default: -quant -size -psnr -qs "p" -ss "i" -ps "p"
149 Note: Requires gnuplot. Comparison is based on file2. Comparison
150 assumes that the frame numbers of both files fit.
155 Author: Matthias Wieser
157 Description: Calculates the PSNR between two existing video files.
158 The PSNR is calculated frame by frame.
159 Also prints the overall PSNR.
160 The script can be used to:
161 * Compare different softwarescalers (should I use
163 * Compare different resolutions (is it better to scale
164 down to 640x360 or to 560x320)
165 * Compare different deinterlacers
166 * Compare different video codecs
167 * Compare video filters (is it better to use -vf hqdn3d
171 Usage: psnr-video.sh <file1> <file2> [<frames>] [<options1>] [<options2>]
173 <file1> and <file2> are the video files for which the PSNR
174 should be calculated.
175 [<frames>] is the number of frames to process, starting
177 [<options1>] are additional MPlayer options for <file1>
178 [<options2>] are additional MPlayer options for <file2>
180 A file called ./psnr.dat will be created with the following
184 00000001.ppm;34.23;39.54;40.06;35.426
185 00000002.ppm;33.03;38.71;39.26;34.271
186 00000003.ppm;33.45;38.91;39.28;34.655
187 00000004.ppm;32.72;38.69;38.85;33.972
189 00000247.ppm;35.55;40.84;42.15;36.785
192 Note: This script relies on the the tool "pnmpsnr" for the
193 frame-by-frame PSNR calculation.
194 Be aware that psnr-video.sh needs a lot of temporary space
202 Description: a simple ASF header display program
204 Usage: asfinfo <filename.asf>
206 Note: Also see MPlayer's -identify option.
213 Description: A simple tool to fix chunk sizes in RIFF AVI files.
215 Usage: avi-fix [-fix] <badfile.avi>
217 Note: It does not check or fix the index. You can try to fix it with
218 ffmpeg -i ... -acodec copy -vcodec copy.
223 Author: Ivo van Poorten
225 Description: Check the source tree for anomalies.
227 Usage: checktree.sh -help
229 Note: This script is meant for developers to check the current
230 source tree and/or the patches they are working on.
237 Description: Check console message translations for common errors.
239 Usage: mphelp_check.py [--missing] <master file> <files to check>
241 Note: Compares MPlayer translation files against a master file and
242 reports conflicting arguments, extra strings not present in
243 the base file and (optionally) missing strings.
250 Description: the prototype ../cpuinfo.c
252 Note: Used by configure to emulate /proc/cpuinfo on non-Linux systems.
259 Description: MPEG4-ES stream inspector, dumps the stream startcodes.
264 Author: Felix Bünemann
266 Description: benchmark/testbed for fastmemcpy stuff
268 Note: Also see fastmem.sh.
275 Description: Show QuickTime MOV file structure.
277 Usage: movinfo <filename.mov>
284 Description: Dump H.263 frame headers from VIVO files.
286 Usage: vivodump <input_file> <output_file>
290 Miscellaneous scripts in the TOOLS dir
291 --------------------------------------
295 Author: Michael Klepikov
297 Description: A script for pipelined editing of subtitle files.
299 Usage: subedit.pl [switches]
300 -if,--input-format <fmt> input format; supported: SRT (default: SRT)
301 -of,--output-format <fmt> output format; supported: SRT
302 (default: input format)
303 -s,--shift <time> shift all subtitles by <time>
304 (format: [-]hh:mm:ss,fraction)
305 -c,--scale <time> scale by adding <time> to overall duration
306 -f,--split-from <time> drop subtitles that end before <time>
307 -t,--split-to <time> drop subtitles that start after <time> (will
308 truncate timing if it overlaps a boundary)
309 -r,--renumber renumber SRT subtitles in output
310 -d,--debug enable debug output
311 -h,--help help message
318 Description: This script will use the Windows Media Player codec download
319 infrastructure to aquire the codecs listed in codecs.conf and put
320 them in a directory named "codecs/" below the current directory.
322 Usage: w32codec_dl.pl <codecs.conf location>
324 Note: You will need the libwww-perl stuff and the cabextract utility
325 which can be found at http://www.kyz.uklinux.net/cabextract.php3.
330 Author: Andrea Menucci, thuglife
332 Description: Downloads binary codecs from mplayerhq.hu and installs them
335 Usage: binary_codecs.sh install
336 binary_codecs.sh uninstall
343 Description: Adjust the time-info in vobsub files
345 Usage: vobshift.py in.idx out.idx +8.3
346 Will shift the time by 8.3 seconds
351 Author: Kim Minh Kaplan
353 Description: Transform VOBsub subtitles into Subrip text subtitles using
356 Usage: subrip <vobsub basename> [subid [output filename] ]
358 Note: Requires at least JOCR/GOCR 0.37.
359 You will have to change the 'vobsub_id' value if you want a
360 subtitle different from number 0. Hint: You can view the
361 subtitle that is being decoded with "display subtitle-*.pgm".
368 Description: Generates alaw/ulaw tables.
370 Note: Created to work around a past license issue, no longer useful.
375 Author: Tobias Diedrich
377 Description: Dumps vobsub soft subtitles streams embedded in AVI files.
379 Usage: avisubdump <movie.avi>
384 Author: Gianluigi Tiesi
386 Description: Creates a codec settings file from the Video for Windows codecs
387 found in the mplayer codec packs.
389 Usage: vfw2menc -f <fourcc> -d <codec.dll> -s <settingsfile.mcf>
390 -h|--help - displays this help
391 -d|--driver filename - dll or drv to load
392 -f|--fourcc fourcc - fourcc of selected driver
393 -s|--save filename - save settings to file
394 -c|--check filename - load and show setting in filename
395 -v|--view - displays the config dialog and do nothing
397 Notes: Works on Windows/Linux x86 only.
404 Description: Modifies registry file (usually ~/.mplayer/registry)
406 Usage: modify_reg -r <registry_file> -l
407 modify_reg -r <registry_file> -k <key> [-d|-v <value>[-t <type>]]
408 -r|--registry - path to registry file
409 -l|--list - shows all keys and values
410 -k|--key - registry key
411 -d|--del - delete key
412 -v|--value - new value for key
413 -t|--type - key type: string (default) or dword
415 Notes: Necessary to use CoreAVC with MPlayer
420 Author: Michael Niedermayer
422 Description: Simple file compare program that detects the number of rounding
423 errors and dies if the error is too large.
425 Usage: compare <file1> <file2>
430 Author: miscellaneous
432 Description: Wrappers for Linux Real binary codecs used to analyze, alter and
433 dump the data flow between RealPlayer and its codecs.
435 Usage: - Set the path to the RealPlayer codecs directory in the C files.
436 - Run 'make realcodecs'.
437 - Rename the original codecs to match the names expected in the
438 wrapper sources. The default is to give them a "real" prefix,
439 e.g. realcook.so.6.0.
440 - Put the wrappers in the RealPlayer codecs directory.
442 Notes: Known to work at least on Linux x86 with RealPlayer8.
446 netstream - access remote streams
447 ---------------------------------
449 netstream allows you to access most MPlayer stream types from a remote host.
450 The main purpose of this feature is to make it possible to directly use the
451 CD or DVD drive of another computer on the network (provided you have the
452 required bandwidth). On the downside some stream types (currently TV and MF)
453 are not usable remotely because they are implemented at the demuxer level.
455 Be aware that currently the server is not secure at all.
457 Compile the server by running 'make TOOLS/netstream' ('make TOOLS/netstream.exe'
458 on windows) from the root of mplayer source and then copy the netstream binary
459 to the right place on your system (usually /usr/local/bin on Unix). Start the
460 netstream server on the computer you intend to access remotely. There are no
461 command line arguments.
463 Play the second track of a VCD on the server with:
465 mplayer -cache 5000 mpst://servername/vcd://2
467 Access files on this server with:
469 mplayer -cache 5000 mpst://servername//usr/local/movies/lol.avi
471 Note that paths which do not start with a / will be interpreted as relative to
472 the directory where the server is running. The '-cache' option is not needed
473 but highly recommended.
475 netstream will not take -dvd-device, so you must either symlink
476 your drive to /dev/dvd/ or use the dvd:///path/to/dvd.
477 for example: mpst://audioserver/dvd:////dev/optical/lg_black_dvd