vdr(1)

NAME
vdr - the Video Disk Recorder

SYNOPSIS
vdr [options]

DESCRIPTION
vdr implements a complete digital Set-Top Box and Video Recorder. It can work with signals received from satellites (DVB-S) as well as cable (DVB-C) and terrestrial (DVB-T) signals. At least one DVB card is required to run vdr. With it you can watch live TV while recording one or more other broadcasts from the same transponder. It is also possible to start watching a recorded programme before the live broadcast has ended (time shifting). In order to record from different transponders simultaneously two or more DVB cards are necessary. By default vdr can support up to eight DVB cards. The primary DVB card (the one your TV set is connected to) can either be a "full featured" card, which means it contains an MPEG decoder and provides audio and video signal outputs, or you can use some third party plugin that implements software decoding of the MPEG data and displays it via the system's graphics adapter. vdr uses an On Screen Display (OSD) to display its menus. It can be controlled by the PC keyboard, the "Linux Infrared Remote Control" (LIRC), or any other means of remote control, implemented by a third party plugin. Remote access is possible via the "Simple Video Disk Recorder Protocol" (SVDRP), which can be accessed on port 6419, for instance by telnet.

OPTIONS

-a cmd, --audio=cmd
    Send Dolby Digital audio to stdin of command cmd.

--cachedir=dir
    Save cache files in dir (default is to save them in the video directory).

--chartab=character_table
    Set the character table to use for strings in the DVB data stream that don't begin with a character table indicator, but don't use the standard default character table (for instance ISO-8859-9).

-c dir, --config=dir
    Read config files from directory dir (default is to read them from the video directory).

-d, --daemon
    Run in daemon mode (implies --no-kbd).

-D num, --device=num
    Use only the given DVB device (num = 0, 1, 2...). There may be several -D options (by default all DVB devices will be used). If -D- is given, no DVB devices will be used at all, independent of any other -D options.

--dirnames=path[,name[,enc]]
    Set the maximum directory path length to path (default is the maximum value allowed on the system). If name is also given, it defines the maximum directory name length (default is the maximum value allowed on the system). The optional enc can be 0 or 1, and controls whether special characters in directory names are encoded as hex values (default: 0). If path or name are left empty (as in ",,1" to only set enc), the defaults apply. The length of the video directory name and that of the actual recording directory is subtracted from path, to make sure the directory path will never become too long.

--edit=rec
    Edit the given recording. rec must be the full path name of an existing recording. The program will return immediately after editing the recording.

-E file, --epgfile=file
    Write the EPG data into the given file (default is epg.data in the cache directory). Use -E- to disable this. If file is a directory, the file epg.data will be created in that directory.

--filesize=size
    Limit video files to size bytes (default is 2000M). This option is only useful in conjunction with --edit, and must precede that option to have an effect. size is an integer number and may be followed by one of the letters K, M, G or T to abbreviate Kilo-, Mega-, Giga- or Terabyte, respectively. The given value is silently limited to the program's internal minimum and maximum values.

--genindex=rec
    Generate the index file for the given recording. rec must be the full path name of an existing recording. The recording must be in TS format. If the recording already has an index file, it will be deleted before creating the new one. The program will return immediately after generating the index. Note that using this option while another instance of VDR is currently replaying the given recording, or if the recording has not been finished yet, may lead to unexpected results.

-g, --grab=dir
    Write images from the SVDRP command GRAB into the given directory dir. dir must be the full path name of an existing directory, without any "..", double '/' or symlinks. By default, or if -g- is given, grabbing images to disk is disabled.

-h, --help
    Print a help message and exit.

-i instance, --instance=instance
    Use instance as the id of this VDR instance (default is 0). In an environment where several instances of VDR use the same video directory, this parameter can be set to a positive integer value that's unique for each instance, so that they won't interfere with each other in case they record exactly the same broadcast. The number given here will be part of the directory name in which the recordings will be stored.

-l level, --log=level
    Set logging to level. 0 = no logging, 1 = errors only, 2 = errors and info, 3 = errors, info and debug. The default logging level is 3. If logging should be done to LOG_LOCALn instead of LOG_USER, add '.n' to LEVEL, as in 3.7 (n=0..7).

-L dir, --lib=dir
    Search for plugins in directory dir (default is ./PLUGINS/lib). There can be several -L options with different dir values. Each of them will apply to the -P options following it.

