1
mirror of https://github.com/mpv-player/mpv synced 2024-11-14 22:48:35 +01:00
mpv/TOOLS/README

478 lines
14 KiB
Plaintext

README for the TOOLS directory
==============================
Preamble
--------
In this directory you can find some nice scripts and code that makes
using MPlayer easier.
FIXME: Document the following tools:
bmovl-test
MPlayer scripts in the TOOLS dir
--------------------------------
edgedetect.fp, emboss.fp
Author: Reimar Döffinger
Description: Examples of custom fragment program for OpenGL video out driver
Usage: mplayer -vo gl:yuv=4:customprog=edgedetect.fp
midentify.sh
Author: Tobias Diedrich
Description: Runs 'mplayer -identify' for all arguments while preventing
video window flashing.
Usage: midentify.sh file1 [file2 ...]
mpconsole.sh
Author: Rich Felker
Description: Script to run MPlayer on the console (fbdev/mga_vid/etc.) without
the console text and/or flashing cursor getting in the way.
Usage: mpconsole.sh [mplayer options]
mplmult.sh
Author: Reimar Döffinger
Description: Example how to output video on multiple windows in sync. Might
be even more useful in combination with -vo ggi to distribute
the video arbitrarily.
Usage: mplmult.sh <n> <options>
n Number of MPlayer instances that display the video.
options Any options you would pass to MPlayer, more than
one file will usually not work.
subsearch.sh
Author: Alex Beregszaszi
Description: Collects subtitle files from the directory given as argument
('.' if none is given) and its subdirectories and prints
them as a comma separated list to stdout.
Usage: subsearch.sh [directory]
mplayer -sub `subsearch.sh` movie
wma2ogg.pl
Author: Peter Simon
Description: Converts WMA files to Ogg or MP3.
Usage: wma2ogg [options] <-f FILE1 | -f FILE2 ... | -a>
-f, -file filename
-a converts all WMA files in the current directory
-t output filetype (ogg, mp3) [default=ogg]
-lame I wanna use L.A.M.E. sure enough!
-br bitrate (kb/s) [default=from the WMA]
-del remove WMA file(s) after the transcoding
Tech scripts in the TOOLS dir
-----------------------------
calcbpp.pl
Author: Moritz Bunkus
Description: A script that calculates the $bpp for a movie, mentioned in
DOCS/tech/encoding-tips.txt, see that document for more info.
Usage: calcbpp.pl <resolution> <aspect ratio> <bitrate> <fps>
resolution: the cropped but unscaled resolution
(use '-vf cropdetect')
aspect ratio: the encoded aspect ratio. All DVDs come at
720x576 but contain a flag that tells the player
wether it should display the DVD at an aspect
ratio of 4/3 (1.333) or at 16/9 (1.777). Have a
look at MPlayer's output - there's something
about 'prescaling'. That's what you are looking
for.
bitrate: the video bitrate in kbit/s
fps: the fps
example: calcbpp.pl 720x440 16/9 896 25
countquant.pl
Author: Moritz Bunkus
Description: Counts the quantizers used for the encoding, mentioned in
DOCS/tech/encoding-tips.txt, see that document for more info.
Usage: countquant.pl < divx2pass.log
It will print out which quantizer was used how often. If you see
that e.g. the lowest quantizer (vqmin=2) gets used for > 95% of
the frames then you can safely increase your picture size.
plotpsnr.pl
Author: Jonas Jermann
Description: Draw PSNR log graphs using gnuplot.
Usage: plotpsnr.pl [options] <file>
-h, --help Display this help message
-quant Display quantizers
-size Display size
-psnr Display PSNR
-iframes Display I-frames
-pframes Display P-frames
-bframes Display B-frames
-aframes Display all frames in different colors
-cmp <file2> Compare two files
-qs <style> Quantizer style
-ss <style> Size style
-ps <style> PSNR style
Default: -quant -size -psnr -qs "p" -ss "i" -ps "p"
Note: Requires gnuplot. Comparison is based on file2. Comparison
assumes that the frame numbers of both files fit.
psnr-video.sh
Author: Matthias Wieser
Description: Calculates the PSNR between two existing video files.
The PSNR is calculated frame by frame.
Also prints the overall PSNR.
The script can be used to:
* Compare different softwarescalers (should I use
-sws 1 or -sws 2 ?)
* Compare different resolutions (is it better to scale
down to 640x360 or to 560x320)
* Compare different deinterlacers
* Compare different video codecs
* Compare video filters (is it better to use -vf hqdn3d
or lavcopts:nr=400)
* [...]
Usage: psnr-video.sh <file1> <file2> [<frames>] [<options1>] [<options2>]
<file1> and <file2> are the video files for which the PSNR
should be calculated.
[<frames>] is the number of frames to process, starting
from frame 1.
[<options1>] are additional MPlayer options for <file1>
[<options2>] are additional MPlayer options for <file2>
A file called ./psnr.dat will be created with the following
content:
File;Y;Cb;Cr
00000001.ppm;34.23;39.54;40.06;35.426
00000002.ppm;33.03;38.71;39.26;34.271
00000003.ppm;33.45;38.91;39.28;34.655
00000004.ppm;32.72;38.69;38.85;33.972
[...]
00000247.ppm;35.55;40.84;42.15;36.785
PSNR:;35.9887
Note: This script relies on the the tool "pnmpsnr" for the
frame-by-frame PSNR calculation.
Be aware that psnr-video.sh needs a lot of temporary space
in /tmp/.
asfinfo
Author: Arpi
Description: a simple ASF header display program
Usage: asfinfo <filename.asf>
Note: Also see MPlayer's -identify option.
avi-fix
Author: Arpi
Description: A simple tool to fix chunk sizes in RIFF AVI files.
Usage: avi-fix [-fix] <badfile.avi>
Note: It does not check or fix the index. You can try to fix it with
ffmpeg -i ... -acodec copy -vcodec copy.
checktree.sh
Author: Ivo van Poorten
Description: Check the source tree for anomalies.
Usage: checktree.sh -help
Note: This script is meant for developers to check the current
source tree and/or the patches they are working on.
mphelp_check.py
Author: Uoti Urpala
Description: Check console message translations for common errors.
Usage: mphelp_check.py [--missing] <master file> <files to check>
Note: Compares MPlayer translation files against a master file and
reports conflicting arguments, extra strings not present in
the base file and (optionally) missing strings.
cpuinfo
Author: Jürgen Keil
Description: the prototype ../cpuinfo.c
Note: Used by configure to emulate /proc/cpuinfo on non-Linux systems.
dump_mp4
Author: Arpi
Description: MPEG4-ES stream inspector, dumps the stream startcodes.
fastmemcpybench
Author: Felix Bünemann
Description: benchmark/testbed for fastmemcpy stuff
Note: Also see fastmem.sh.
movinfo
Author: Arpi
Description: Show QuickTime MOV file structure.
Usage: movinfo <filename.mov>
vivodump
Author: Arpi
Description: Dump H.263 frame headers from VIVO files.
Usage: vivodump <input_file> <output_file>
Miscellaneous scripts in the TOOLS dir
--------------------------------------
subedit.pl
Author: Michael Klepikov
Description: A script for pipelined editing of subtitle files.
Usage: subedit.pl [switches]
-if,--input-format <fmt> input format; supported: SRT (default: SRT)
-of,--output-format <fmt> output format; supported: SRT
(default: input format)
-s,--shift <time> shift all subtitles by <time>
(format: [-]hh:mm:ss,fraction)
-c,--scale <time> scale by adding <time> to overall duration
-f,--split-from <time> drop subtitles that end before <time>
-t,--split-to <time> drop subtitles that start after <time> (will
truncate timing if it overlaps a boundary)
-r,--renumber renumber SRT subtitles in output
-d,--debug enable debug output
-h,--help help message
w32codec_dl.pl
Author: Tom Lees
Description: This script will use the Windows Media Player codec download
infrastructure to aquire the codecs listed in codecs.conf and put
them in a directory named "codecs/" below the current directory.
Usage: w32codec_dl.pl <codecs.conf location>
Note: You will need the libwww-perl stuff and the cabextract utility
which can be found at http://www.kyz.uklinux.net/cabextract.php3.
binary_codecs.sh
Author: Andrea Menucci, thuglife
Description: Downloads binary codecs from mplayerhq.hu and installs them
on a Debian system.
Usage: binary_codecs.sh install
binary_codecs.sh uninstall
vobshift.py
Author: Gábor Farkas
Description: Adjust the time-info in vobsub files
Usage: vobshift.py in.idx out.idx +8.3
Will shift the time by 8.3 seconds
subrip.c
Author: Kim Minh Kaplan
Description: Transform VOBsub subtitles into Subrip text subtitles using
GOCR/JOCR.
Usage: subrip <vobsub basename> [subid [output filename] ]
Note: Requires at least JOCR/GOCR 0.37.
You will have to change the 'vobsub_id' value if you want a
subtitle different from number 0. Hint: You can view the
subtitle that is being decoded with "display subtitle-*.pgm".
alaw-gen.c
Author: Arpi
Description: Generates alaw/ulaw tables.
Note: Created to work around a past license issue, no longer useful.
avisubdump.c
Author: Tobias Diedrich
Description: Dumps vobsub soft subtitles streams embedded in AVI files.
Usage: avisubdump <movie.avi>
vfw2menc.c
Author: Gianluigi Tiesi
Description: Creates a codec settings file from the Video for Windows codecs
found in the mplayer codec packs.
Usage: vfw2menc -f <fourcc> -d <codec.dll> -s <settingsfile.mcf>
-h|--help - displays this help
-d|--driver filename - dll or drv to load
-f|--fourcc fourcc - fourcc of selected driver
-s|--save filename - save settings to file
-c|--check filename - load and show setting in filename
-v|--view - displays the config dialog and do nothing
Notes: Works on Windows/Linux x86 only.
modify_reg.c
Author: Alan Nisota
Description: Modifies registry file (usually ~/.mplayer/registry)
Usage: modify_reg -r <registry_file> -l
modify_reg -r <registry_file> -k <key> [-d|-v <value>[-t <type>]]
-r|--registry - path to registry file
-l|--list - shows all keys and values
-k|--key - registry key
-d|--del - delete key
-v|--value - new value for key
-t|--type - key type: string (default) or dword
Notes: Necessary to use CoreAVC with MPlayer
compare.c
Author: Michael Niedermayer
Description: Simple file compare program that detects the number of rounding
errors and dies if the error is too large.
Usage: compare <file1> <file2>
realcodecs/
Author: miscellaneous
Description: Wrappers for Linux Real binary codecs used to analyze, alter and
dump the data flow between RealPlayer and its codecs.
Usage: - Set the path to the RealPlayer codecs directory in the C files.
- Run 'make realcodecs'.
- Rename the original codecs to match the names expected in the
wrapper sources. The default is to give them a "real" prefix,
e.g. realcook.so.6.0.
- Put the wrappers in the RealPlayer codecs directory.
Notes: Known to work at least on Linux x86 with RealPlayer8.
netstream - access remote streams
---------------------------------
netstream allows you to access most MPlayer stream types from a remote host.
The main purpose of this feature is to make it possible to directly use the
CD or DVD drive of another computer on the network (provided you have the
required bandwidth). On the downside some stream types (currently TV and MF)
are not usable remotely because they are implemented at the demuxer level.
Be aware that currently the server is not secure at all.
Compile the server by running 'make TOOLS/netstream' ('make TOOLS/netstream.exe'
on windows) from the root of mplayer source and then copy the netstream binary
to the right place on your system (usually /usr/local/bin on Unix). Start the
netstream server on the computer you intend to access remotely. There are no
command line arguments.
Play the second track of a VCD on the server with:
mplayer -cache 5000 mpst://servername/vcd://2
Access files on this server with:
mplayer -cache 5000 mpst://servername//usr/local/movies/lol.avi
Note that paths which do not start with a / will be interpreted as relative to
the directory where the server is running. The '-cache' option is not needed
but highly recommended.
netstream will not take -dvd-device, so you must either symlink
your drive to /dev/dvd/ or use the dvd:///path/to/dvd.
for example: mpst://audioserver/dvd:////dev/optical/lg_black_dvd