Subversion Repositories LCARS


Rev 20 | Blame | Compare with Previous | Last modification | View Log | RSS feed

\" dvdsubtitles.1 - the *roff document processor src for the dvdsubtitles manual
\" This file is part of PointedEars' DVD Subtitles.
\" Copyright (C) 2005, 2006  Thomas Lahn <>
\" Permission is granted to copy, distribute and/or modify this document
\" under the terms of the GNU Free Documentation License, Version 1.2
\" or any later version published by the Free Software Foundation;
\" with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
\" Texts.  A copy of the license is available on the Web[1] or
\" from the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
\" Boston, MA  02110-1301  USA.
\" [1] <>
\" You may contact the author by:
\" e-mail:
\" snail mail:
\"   Thomas Lahn
\"   Warschauer Strasse 1a/0403
\"   D-99089 Erfurt
\"   Federal Republic of Germany

.TH dvdsubtitles 1 "2006-02-15" "" "DVD Tools"

dvdsubtitles \- Extract subtitle stream from DVD-Video data to text file


.B dvdsubtitles
.RB [ -hVkl ]
.RB [ -t
.RB [ -s
.RB [ -o
.RB [ -g

.B dvdsubtitles
.B -c
.RB [ -o

.B dvdsubtitles
.RB [ -hVkl ]


.BR tccat (1)
.BR tcextract (1)
from the
.B transcode
package to extract a subtitle stream from DVD-Video data.  This stream
is converted into image files with
.BR subtitle2pgm ,
and those are converted to text files using
.BR pgm2txt ,
both from the
.B subtitleripper
package, which in turn calls
.BR gocr (1).
The previously created subtitle index file (.srtx) and the resulting text
files are then compiled into one text file using either
.BR srttool ,
from the
.B subtitleripper
package, or
.BR sed (1).
(See Output Format below.)
.B -c
option allows for compiling existing text files into that format according to
a subtitle index file without extracting a subtitle stream first (see below).
\" .PP
\" If the
\" .B -S
\" option is used, this program also performs a minor correction of common
\" misrecognition errors via
\" .BR sed (1),
\" i.e. a standalone `l' (small letter L) or one followed by an apostrophe
\" is converted to `I' (capital letter I).
All temporary files are deleted afterwards (`clean-up'), unless a fatal error
occurred or a user interrupt was detected; the extracted subtitle stream file
is kept for future use if the
.B -k
option is used.
Based on
.B DVD ripping and transcoding with Linux
by Moritz Bunkus <>, available at

.SS Output Format
The format of the subtitle text file this program creates is similar to that the
.B SubRip
program creates:
.I Subtitle number
.IB "Start time " --> " End time"
.I Text of subtitle (one or more lines)
.I Blank line
Like the SubRip format, field data starts at the beginning of each line.
The time format used is `\fIhours\fB:\fIminutes\fB:\fIseconds\fR',
.I hours
.I minutes
with two digits each. The
.I seconds
field is precise to three decimal points; the decimal separator used is
the comma.
Different to the SubRip format, the line break used is the
standard UNIX Line Feed (LF, 0x0A) character.  The
.I Subtitle number
field was not included before version 0.6.1.


Options are supported since version 0.4.  This aims at achieving POSIX
conformance and easy introduction of new features while maintaining
backwards compatibility to versions before 0.4.  However, non-option
calls are deprecated and may not be supported in future versions.
If additional program arguments are used, any option argument is
overwritten by the corresponding program argument.  Options may be
given in any order, and are also considered options if located after
the first program argument.  Too many program arguments are silently

.IP "\fB-c\fP, \fB--compile\fP (\fIFILE\fP | \fIDIRECTORY\fP)"
(since version 0.6.1, \fBTODO\fP)  Compile one group, or all groups of
subtitle text files in
according to a corresponding subtitle index
(.srtx), into one text file each.  If this is successful, clean up (see
.BR -k )
and exit.  
Options irrelevant to this process are ignored.

If a
is specified as argument, the
.B -o
option is ignored.  The resulting text files are named after the
corresponding subtitle index files found in the
instead, and their name is suffixed with `\\fP'.

.IP "\fB-k\fP, \fB--keep\fP"
(since version 0.6)  Keep subtitle stream file even if conversion is successful.

.IP "\fB-l\fP, \fB--list\fP"
(since version 0.5)  List subtitles for
.BR mplayer (1)
and exit.  If
is not provided or
.RB ` - ',
list subtitles for title #2 (as title #1 may be an intro without subtitles) and

Video DVD data source, i.e. a device
.RI "(usually " /dev/dvd ),
a directory e.g. one containing content created via
.BR dvdbackup (1),
or a Video DVD image file.
.RB ` - ',
a previously created subtitle stream file named
in the current working directory will be used for only the
stream-to-graphics-to-text conversion instead.  Both
must not be
.BR ` - '
in that case.
The default is
.RI ` /dev/dvd '.

.IP "\fB-t\fP, \fB--title\fP \fITITLE\fP"
Number of the title (1-n) which will be accessed for subtitle stream extraction.
If omitted or
.RB ` - ',
the program uses
.BR mplayer (1)
to detect how many titles are available on the DVD data source and asks for the
title to be accessed.

.IP "\fB-s\fP, \fB--subtitle-id\fP \fISUBTITLE\fP"
ID of the subtitle stream to be extracted (0-n).  If omitted or
.RB ` -  ',
the program uses its
.B -l
option (or
.BR mplayer (1)
directly, before version 0.5) to detect which subtitles are available for the
given TITLE and asks for the ID to be used.

.IP "\fB-o\fP, \fB--output-target\fP \fITARGET\fP"
Name of the resulting subtitles text file.  If not provided or
.RB ` - ',
the file is named after the subtitle stream file.

Versions prior to 0.6 appended the filename suffix
.B .txt
automagically always, and version 0.6 appended this suffix only if this option
was not provided; since version 0.6.1, the filename suffix
.B .srt
(SubRip text) is appended in that case.

If the file already existed, behavior depends on the program version.

.IP "Since version 0.6.1:"
The program asks whether the file should be overwritten, new content should
be appended to it (including a marker identifying the start of new content),
or if a new file should be created.  If the latter, the name of new file
includes the ID of the
.B dvdsubtitles
process which created it.

.IP "Version 0.6:"
The program asks whether the file should be overwritten. If no, a new file
is created, its name including the ID of the
.B dvdsubtitles
process which created it.

.IP "Versions prior to 0.6:"
New content is appended to the file without marker.

.IP "\fB-g\fP, \fB--grey-levels\fP \fIGREY_LEVELS\fP"
Optional grey-levels value `\fIc0\fP,\fIc1\fP,\fIc2\fP,\fIc3\fP' with 0 <=
.I cN
<= 255, where 0 means black and 255 means white.

DVD subtitles allow up to 4 colors.  The comma-separated arguments to this
option specify the grey level for each these colors that are used for converting
the subtitle stream graphics into plain text via OCR.  The default is
.RB ` 255,255,0,255 '.
The values
.RB ` 255,0,255,255 ',
.RB ` 255,255,255,0 ',
.RB ` 0,255,255,255 '
can also produce viable OCR input.

Use solid (not outlined) shapes as input when possible to make things easier
for the
.BR gocr (1)
program.  It will ask you about a character if it does not recognize it; if
that has an outlined shape, you are advised to cancel the OCR process (with
Ctrl+C).  This program will then allow you to use another grey-levels value
without the need to extract the subtitle stream again.

See the README file of the
.B subtitleripper
package and of the
.B subtitle2pgm
program, which -c option requires this value, for details.  (See FILES below.)

.IP "\fB-h\fP, \fB--help\fP"
Display this help and exit.

.IP "\fB-V\fP, \fB--version\fP"
Display version information and exit.


.B "  0"
Successful program execution

.B "  1"
Error detecting/extracting subtitle stream, or cancelled without selecting a
title number or subtitle ID

.B "  2"
Unable to convert subtitle stream to image files

.B "  3"
Cancelled due to
.BR gocr (1)
error or without entering another grey-levels value

.B "  4"
Unable to compile to text file

.B "  5"
Unable to clean up

.B "127"
Insufficient number of arguments / help was displayed

.I /usr/share/doc/subtitleripper/README.gz
Location of the
.B subtitleripper
package README on Debian systems

.I /usr/share/doc/subtitleripper/README.subtitle2pgm.gz
Location of the
.B subtitle2pgm
program README on Debian systems

Tested with GNU/Linux 2.4.31 and to .15
.B [1]
.B [2]

.B [1]
.RI < >
.B [2]
.RI < >

Please send comments and bug reports to
.RI < >.

Copyright (c) 2005, 2006  Thomas Lahn <>
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
(GPL) for more details.

You should have received a copy of the GNU GPL along with this program
.RI ( COPYING " file);"
if not, go to
.B [1]
or write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
Boston, MA  02110-1301, USA.
.B [1]
.RI < >
Standard shell script disclaimer blurb thing:

This script is a hack.  It's brute force.  It's horrible.
It doesn't use Artificial Intelligence.  It doesn't use Virtual Reality.
It's not perl.  It's not python.  It probably won't work unchanged on
the "other" thousands of unices.  But it worksforme.  --ramiro
.IR /usr/local/mozilla/ )

Thanks to Boris 'bolau' Lau <> for translation support,
and to Erkan Yanar <> for pointing out how to
.BR sed (1)
to replace a filename with the file content.

The author's latest version can be obtained from
.RI < >.


.BR dvdbackup (1),
.BR gocr (1),
.BR mplayer (1),
.BR pgm2txt ,
.BR sed (1),
.BR srttool " and " subtitle2pgm
(from <\fI\fP>),
.BR tccat (1),
.BR tcextract (1)