--lirc[=path]
    Use a LIRC remote control device. If path is omitted, vdr uses /var/run/lirc/lircd.

--localedir=dir
    Search for locale files in dir (default is ./locale).

-m, --mute
    Mute audio of the primary DVB device at startup.

--no-kbd
    Don't use the keyboard as an input device.

-p port, --port=port
    Use port for SVDRP. A value of 0 turns off SVDRP. The default SVDRP port is 6419. You need to edit the file svdrphosts.conf in order to enable access to the SVDRP port from hosts other than the localhosts. Note that this option only changes the TCP port used for SVDRP commands. The UDP port for discovering peer VDRs in the same network is always set to 6419 and can't be changed.

-P options, --plugin=options
    Load a plugin, defined by the given options. The first word in options must be the name of an existing vdr plugin, optionally followed by a blank separated list of command line options for that plugin. If options contains any blanks, you need to enclose it in quotes, like for example vdr -P "abc -a -b xyz" which would load a plugin named abc, giving it the command line options -a -b xyz. If you want to load all available plugins (without any particular options) you can use vdr -P "*" (note the quotes around the asterisk to prevent wildcard expansion).

-r cmd, --record=cmd
    Call cmd before and after a recording. See the file INSTALL for more information.

--resdir=dir
    Read resource files from dir (default is to read them from the config directory).

--showargs[=dir]
    Read command line arguments from dir (default is /etc/vdr/conf.d), display them to the console and exit.

-s cmd, --shutdown=cmd
    Call cmd to shutdown the computer. See the file INSTALL for more information.

--split
    Split edited files at the editing marks. This option is only useful in conjunction with --edit, and must precede that option to have an effect.

-t tty, --terminal=tty
    Set the controlling terminal.

-u user, --user=user
    Run as user user in case vdr was started as user 'root'. Starting vdr as 'root' is necessary if the system time shall be set from the transponder data, but for security reasons vdr can switch to a lesser privileged user id during normal operation. user can be a user name or a numerical id.

--userdump
    Allow coredumps if -u is given (only for debugging).

--vfat
    For backwards compatibility (same as --dirnames= 250,40,1).

-v dir, --video=dir
    Use dir as video directory. The default is /video.

-V, --version
    Print version information and exit.

-w sec, --watchdog=sec
    Activate the watchdog timer with a timeout of sec seconds. A value of 0 (default) disables the watchdog.

If started without any options, vdr tries to read command line options from files named '*.conf' in the directory /etc/vdr/conf.d. Files are read in alphabetical order. See vdr(5) for details.

SIGNALS

SIGINT, SIGTERM
    Program exits with status 0.

SIGHUP
    Program exits with status 1. This can be used to force a reload, for example if an update has been installed.

EXIT STATUS

0   Successful program execution.

1   An error has been detected which requires the DVB driver and vdr to be reloaded.

2   An non-recoverable error has been detected, vdr has given up.

FILES

channels.conf
    Channel configuration.

timers.conf
    Timer configuration.

setup.conf
    User definable setup.

commands.conf
    User definable commands (executed from the Commands menu).

svdrphosts.conf
    SVDRP host configuration, defining which hosts or networks are given access to the SVDRP port.

marks
    Contains the editing marks defined for a recording.

info
    Contains a description of the recording.

resume
    Contains the index into the recording where the last replay session left off.

index
    Contains the file number, offset and type of each frame of the recording.

remote.conf
    Contains the key assignments for the remote control.

keymacros.conf
    Contains user defined remote control key macros.

00001.ts ... 65535.ts
    The actual data files of a recording.

epg.data
    Contains all current EPG data. Can be used for external processing and will also be read at program startup to have the full EPG data available immediately.

donerecs.data
    Contains the names of recordings that have been done by pattern timers with '@' as the first character of the pattern. File names are appended to this file after a recording has finished, and the entire file is read upon startup of VDR.

.update
    This file (in the video directory) will be touched whenever VDR makes changes to the content of the directory. Its last modification time will be used to trigger an update of the list of recordings in any VDRs that use the same video directory. The file will be created if it doesn't already exist.

SEE ALSO
vdr(5),svdrpsend(1)

AUTHOR
Written by Klaus Schmidinger, with contributions from many others. See the file CONTRIBUTORS in the vdr source distribution.

REPORTING BUGS
Report bugs to <vdr-bugs@tvdr.de>.

COPYRIGHT
Copyright © 2026 Klaus Schmidinger. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.