1vdr(5) Video Disk Recorder Files vdr(5)
2
3
4
6 vdr file formats - the Video Disk Recorder Files
7
9 This page describes the formats of the various files vdr uses to store
10 configuration data and recordings.
11
13 CHANNELS
14 The file channels.conf contains the channel configuration. Each line
15 defines either a group delimiter or a channel.
16
17 A group delimiter is a line starting with a ':' as the very first char‐
18 acter, followed by arbitrary text. Example:
19
20 :First group
21
22 Group delimiters may also be used to specify the number of the next
23 channel. To do this, the character '@' and a number must immediately
24 follow the ':', as in
25
26 :@201 First group
27
28 The given number must be larger than the number of any previous channel
29 (otherwise it is silently ignored).
30
31 A group delimiter can also be used to just set the next channel's num‐
32 ber, without an explicit delimiter text, as in
33
34 :@201
35
36 Such a delimiter will not appear in the Channels menu.
37
38 A channel definition is a line with channel data, where the fields are
39 separated by ':' characters. Example:
40
41 RTL Television,RTL:12188:h:S19.2E:27500:163:104:105:0:12003:1:1089:0
42
43 The line number of a channel definition (not counting group separators,
44 and based on a possible previous '@...' parameter) defines the chan‐
45 nel's number in OSD menus and the timers.conf file.
46
47 The fields in a channel definition have the following meaning (from
48 left to right):
49
50 Name The channel's name (if the name originally contains a ':' char‐
51 acter it has to be replaced by '|'). Some TV stations provide a
52 way of deriving a "short name" from the channel name, which can
53 be used in situations where there is not much space for display‐
54 ing a long name. If a short name is available for this channel,
55 it follows the full name and is delimited by a comma, as in
56
57 RTL Television,RTL:...
58
59 If present, the name of the service provider or "bouquet" is
60 appended to the channel name, separated by a semicolon, as in
61
62 RTL Television,RTL;RTL World:...
63
64 Frequency
65 The transponder frequency (as an integer). For DVB-S this value
66 is in MHz. For DVB-C and DVB-T it can be given either in MHz,
67 kHz or Hz (the actual value given will be multiplied by 1000
68 until it is larger than 1000000).
69
70 Parameters
71 Various parameters, depending on whether this is a DVB-S, DVB-C
72 or DVB-T channel. Each parameter consist of a key character,
73 followed by an integer number that represents the actual setting
74 of that parameter. The valid key characters, their meaning (and
75 allowed values) are
76
77 B Bandwidth (6, 7, 8)
78 C Code rate high priority (0, 12, 23, 34, 45, 56, 67, 78, 89)
79 D Code rate low priority (0, 12, 23, 34, 45, 56, 67, 78, 89)
80 G Guard interval (4, 8, 16, 32)
81 H Horizontal polarization
82 I Inversion (0, 1)
83 L Left circular polarization
84 M Modulation (0, 16, 32, 64, 128, 256)
85 R Right circular polarization
86 T Transmission mode (2, 8)
87 V Vertical polarization
88 Y Hierarchy (0, 1, 2, 4)
89 The polarization parameters have no integer numbers following
90 them. This is for compatibility with files from older versions
91 and also to keep the DVB-S entries as simple as possible.
92
93 The special value 999 is used for "automatic", which means the
94 driver will automatically determine the proper value (if possi‐
95 ble).
96
97 An example of a parameter field for a DVB-T channel might look
98 like this:
99
100 B8C23D12M64T2G32Y0
101
102 Source The signal source of this channel, as defined in the file
103 sources.conf. For compatibility with files from older versions
104 numeric values will be accepted and also written back correctly,
105 but they will have no meaning for the DiSEqC settings. You
106 should replace the numerical values with the proper source iden‐
107 tifiers defined in sources.conf.
108
109 Srate The symbol rate of this channel (DVB-S and DVB-C only).
110
111 VPID The video PID (set to '0' for radio channels). If this channel
112 uses a separate PCR PID, it follows the VPID, separated by a
113 plus sign, as in ...:164+17:...
114
115 APID The audio PID (either one number, or several, separated by com‐
116 mas). If this channel also carries Dolby Digital sound, the
117 Dolby PIDs follow the audio PIDs, separated by a semicolon, as
118 in
119
120 ...:101,102;103,104:...
121
122 If certain audio PIDs broadcast in specific languages, the lan‐
123 guage codes for these can be appended to the individual audio or
124 Dolby PID, separated by an '=' sign, as in
125
126 ...:101=deu,102=eng;103=deu,104=eng:...
127
128 Some channels broadcast two different languages in the two
129 stereo channels, which can be indicated by adding a second lan‐
130 guage code, delimited by a '+' sign, as in
131
132 ...:101=deu,102=eng+spa;103=deu,104=eng:...
133
134
135 TPID The teletext PID.
136
137 Conditional access
138 A hexadecimal integer defining how this channel can be accessed:
139
140 0000 Free To Air
141 0001...000F explicitly requires the device with the given number
142 0010...00FF reserved for user defined assignments
143 0100...FFFF specific decryption methods as broadcast in the data stream
144 Values in the range 0001...00FF will not be overwritten, all
145 other values will be automatically replaced by the actual CA
146 system identifiers received from the data stream. If there is
147 more than one CA system id broadcast, they will be separated by
148 commas, as in
149
150 ...:1702,1722,1801:...
151
152 The values are in hex because that's the way they are defined in
153 the "ETR 162" document. Leading zeros may be omitted.
154
155 SID The Service ID of this channel.
156
157 NID The Network ID of this channel.
158
159 TID The Transport stream ID of this channel.
160
161 RID The Radio ID of this channel (typically 0, may be used to dis‐
162 tinguish channels where NID, TID and SID are all equal).
163
164 A particular channel can be uniquely identified by its channel ID,
165 which is a string that looks like this:
166
167 S19.2E-1-1089-12003-0
168
169 The components of this string are the Source (S19.2E), NID (1), TID
170 (1089), SID (12003) and RID (0) as defined above. The last part can be
171 omitted if it is 0, so the above example could also be written as
172 S19.2E-1-1089-12003).
173 The channel ID is used in the timers.conf and epg.data files to prop‐
174 erly identify the channels.
175
176 If a channel has both NID and TID set to 0, the channel ID will use the
177 Frequency instead of the TID. For satellite channels an additional off‐
178 set of 100000, 200000, 300000 or 400000 is added to that number,
179 depending on the Polarization (H, V, L or R, respectively). This is
180 necessary because on some satellites the same frequency is used for two
181 different transponders, with opposite polarization.
182
183 TIMERS
184 The file timers.conf contains the timer setup. Each line contains one
185 timer definition, with individual fields separated by ':' characters.
186 Example:
187
188 1:10:-T-----:2058:2150:50:5:Quarks & Co:
189
190 The fields in a timer definition have the following meaning (from left
191 to right):
192
193 Flags The individual bits in this field have the following meaning:
194
195 1 the timer is active (and will record if it hits)
196 2 this is an instant recording timer
197 4 this timer uses VPS
198
199 8 this timer is currently recording (may only be up-to-date with SVDRP)
200
201 All other bits are reserved for future use.
202
203 Channel
204 The channel to record from. This is either the channel number as
205 shown in the on-screen menus, or a complete channel ID. When
206 reading timers.conf any channel numbers will be mapped to the
207 respective channel ids and when the file is written again, there
208 will only be channel ids. Channel numbers are accepted as input
209 in order to allow easier creation of timers when manually edit‐
210 ing timers.conf. Also, when timers are listed via SVDRP com‐
211 mands, the channels are given as numbers.
212
213 Day The day when this timer shall record.
214
215 If this is a `single-shot' timer, this is the date on which this
216 timer shall record, given in ISO notation (YYYY-MM-DD), as in:
217
218 2005-03-19
219
220 For compatibility with earlier versions of VDR this may also be
221 just the day of month on which this timer shall record (must be
222 in the range 1...31).
223
224 In case of a `repeating' timer this is a string consisting of
225 exactly seven characters, where each character position corre‐
226 sponds to one day of the week (with Monday being the first day).
227 The character '-' at a certain position means that the timer
228 shall not record on that day. Any other character will cause the
229 timer to record on that day. Example:
230
231 MTWTF--
232
233 will define a timer that records on Monday through Friday and
234 does not record on weekends. The same result could be achieved
235 with ABCDE-- (this is used to allow setting the days with lan‐
236 guage specific characters). Note that only letters may be used
237 here, no digits.
238
239 The day definition of a `repeating' timer may be followed by the
240 date when that timer shall hit for the first time. The format
241 for this is @YYYY-MM-DD, so a complete definition could look
242 like this:
243
244 MTWTF--@2002-02-18
245
246 which would implement a timer that records Monday through Fri‐
247 day, and will hit for the first time on or after February 18,
248 2002. This first day feature can be used to disable a repeating
249 timer for a couple of days, or for instance to define a new
250 Mon...Fri timer on Wednesday, which actually starts "Monday next
251 week". The first day date given need not be that of a day when
252 the timer would actually hit.
253
254 Start A four digit integer defining when this timer shall start
255 recording. The format is hhmm, so 1430 would mean "half past
256 two" in the afternoon.
257
258 Stop A four digit integer defining when this timer shall stop record‐
259 ing. The format is the same as for the start time.
260
261 Priority
262 An integer in the range 0...99, defining the priority of this
263 timer and of recordings created by this timer. 0 represents the
264 lowest value, 99 the highest. The priority is used to decide
265 which timer shall be started in case there are two or more
266 timers with the exact same start time. The first timer in the
267 list with the highest priority will be used.
268
269 This value is also stored with the recording and is later used
270 to decide which recording to remove from disk in order to free
271 space for a new recording. If the disk runs full and a new
272 recording needs more space, an existing recording with the low‐
273 est priority (and which has exceeded its guaranteed lifetime)
274 will be removed.
275
276 If all available DVB cards are currently occupied, a timer with
277 a higher priority will interrupt the timer with the lowest pri‐
278 ority in order to start recording.
279
280 Lifetime
281 The guaranteed lifetime (in days) of a recording created by this
282 timer. 0 means that this recording may be automatically deleted
283 at any time by a new recording with higher priority. 99 means
284 that this recording will never be automatically deleted. Any
285 number in the range 1...98 means that this recording may not be
286 automatically deleted in favour of a new recording, until the
287 given number of days since the start time of the recording has
288 passed by.
289
290 File The file name this timer will give to a recording. If the name
291 contains any ':' characters, these have to be replaced by '|'.
292 If the name shall contain subdirectories, these have to be
293 delimited by '~' (since the '/' character may be part of a regu‐
294 lar programme name).
295
296 The special keywords TITLE and EPISODE, if present, will be
297 replaced by the title and episode information from the EPG data
298 at the time of recording (if that data is available). If at the
299 time of recording either of these cannot be determined, TITLE
300 will default to the channel name, and EPISODE will default to a
301 blank.
302
303 Auxiliary data
304 An arbitrary string that can be used by external applications to
305 store any kind of data related to this timer. The string must
306 not contain any newline characters. If this field is not empty,
307 its contents will be written into the info.vdr file of the
308 recording with the '@' tag.
309
310 SOURCES
311 The file sources.conf defines the codes to be used in the Source field
312 of channels in channels.conf and assigns descriptive texts to them.
313 Example:
314
315 S19.2E Astra 1
316
317 Anything after (and including) a '#' character is comment.
318
319 The first character of the code must be one of
320
321 S Satellite
322 C Cable
323 T Terrestrial
324 and is followed by further data pertaining to that particular source.
325 In case of Satellite this is the orbital position in degrees, followed
326 by E for east or W for west.
327
328 DISEQC
329 The file diseqc.conf defines the DiSEqC control sequences to be sent to
330 the DVB-S card in order to access a given satellite position and/or
331 band. Example:
332
333 S19.2E 11700 V 9750 t v W15 [E0 10 38 F0] W15 A W15 t
334
335 Anything after (and including) a '#' character is comment.
336
337 The first word in a parameter line must be one of the codes defined in
338 the file sources.conf and tells which satellite this line applies to.
339
340 Following is the "switch frequency" of the LNB (slof), which is the
341 transponder frequency up to which this entry shall be used; the first
342 entry with an slof greater than the actual transponder frequency will
343 be used. Typically there is only one slof per LNB, but the syntax
344 allows any number of frequency ranges to be defined. Note that there
345 should be a last entry with the value 99999 for each satellite, which
346 covers the upper frequency range.
347
348 The third parameter defines the polarization to which this entry
349 applies. It can be either H for horizontal or V for vertical.
350
351 The fourth parameter specifies the "local oscillator frequency" (lof)
352 of the LNB to use for the given frequency range. This number will be
353 subtracted from the actual transponder frequency when tuning to the
354 channel.
355
356 The rest of the line holds the actual sequence of DiSEqC actions to be
357 taken. The code letters used here are
358
359 t 22kHz tone off
360 T 22kHz tone on
361 v voltage low (13V)
362 V voltage high (18V)
363 A mini A
364 B mini B
365 Wnn wait nn milliseconds (nn may be any positive integer number)
366 [xx ...] hex code sequence (max. 6)
367 There can be any number of actions in a line, including none at all -
368 in which case the entry would be used only to set the LOF to use for
369 the given frequency range and polarization.
370
371 REMOTE CONTROL KEYS
372 The file remote.conf contains the key assignments for all remote con‐
373 trol units. Each line consists of one key assignment in the following
374 format:
375
376 name.key code
377
378 where name is the name of the remote control (for instance KBD for the
379 PC keyboard, RCU for the home-built "Remote Control Unit", or LIRC for
380 the "Linux Infrared Remote Control"), key is the name of the key that
381 is defined (like Up, Down, Menu etc.), and code is a character string
382 that this remote control delivers when the given key is pressed.
383
384 KEY MACROS
385 The file keymacros.conf contains user defined macros that will be exe‐
386 cuted whenever the given key is pressed. The format is
387
388 macrokey [@plugin] key1 key2 key3...
389
390 where macrokey is the key that shall initiate execution of this macro
391 and can be one of Up, Down, Ok, Back, Left, Right, Red, Green, Yellow,
392 Blue, 0...9 or User1...User9. The rest of the line consists of a set of
393 keys, which will be executed just as if they had been pressed in the
394 given sequence. The optional @plugin can be used to automatically
395 select the given plugin. plugin is the name of the plugin, exactly as
396 given in the -P option when starting VDR. There can be only one @plugin
397 per key macro. For instance
398
399 User1 @abc Down Down Ok
400
401 would call the main menu function of the "abc" plugin and execute two
402 "Down" key presses, followed by "Ok".
403 Note that the color keys will only execute their macro function in
404 "normal viewing" mode (i.e. when no other menu or player is active).
405 The User1...User9 keys will always execute their macro function. There
406 may be up to 15 keys in such a key sequence.
407
408 COMMANDS
409 The file commands.conf contains the definitions of commands that can be
410 executed from the vdr main menu's "Commands" option. Each line con‐
411 tains one command definition in the following format:
412
413 title : command
414
415 where title is the string that will be displayed in the "Commands"
416 menu, and command is the actual command string that will be executed
417 when this option is selected. The delimiting ':' may be surrounded by
418 any number of white space characters. If title ends with the character
419 '?', there will be a confirmation prompt before actually executing the
420 command. This can be used for commands that might have serious results
421 (like deleting files etc) to make sure they are not executed inadver‐
422 tently.
423
424 Everything following (and including) a '#' character is considered to
425 be comment.
426
427 By default the menu entries in the "Commands" menu will be numbered
428 '1'...'9' to make them selectable by pressing the corresponding number
429 key. If you want to use your own numbering scheme (maybe to skip cer‐
430 tain numbers), just precede the titles with the numbers of your choice.
431 vdr will suppress its automatic numbering if the first entry in com‐
432 mands.conf starts with a digit in the range '1'...'9', followed by a
433 blank.
434
435 In order to avoid error messages to the console, every command should
436 have stderr redirected to stdout. Everything the command prints to std‐
437 out will be displayed in a result window, with title as its title.
438
439 Examples:
440
441 Check for new mail?: /usr/local/bin/checkmail 2>&1
442 CPU status: /usr/local/bin/cpustatus 2>&1
443 Disk space: df -h | grep '/video' | awk '{ print 100 - $5 "% free"; }'
444 Calendar: date;echo;cal
445
446 Note that the commands 'checkmail' and 'cpustatus' are only examples!
447 Don't send emails to the author asking where to find these ;-)
448 The '?' at the end of the "Check for new mail?" entry will prompt the
449 user whether this command shall really be executed.
450
451 RECORDING COMMANDS
452 The file reccmds.conf can be used to define commands that can be
453 applied to the currently highlighted recording in the "Recordings"
454 menu. The syntax is exactly the same as described for the file com‐
455 mands.conf. When executing a command, the directory name of the record‐
456 ing will be appended to the command string, separated by a blank and
457 enclosed in single quotes.
458
459 SVDRP HOSTS
460 The file svdrphosts.conf contains the IP numbers of all hosts that are
461 allowed to access the SVDRP port. Each line contains one IP number in
462 the format
463
464 IP-Address[/Netmask]
465
466 where IP-Address is the address of a host or a network in the usual dot
467 separated notation (as in 192.168.100.1). If the optional Netmask is
468 given only the given number of bits of IP-Address are taken into
469 account. This allows you to grant SVDRP access to all hosts of an
470 entire network. Netmask can be any integer from 1 to 32. The special
471 value of 0 is only accepted if the IP-Address is 0.0.0.0, because this
472 will give access to any host (USE THIS WITH CARE!).
473
474 Everything following (and including) a '#' character is considered to
475 be comment.
476
477 Examples:
478
479 127.0.0.1 # always accept localhost
480 192.168.100.0/24 # any host on the local net
481 204.152.189.113 # a specific host
482 0.0.0.0/0 # any host on any net (USE WITH CARE!)
483
484 SETUP
485 The file setup.conf contains the basic configuration options for vdr.
486 Each line contains one option in the format "Name = Value". See the
487 MANUAL file for a description of the available options.
488
489 THEMES
490 The files /var/lib/vdr/themes/<skin>-<theme>.theme contain the color
491 theme definitions for the various skins. In the actual file names
492 <skin> will be replaced by the name if the skin this theme belongs to,
493 and <theme> will be the name of this theme. Each line in a theme file
494 contains one option in the format "Name = Value". Anything after (and
495 including) a '#' character is comment.
496
497 The definitions in a theme file are either colors or a description.
498 Colors are in the form
499
500 clrTitle = FF123456
501
502 where the name (clrTitle) is one of the names defined in the source
503 code of the skin that uses this theme, through the THEME_CLR() macro.
504 The value (FF123456) is an eight digit hex number that consist of four
505 bytes, representing alpha (transparency), red, green and blue component
506 of the color. An alpha value of 00 means the color will be completely
507 transparent, while FF means it will be opaque. An RGB value of 000000
508 results in black, while FFFFFF is white.
509
510 A description can be given as
511
512 Description = Shades of blue
513
514 and will be used in the Setup/OSD menu to select a theme for a given
515 skin. The description should give the user an idea what this theme
516 will be like (for instance, in the given example it would use various
517 shades of blue), and shouldn't be too long to make sure it fits on the
518 Setup screen. The default description always should be given in Eng‐
519 lish. If you want, you can provide language specific descriptions as
520
521 Description.eng = Shades of blue
522 Description.ger = Blautöne
523
524 where the language code (as defined in VDR/i18n.c) is added to the key‐
525 word "Description", separated by a dot. You can enter as many language
526 specific descriptions as there are languages defined in VDR/i18n.h. If
527 a theme file doesn't contain a Description, the name of the theme (as
528 given in the theme's file name) will be used.
529
530 AUDIO/VIDEO DATA
531 The files 001.vdr...255.vdr are the actual recorded MPEG data files. In
532 order to keep the size of an individual file below a given limit, a
533 recording is split into several files. The contents of these files is
534 Packetized Elementary Stream (PES) and contains ES packets with ids
535 0xE0...0xEF for video (only one of these may actually occur in a file),
536 0xC0...0xDF for audio 1...32 (up to 32 audio tracks may occur). Dolby
537 Digital data is stored in packets with ids 0xBD ("Private Stream 1")
538 and substream ids 0x80...0x87.
539
540 INDEX
541 The file index.vdr (if present in a recording directory) contains the
542 (binary) index data into each of the the recording files
543 001.vdr...255.vdr. It is used during replay to determine the current
544 position within the recording, and to implement skipping and fast for‐
545 ward/back functions. See the definition of the cIndexFile class for
546 details about the actual contents of this file.
547
548 INFO
549 The file info.vdr (if present in a recording directory) contains a
550 description of the recording, derived from the EPG data at recording
551 time (if such data was available). The Aux field of the corresponding
552 timer (if given) is copied into this file, using the '@' tag. This is
553 a plain ASCII file and contains tagged lines like the EPG DATA file
554 (see the description of the epg.data file). Note that the lowercase
555 tags ('c' and 'e') will not appear in an info.vdr file. Lines tagged
556 with '#' are ignored and can be used by external tools to store arbi‐
557 trary information.
558
559 RESUME
560 The file resume.vdr (if present in a recording directory) contains the
561 position within the recording where the last replay session left off.
562 The data is a four byte (binary) integer value and defines an offset
563 into the file index.vdr.
564
565 MARKS
566 The file marks.vdr (if present in a recording directory) contains the
567 editing marks defined for this recording. Each line contains the defi‐
568 nition of one mark in the following format:
569
570 hh:mm:ss.ff comment
571
572 where hh:mm:ss.ff is a frame position within the recording, given as
573 "hours, minutes, seconds and (optional) frame number". comment can be
574 any string and may be used to describe this mark. If present, comment
575 must be separated from the frame position by at least one blank.
576
577 The lines in this file need not necessarily appear in the correct tem‐
578 poral sequence, they will be automatically sorted by time index.
579
580 CURRENT RESTRICTIONS:
581
582 - the comment is currently not used by VDR
583 - marks must have a frame number, and that frame MUST be an I-frame
584 (this means that only marks generated by VDR itself can be used, since
585 they will always be guaranteed to mark I-frames).
586
587 EPG DATA
588 The file epg.data contains the EPG data in an easily parsable format.
589 The first character of each line defines what kind of data this line
590 contains.
591
592 The following tag characters are defined:
593
594
595 C <channel id> <channel name>
596 E <event id> <start time> <duration> <table id> <version>
597 T <title>
598 S <short text>
599 D <description>
600 X <stream> <type> <language> <descr>
601 V <vps time>
602 e
603 c
604
605 Lowercase characters mark the end of a sequence that was started by the
606 corresponding uppercase character. The outer frame consists of a
607 sequence of one or more C...c (Channel) entries. Inside these any num‐
608 ber of E...e (Event) entries are allowed. All other tags are optional
609 (although every event should at least have a T entry). There may be
610 several X tags, depending on the number of tracks (video, audio etc.)
611 the event provides. The special tag character @ is used to mark the
612 auxiliary data from a timer definition in the info.vdr file.
613
614
615 <channel id> is the "channel ID", made up from the parameters defined in 'channels.conf'
616 <channel name> is the "name" as in 'channels.conf' (for information only, may be left out)
617 <event id> is a 32 bit unsigned int, uniquely identifying this event
618 <start time> is the time (as a time_t integer) in UTC when this event starts
619 <duration> is the time (in seconds) that this event will take
620 <table id> is a hex number that indicates the table this event is contained in (if this is left empty or 0 this event will not be overwritten or modified by data that comes from the DVB stream)
621 <version> is a hex number that indicates the event's version number inside its table (optional, ignored when reading EPG data)
622 <title> is the title of the event
623 <short text> is the short text of the event (typically the name of the episode etc.)
624 <description> is the description of the event (any '|' characters will be interpreted as newlines)
625 <stream> is the stream content (1 = video, 2 = audio)
626 <type> is the stream type according to ETSI EN 300 468
627 <language> is the three letter language code (optionally two codes, separated by '+')
628 <descr> is the description of this stream component
629 <vps time> is the Video Programming Service time of this event
630
631 This file will be read at program startup in order to restore the
632 results of previous EPG scans.
633
634 Note that the event id that comes from the DVB data stream is actually
635 just 16 bit wide. The internal representation in VDR allows for 32 bit
636 to be used, so that external tools can generate EPG data that is guar‐
637 anteed not to collide with the ids of existing data.
638
640 vdr(8)
641
643 Written by Klaus Schmidinger.
644
646 Report bugs to <vdr-bugs@cadsoft.de>.
647
649 Copyright © 2006 Klaus Schmidinger.
650
651 This is free software; see the source for copying conditions. There is
652 NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
653 PURPOSE.
654
655
656
6571.4.5 07 Jan 2007 vdr(5)