Skip to content
Snippets Groups Projects
README 16.4 KiB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537
README for the TOOLS directory
==============================

Preamble
--------

In this directory you can find some nice scripts and code that makes
using MPlayer and MEncoder easier, for example scripts for DVD track
encoding in three pass mode or creating SVCDs from a movie.

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



MEncoder scripts in the TOOLS dir
---------------------------------

divx2svcd.sh

Author:       Miklos Vajna

Description:  A simple utility that creates an SVCD from a video in an AVI
              container.

Usage:        divx2svcd.sh <input_avi> [options]
              see 'divx2svcd.sh -h' for more info


mencvcd.sh

Author:       Jürgen Hammelmann

Description:  Converts DVD (or anything else that MPlayer plays) to (S)VCD

Usage:        mencvcd.sh <basename> [mencvcd.sh options] [mplayer options]
              see 'mencvcd.sh -h' for more info

Note:         Requires MPlayer, mjpegtools, VCDImager, cdrdao, and optionally
              LAME, tooLAME and SoX.


dvd2divxscript.pl

Author:       Florian Schilhabel

Description:  Yet another DVD to divx helper script.
              This script encodes a DVD track in three pass mode to MPEG-4 with
              libavcodec. Optionally it writes the resulting movie file to
              CD-ROM the corresponding audio track to MP3. It can also shut
              down the computer when it finishes. If you like, you can
              watch the MEncoder output on /dev/tty8.

Usage:        --help       show help
              --abr        (AudioBitRate) Please enter the desired bitrate this
                           can be either [96|128|192] kbit/sec (default: 128).
              --lang       Specify the Language of the audio track this can be
                           for example <en> or <de> (default: <de>).
              --dvd        Specify the DVD track you want to encode.
              --cdsize     Specify the size of your CD-ROM (default: 700MB).
              --shutdown   Shutdown the system, when the encoding process has
                           finished. Needs appropriate privileges.
              --out        Specify the name of your encoded movie. The file
                           extension will be appended automatically.
              --writecd    Takes the newly created movie and writes it to a
                           CD-ROM.
              --writedev   cdrecord device identifier, for example 0,1,0
              --speed      writing speed (default: 4)
              --dvd-device device to pull the video off (default: /dev/dvd)


aconvert.sh

Author:       Jonas Jermann

Description:  A hack to allow MEncoder to read respectively encode from audio
              only files.

Usage:        aconvert.sh <"input file"> <"output file"> <"options">
              If no options are specified the following is assumed:
              -oac lavc -lavcopts acodec=mp3:abitrate=192

Note:         The script is probably bash dependent and it's just a quick
              hack, feel free to improve it (or much better: fix MEncoder ;).



qepdvcd.sh

Author:       Reynaldo H. Verdejo Pinochet

Description:  converter from any supported format to VCD/SVCD PAL/NTSC

Usage:        qepdvcd.sh file <options>
              Run with no arguments to see the list of options.

Note:         You will need vcdimager/cdrecord to master/burn the resulting
              files.



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, to do this use
              'mencoder -forceidx -oac copy -ovc 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


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
---------------------------------

NOTE: netstream does not link at the moment - help welcome.

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 netstream' 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.