vdr(1)

πŸ’– vdr(1) β€” the Video Disk Recorder πŸ’–

okay bestie, you found the manual page for vdr β€” the Video Disk Recorder. It's giving iconic DVR energy, and we're about to go through it together. πŸ’…


✨ NAME ✨

vdr - the Video Disk Recorder

✨ SYNOPSIS ✨

vdr [options]

✨ DESCRIPTION ✨

vdr is a whole digital Set-Top Box and Video Recorder in one. No cap. It can vibe with signals from satellites (DVB-S), cable (DVB-C), and terrestrial (DVB-T) sources.

You need at least one DVB card to run vdr. With it, you can watch live TV while recording one or more other broadcasts from the same transponder. You can also start watching a recorded programme before the live broadcast has ended β€” that's time shifting, bestie. To record from different transponders at the same time, you need two or more DVB cards. 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 show 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 /etc/vdr).
  • -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 /usr/lib64/vdr). 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 /var/lib/vdr/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 🌸

okay bestie, this is the part where we meet all the little files VDR keeps around like they're her emotional support trinkets πŸ’– every one of these matters, so let's go one by one, no skipping, no cap.

  • channels.conf β€” the channel configuration. literally where your channels live. πŸ“Ί
  • timers.conf β€” the timer configuration. all your scheduled recordings chill here. ⏰
  • setup.conf β€” user definable setup. this is your customization zone, bestie, go feral. πŸŽ€
  • commands.conf β€” user definable commands, and these ones get executed straight from the Commands menu. 🫢
  • svdrphosts.conf β€” the SVDRP host configuration. it's the bouncer at the club: it defines 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. the little lore drop. πŸ“
  • resume β€” contains the index into the recording where the last replay session left off. so you can pick up exactly where you paused, iconically. ⏯️
  • index β€” contains the file number, offset and type of each frame of the recording. the receipts for every single frame. πŸ”₯
  • remote.conf β€” contains the key assignments for the remote control. yes, you can rearrange your buttons, main character energy. πŸ‘‘
  • keymacros.conf β€” contains user defined remote control key macros. one press, whole sequence. it's giving efficiency. 🌈
  • 00001.ts ... 65535.ts β€” the actual data files of a recording. this is the real content, the whole reason we're here. πŸ’€
  • epg.data β€” contains all current EPG data. and listen, it's not just sitting there being cute: it can be used for external processing, and it will also be read at program startup so you have the full EPG data available immediately. instant gratification, we love her. 🌟
  • donerecs.data β€” contains the names of recordings that have been done by pattern timers with '@' as the first character of the pattern. here's the tea: 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. and if it doesn't already exist? don't worry, the file will be created. πŸ¦‹

πŸ‘€ SEE ALSO πŸ‘€

go read those too, bestie, they're part of the ecosystem fr fr.


🫢 AUTHOR 🫢

Written by Klaus Schmidinger, with contributions from many others. See the file CONTRIBUTORS in the vdr source distribution. it takes a village, and the village ate. πŸ’œ


😭 REPORTING BUGS 😭

Report bugs to <vdr-bugs@tvdr.de>. please be nice and give them the deets, not just "it's broken" β€” that's not helpful and you know it.


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.

no cap, that NO is doing a lot of heavy lifting β€” zero warranty, none, nada. 😭

and that's the whole page, bestie! this was vdr(1), version 2.8.1, dated 21 Mar 2026. go forth and record things. slay πŸ’…βœ¨

πŸ“¦ where this page comes from