===== What is VDR? =====
It's something like a luxury settop box/pvr on a pc
to receive/watch/record/stream digital tv channels with epg (electronic
program guide), timers, client/server networking, webinterface etc pp.
So if you have a %%FreeBSD%% (or Linux, but that's not covered here :) )
server you can add one or more dvb/atsc tuner(s) connected to a
satellite dish, cable tv or just a dvb-t antenna (or receive iptv
streams without a tuner if your isp provides those tho I don't know
if anyone tested `real' iptv on %%FreeBSD%% yet), browse/search epg,
set timers for automated or manual recordings, and watch the
streams/recordings elsewhere on your lan. Or if you have a %%FreeBSD%%
desktop you can also connect a tuner there and do it all on one
box - or just run a vdr client like vdr-sxfe (installed by the
multimedia/vdr-plugin-xineliboutput port) or a client vdr instance
using the streamdev-client plugin connected to a (possibly Linux)
vdr server elsewhere on your lan.
So if your isp doesn't provide iptv,
https://secure.wikimedia.org/wikipedia/en/wiki/IPTV
(german info page: [[http://www.iptv-anbieter.info/]]) then you'll need a dvb tuner (or atsc, tho I have no idea if
anyone tested that with vdr on %%FreeBSD%% yet) with corresponding
v4l/dvb (`v4b') drivers, in most cases that means an usb tuner
supported by the webcamd port:
http://www.freshports.org/multimedia/webcamd
And finally, if you want to compare vdr to other existing ports,
it's a bit like [[Ports/multimedia/mythtv|MythTV]] - only most Linux users _I_ know prefer vdr
over mythtv. :) (and vdr also doesn't use a rdbms so you don't
have to worry about mysql etc.)
===== What we have in the Ports Collection. =====
VDR 1.7.x is the development branch so bugs are possible!
(I mostly used it because the stable branch (1.6) doesn't support
dvb-s2 and h264, and there sure are other projects where development
branches are more buggy than with vdr. :) )
==== Tuners ====
* See my earlier threads on the freebsd-multimedia list and also WebcamCompat about webcamd and the usb dvb-s2/c and dvb-t tuners people tested (including at least one dvb-s2 and dvb-c/t tuner with ci slot each); the relevant webcamd ports and friends have been updated now so you _should_ be able to just use those. (atsc tuners _should_ also work as long as webcamd supports them and there aren't other bugs.) Links to the more important posts are also here: http://people.freebsd.org/~nox/dvb/
==== Installation ====
* Before you start installing these ports either mount an extra fs with enough space for the recordings on /video or create a video dir elsewhere where there is space, symlink it to /video and make it writable for the vdr user. (or if you do have one big / then you can create the dir on there too of course, I just disabled the mkdir in the port to avoid inadvertently filling up ppl's small / fs.) Or if you don't like a symlink you can also add your video dir as -v %%<%%dir> to vdr's startup args, see below.
* There is a multimedia/vdr-plugins metaport that allows you to select and install the plugins you want (and vdr itself as a dependency), so you don't have to install numerous vdr/plugin ports individually.
* To make sure vdr can access your tuners' device nodes, you usually want to add it's userid to the webcamd group:
pw groupmod webcamd -m vdr
* I have rc.d scripts for vdr and vdradmin-am but even if you use those you still need to add plugins and their options similar to this to your /etc/rc.conf:
# vdr
vdr_flags="'-Pxineliboutput --local=none --remote=127.1:37890' \
-Pskinenigmang -Pfemon -Posdpip \
'-Posdteletext --cache-system=packed --max-cache=128' \
-Pstreamdev-server '-Plive -i127.1' -Pepgsearch -Pcontrol \
-Pinfosatepg -Piptv -Pwirbelscan -Preelchannelscan -Pttxtsubs \
-Pvnsiserver -Pextrecmenu"
look in the README.s of the individual plugin ports for any
needed options. (should get installed below /usr/local/share/doc/vdr*)
And if you want vdr to start at boot (instead of just manually
by doing:
/usr/local/etc/rc.d/vdr onestart
) you need to set:
vdr_enable="YES"
too of course. And for vdradmin-am its:
vdradmind_enable="YES"
If you want to start vdr manually in the foreground instead you
need to be root (or the vdr user but vdr also drops to the vdr
uid itself if started as root), and then run it like:
vdr '-Pxineliboutput --local=none --remote=127.1:37890' -Pskinenigmang -Pfemon -Posdpip '-Posdteletext --cache-system=packed --max-cache=128' -Pstreamdev-server '-Plive -i127.1' -Pepgsearch -Pcontrol -Pinfosatepg -Piptv -Pwirbelscan -Preelchannelscan -Pttxtsubs -Pvnsiserver -Pextrecmenu
==== Video output methods ====
* Of all the video output methods only xineliboutput and streamdev seem to work (and the vdr-live webinterface browser streaming which also uses streamdev; as well as now also the softhddevice plugin and xbmc-pvr, see below), jpulz also has patches for softdevice so I made a port for that too but it only gave me a black screen... streamdev doesn't have an osd so you probably want xineliboutput at least for the first setup.
I only very recently was able to test xineliboutput's vdpau/vaapi
support and it turned out I had to add patches to the libxine
port, so if you want to use that make sure it and ffmpeg are up
to date and built with the VDPAU and VAAPI knobs on. To test
vdpau you can try something like: (vdr-sxfe gets installed by
the xineliboutput plugin port)
vdr-sxfe --hotkeys --video=vdpau --post tvtime:method=use_vo_driver,use_progressive_frame_flag=1 --audio=oss --reconnect xvdr+tcp://127.1
[note: if xvdr+tcp:%%//%%127.1 doesn't work try xvdr:%%//%% - and if you want to connect over tcp in the osd go to "Menu -> Setup -> Plugins -> xineliboutput -> Remote clients" and enable "Allow remote clients, make sure the listen address is correct and that the remote hosts are allowed in /usr/local/etc/vdr/plugins/xineliboutput/allowed_hosts.conf - see the section below about remote.conf and keyboard control.]
if that looks jerky or doesn't work with hd material maybe your
card cannot handle the default vdpau deinterlacing method, you
can change that in ~/.xine/config_xineliboutput, for an `old'
ION I use:
video.output.vdpau_deinterlace_method:half temporal
And vaapi is used via xv, just for nvidia this needs the
multimedia/vdpau-video port installed (other cards I think we
don't have support for yet), and in ~/.xine/config_xineliboutput
video.processing.ffmpeg_enable_vaapi should not be set to 0:
vdr-sxfe --hotkeys --video=xv --post=tvtime:method=Linear,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1 --audio=oss --reconnect xvdr+tcp://127.1:37890
An overview of which nvidia cards support which vdpau feature
is here:
http://www.mythtv.org/wiki/VDPAU
You can also use the multimedia/vdpauinfo port to check vpdau features of your nvidia card.
On the radeon here using xorg 7.4's video-ati driver with the
same xineliboutput xv settings but without vaapi vdr-sxfe as
well as all other players I tested that knew the xvdr protocol
(xineliboutput with osd) can also play h264 hd channels on this
%%PhenomII%% box after the ffmpeg updates last year(?), with the
only exception of kaffeine that still has issues with h264 1080i
streams when deinterlacing is enabled:
xine "xvdr://127.0.0.1#nocache"
kaffeine "xvdr+tcp://127.0.0.1:37890"
/usr/local/kde4/bin/kaffeine "xvdr+tcp://127.0.0.1:37890"
(kaffeine also has no provision for vdr keyboard control...)
If you don't use vdpau (I think that conflicts with compositing)
you can now also try compositing and running vdr-sxfe with --hud
for a somewhat nicer rendered osd, --video opengl (and vdpau as
mentioned) support is now also in the build.
==== Software volume control ====
Btw I use software volume control with xineliboutput (Menu -> Setup ->
Plugins -> xineliboutput -> Volume control in the osd) because
selecting `hardware' there doesn't work so well with snd(4)'s
volume-per-channel feature (hint.pcm.X.vpc, which also in fact
is software) that I want to keep enabled for other apps...
And in case you didn't know about this snd(4) feature you can
read more here:
http://people.freebsd.org/~ariff/SOUND_4.TXT.html
==== Streaming ====
You can also use other players like mplayer or totem/gstreamer
(incluing the totem browser plugin invoked by the vdr-live
webinterface), only those don't know the xvdr protocol and thus
wont display an osd:
mplayer -mc 10 -cache 8192 -demuxer lavf http://127.0.0.1:37890/
totem http://127.0.0.1:37890/
(or using streamdev:
mplayer -mc 10 -cache 8192 -demuxer lavf http://127.0.0.1:3000/302
totem http://127.0.0.1:3000/302
vlc http://127.0.0.1:3000/302
channel 302 is arte hd in my channels.conf.)
* streamdev note: mplayer seems to need -demuxer lavf especially for h264 hd channels; for some other (radio only?) channels it may need -demuxer mpegts instead.
==== softhddevice plugin ====
* If you want to try the softhddevice plugin (which currently doesn't support software decoding, only VDPAU or VAAPI) there are two ways to use it, either with a running xserver or by having softhddevice start an xserver together with vdr. To test it with a running xserver do:
xhost +127.1
(this allows everyone on localhost to access the xserver) or: (possibly
better, allowing only the vdr user)
xhost +si:localuser:vdr
and then start vdr with:
vdr '-Psofthddevice -d :0.0 -v vdpau' ..
(or change vdr_flags in rc.conf(5) so that it starts with
vdr_flags="'-Psofthddevice -d :0.0 -v vdpau' ..
and then make sure vdr is started only after the xserver is running.)
To test it so that it starts its own xserver:
vdr '-Psofthddevice -x -v vdpau' ..
(or similarly put this in vdr_flags.)
Note: don't forget to (re)build multimedia/ffmpeg with VDPAU and/or
(if you use it) VAAPI support, else the plugin won't work.
==== XBMC-PVR ====
* And if you want to try out the xbmc-pvr port that recently has been committed with live tv via vdr you can do that now too, just make sure the multimedia/xbmc-addon-xvdr port is also installed and that xbmc is permitted to connect to the vdr box (see /usr/local/etc/vdr/plugins/xvdr/allowed_hosts.conf), as well as that vdr is started with the xvdr plugin (-Pxvdr added to startup args as explained earlier), then you should be able to navigate to the xvdr pvr addon in xbmc's system -> settings -> addons menu, configure the vdr box' ip, select `Enable' and then further up in xbmc's settings enable Live TV. xbmc's keymap is here:
/usr/local/share/xbmc/system/keymaps/keyboard.xml
And there is some imcomplete documentation at the xbmc wiki:
http://wiki.xbmc.org/index.php?title=HOW-TO:Watch_TV_in_XBMC
And some general xbmc documentation:
http://wiki.xbmc.org/index.php?title=XBMC_Online_Manual
And as with vdr-sxfe xbmc also can be built with vdpau (and vaapi) support, if you did that you can go in system -> settings -> video -> playback and
enable vdpau. xbmc's default lirc map is here:
/usr/local/share/xbmc/system/Lircmap.xml
and you can put a custom one in ~/.xbmc/userdata/Lircmap.xml .
* Update: The main multimedia/xbmc port now supports pvr too via multimedia/xbmc-addon-pvr and multimedia/vdr-plugin-vnsiserver (-Pvnsiserver instead of -Pxvdr), since this is a newer xbmc version than the xbmc-pvr port it's probably preferred.
==== Controlling the OSD: Keyboard (not for XBMC-PVR) ====
* Unless you want to get lirc or the (experimental) %%FreeBSD%% uhid(4) patches in the vdr remote plugin working first (and your remote has enough buttons for vdr, some of those coming with dvb tuners are really quite `minimal', see below), you probably will at least initially want to use keyboard control. I have included an example remote.conf for vdr-sxfe and the multimedia/vdr-plugin-control plugin that you can access by telnet (default port is 2002)
* I have put the menu button on the tab and insert keys and OK on the return key, see /usr/local/etc/vdr/remote.conf for the full keybindings list. (If you start vdr in the foreground and keep that shell open you should be able to use that for keyboard control also, the control plugin just gives you an osd too over telnet.)
And if you use xine
xine "xvdr:%%//%%127.0.0.1#nocache"
instead of vdr-sxfe
vdr-sxfe --video=xv --hotkeys --audio=oss xvdr+tcp:%%//%%127.0.0.1:37890
you probably want to use a ~/.xine/keymap that includes vdr controls,
I've put mine here:
http://people.freebsd.org/~nox/dvb/xine/keymap
and the xineliboutput plugin port now also installs it under:
/usr/local/share/examples/vdr-plugin-xineliboutput/xine/keymap
Oh and the webinterfaces have point-and-click remotes too but those
are pretty clunky to use...
==== Controlling the OSD: LIRC (remotes) ====
* And for those that want to use lirc: (Note you do _not_ need the remote plugin if your remote works with lirc!) See the comms/lirc port's pkg-message for its setup notes, they can be shown like this: pkg_info -D lirc\* |less
Again the following is not for XBMC-PVR which has its own independent OSD:
Once you have verified that irw correctly reports buttons pressed
on the remote you can start vdr with --lirc, if the osd then
doesn't prompt you to assign buttons on the remote stop vdr and do:
touch /usr/local/etc/vdr/channels.conf
and/or remove previous lirc-related entries out of
/usr/local/etc/vdr/remote.conf .
I think the minimal buttons you need to assign for vdr are menu,
back, ok, the cursor buttons (up, down, left, right), the digits
(0-9), and the colours (red, green, yellow, blue) - and you
probably also want at least volume up/down/mute and buttons to
invoke the audio channel and subtitle submenus. (and next on
the list are record, play, pause, stop, fast forward, rewind,
next, prev.)
See
/usr/local/share/doc/vdr/MANUAL
for more info.
Once the remote.conf is setup for lirc you can also start vdr-sxfe
with --lirc instead of passing --lirc to vdr itself so you can
use the remote to control other apps when vdr-sxfe isn't running
(like xbmc), otherwise vdr would be interpreting the buttons all
the time. Or you can disable lirc control temporarily in vdr
by invoking:
svdrpsend remo off
and enable it again by:
svdrpsend remo on
-- see here for some other things you can control that way:
http://www.linuxtv.org/vdrwiki/index.php/SVDRP
==== Scanning for channels: w_scan ====
* The example /usr/local/etc/vdr/channels.conf is the one that comes with the vdr sources, its for Astra 19.2E and a little outdated (also doesn't have hd channels yet), if you receive something else and don't want to go hunting for a suitable channels.conf on the web (like here:
http://channelpedia.yavdr.com/gen/
) you can use the multimedia/w_scan port.
Remember to use -o7 for vdr 1.7.x, see the w_scan(1) manpage and
its homepage for options and examples:
http://wirbel.htpc-forum.de/w_scan/index_en.html
(the w_scan start script hasn't been ported to %%FreeBSD%% yet.)
* Note for sat scanning: some w_scan versions output lowercase polarization chars (h/v) and vdr expects them to be uppercase, I think you can use this workaround:
sed -i.bak -e s/:v/:V/ -e s/:h/:H/ -e s/:l/:L/ -e s/:r/:R/ channels.conf
Also note you probably will only need to use w_scan once initially,
this vdr version by default should look for new transponders
itself when it does its epg scan during idle times unles you
disable that feature.
==== Scanning for channels: via OSD ====
* Update: I now also ported the reelchannelscan and wirbelscan plugins, I ported both because the reelchannelscan plugin can also do a manual scan on a single transponder while wirbelscan knows non-german/european channel lists too, especially for dvb-t, and wirbelscan, unlike reelchannelscan, is also supposed to work with an empty channels.conf file.
The reelchannelscan plugin should put an entry in the main menu
like Menu -> Channel scan, wirbelschan needs to be invoked from
Menu -> Setup -> Plugins -> wirbelscan.
==== IPTV plugin ====
* And if you install the iptv plugin and want to test it with some internet streams if your isp dosn't provide `real' iptv (or you just want to be able to press `r'ecord while watching web streams like nasatv), you can merge example /usr/local/etc/vdr/channels.conf entries from here: /usr/local/share/examples/vdr-plugin-iptv/channels.conf.iptv (I don't have `real' iptv here so that's all I can test. Also don't expect 100% performance with these examples, live transcoding streams to mpeg-ts that vdr expects still is kinda fragile and sometimes needs to be manually restarted by e.g. hitting OK (return) in the channel list (c) before it works, and startup is usually slow too... Transcoding uses vlc with those examples, you can see vlc's messages if you start vdr in the foreground instead of via the rc.d script as explained above. Also see /usr/local/etc/vdr/plugins/iptv and /usr/local/etc/vdr/plugins/iptv/vlcinput and the plugin homepage: http://www.saunalahti.fi/~rahrenbe/vdr/iptv/ for configurations. And there seems to be a `feature' that sometimes causes vdr to start receiving streams without anyone watching/recording just because the iptv plugin is enabled, the `fix' for that is the IPTVPATCH option in the vdr port.)
==== Webinterfaces ====
* I ported two webinterfaces because I only learned about vdr-live later which seems to be faster and uses fewer resources meaning you could probably turn a pretty wimpy box into a vdr server as long as you keep the actual watching (especially of h264 hd) to a faster box connected over the network. (or use something like vdpau.) The vdr-plugin-live webinterface by default listens on port 8008: http://127.1:8008/ Default login/pw is admin/live as also mentioned in: /usr/local/share/doc/vdr-plugin-live/README vdradmin-am listens on 8001: http://127.1:8001/ Default login/pw for that is vdr/vdr.
And the streamdev-server plugin has a (simple) webinterface too
if you point a browser at it: (instead of a player)
http://127.1:3000/
==== Final installation steps ====
* I may have forgot some other manual installation steps, if you notice something just post a followup on the freebsd-multimedia@%%FreeBSD%%.org mailing list... Most of vdr's own configuration including plugins should be available in the osd under `Menu -> Setup', some things like allowed hosts/subnets for network plugins need to be manually configured under /usr/local/etc/vdr/plugins tho. And if you want to connect to vdr over the network you also need to make sure the relevant plugin(s) listen on the correct interface, i.e. in the example plugin startup args replace 127.1 (localhost) by the ip of the nic the plugin(s) should listen on.
===== Links to plugins and webinterface. =====
* vdr: http://www.freshports.org/multimedia/vdr/ \\ http://www.tvdr.de/ \\ http://www.linuxtv.org/vdrwiki/index.php/Main_Page See also \\ /usr/local/share/doc/vdr/MANUAL and the vdr(1) manpage.
* xineliboutput: http://www.freshports.org/multimedia/vdr-plugin-xineliboutput/ \\ http://sourceforge.net/projects/xineliboutput/ \\ http://www.linuxtv.org/vdrwiki/index.php/Xineliboutput-plugin \\ /usr/local/share/doc/vdr-plugin-xineliboutput/README
* streamdev: http://www.freshports.org/multimedia/vdr-plugin-streamdev/ \\ http://streamdev.vdr-developer.org/ \\ http://www.linuxtv.org/vdrwiki/index.php/Streamdev-plugin \\ /usr/local/share/doc/vdr-plugin-streamdev/README
* live: http://www.freshports.org/www/vdr-plugin-live/ \\ http://live.vdr-developer.org/ \\ /usr/local/share/doc/vdr-plugin-live/README
* live also depends on cxxtools and tntnet which I also had to port: http://www.freshports.org/devel/cxxtools/ \\ http://www.freshports.org/www/tntnet/ \\ http://www.tntnet.org/cxxtools.html \\ http://www.tntnet.org/index.html
* epgsearch: http://www.freshports.org/multimedia/vdr-plugin-epgsearch/ \\ http://winni.vdr-developer.org/epgsearch/index_eng.html \\ http://www.linuxtv.org/vdrwiki/index.php/Epgsearch-plugin
* femon: http://www.freshports.org/multimedia/vdr-plugin-femon/ \\ http://www.saunalahti.fi/~rahrenbe/vdr/femon/ \\ http://www.linuxtv.org/vdrwiki/index.php/Femon-plugin \\ /usr/local/share/doc/vdr-plugin-femon/README
* osdpip: http://www.freshports.org/multimedia/vdr-plugin-osdpip/ \\ http://projects.vdr-developer.org/projects/show/plg-osdpip \\ http://www.linuxtv.org/vdrwiki/index.php/Osdpip-plugin \\ /usr/local/share/doc/vdr-plugin-osdpip/README
* osdteletext: http://www.freshports.org/multimedia/vdr-plugin-osdteletext/ \\ http://projects.vdr-developer.org/projects/show/plg-osdteletext \\ http://www.linuxtv.org/vdrwiki/index.php/Osdteletext-plugin \\ /usr/local/share/doc/vdr-plugin-osdteletext/README
* skinenigmang: http://www.freshports.org/multimedia/vdr-plugin-skinenigmang/ \\ http://andreas.vdr-developer.org/enigmang/index.html \\ http://www.vdr-wiki.de/wiki/index.php/Skinenigmang-plugin \\ (sorry for de in the second link but at least there are pics...)\\ /usr/local/share/doc/vdr-plugin-skinenigmang/README
* softdevice: http://www.freshports.org/multimedia/vdr-plugin-softdevice/ \\ http://softdevice.berlios.de/ \\ http://www.linuxtv.org/vdrwiki/index.php/Softdevice-plugin \\ /usr/local/share/doc/vdr-plugin-softdevice/README
* control-0.0.2a-45yavdr1 with ubuntu yavdr patches: (and a patch by me to fix a segfault on vdr exit) http://www.freshports.org/multimedia/vdr-plugin-control/ \\ http://ricomp.de/vdr/down_en.html \\ http://www.linuxtv.org/vdrwiki/index.php/Control-plugin \\ /usr/local/share/doc/vdr-plugin-control/README
* vdradmin-am: http://www.freshports.org/www/vdradmin-am/ \\ http://andreas.vdr-developer.org/vdradmin-am/ \\ /usr/local/share/doc/vdradmin-am/README
* infosatepg: http://www.freshports.org/multimedia/vdr-plugin-infosatepg/ \\ http://projects.vdr-developer.org/projects/show/plg-infosatepg \\ http://vdr-wiki.de/wiki/index.php/Infosatepg-plugin \\ My post including notes about how I got it receiving and using the infosat epg data quickly: http://lists.freebsd.org/pipermail/freebsd-multimedia/2010-July/011158.html
* remote: (with experimental %%FreeBSD%% uhid(4) support, some notes are in the port's pkg-descr) http://www.freshports.org/multimedia/vdr-plugin-remote/ \\ http://escape-edv.de/endriss/vdr \\ http://www.linuxtv.org/vdrwiki/index.php/Remote-plugin \\ /usr/local/share/doc/vdr-plugin-remote/README
* iptv: http://www.freshports.org/multimedia/vdr-plugin-iptv/ \\ http://www.saunalahti.fi/~rahrenbe/vdr/iptv/ \\ /usr/local/share/doc/vdr-plugin-iptv/README
* vnsiserver: (old version, use XVDR for recent xbmc pvr) http://www.freshports.org/multimedia/vnsiserver/ \\ http://www.vdr-wiki.de/wiki/index.php/Vnsi-server-plugin \\ http://www.vdr-portal.de/board/thread.php?threadid=95292 \\ (sorry about the german) \\ /usr/local/share/doc/vdr-plugin-vnsiserver/README
* upnp-0.0.2a2 (alpha!) with a few bugfixes done by me: http://www.freshports.org/multimedia/vdr-plugin-upnp/ \\ http://upnp.vdr-developer.org/ \\ http://lists.freebsd.org/pipermail/freebsd-multimedia/2011-January/011531.html \\ /usr/local/share/doc/vdr-plugin-upnp/README
* markad: http://www.freshports.org/multimedia/vdr-plugin-markad/ \\ http://projects.vdr-developer.org/projects/plg-markad \\ http://www.vdr-wiki.de/wiki/index.php/Markad-plugin \\ /usr/local/share/doc/vdr-plugin-markad/README
* reelchannelscan: http://www.freshports.org/multimedia/vdr-plugin-reelchannelscan/ \\ http://www.reel-multimedia.com \\ http://www.vdr-wiki.de/wiki/index.php/Reelchannelscan-plugin
* wirbelscan: http://www.freshports.org/multimedia/vdr-plugin-wirbelscan/ \\ http://wirbel.htpc-forum.de/wirbelscan/index2.html \\ http://www.vdr-wiki.de/wiki/index.php/Wirbelscan-plugin \\ /usr/local/share/doc/vdr-plugin-wirbelscan/README
* ttxtsubs: (for recording and displaying teletext-based subtitles, needs to be specifically enabled in setup and in channels.conf for each channel that transmits teletext subtitles) http://www.freshports.org/multimedia/vdr-plugin-ttxtsubs/ \\ http://projects.vdr-developer.org/projects/show/plg-ttxtsubs \\ http://www.linuxtv.org/vdrwiki/index.php/Ttxtsubs-plugin \\ /usr/local/share/doc/vdr-plugin-ttxtsubs/README
* sleeptimer: http://www.freshports.org/multimedia/vdr-plugin-sleeptimer/ \\ http://projects.vdr-developer.org/projects/plg-sleeptimer \\ http://www.linuxtv.org/vdrwiki/index.php/Sleeptimer-plugin \\ /usr/local/share/doc/vdr-plugin-sleeptimer/README
* XVDR: (for connecting multimedia/xbmc-pvr to vdr via multimedia/xbmc-addon-xvdr) http://www.freshports.org/multimedia/vdr-plugin-xvdr/ \\ https://github.com/pipelka/vdr-plugin-xvdr \\ /usr/local/share/doc/vdr-plugin-xvdr/README
* eepg: (extended EPG for UK/NL/etc.) http://www.freshports.org/multimedia/vdr-plugin-eepg/ \\ http://projects.vdr-developer.org/projects/plg-eepg \\ http://www.linuxtv.org/vdrwiki/index.php/Eepg-plugin \\ /usr/local/share/doc/vdr-plugin-eepg/README
* VDR-Manager: (plugin to connect Android client to) http://www.freshports.org/multimedia/vdr-plugin-vdrmanager/ \\ http://projects.vdr-developer.org/projects/vdr-manager/wiki \\ http://www.vdr-portal.de/board1-news/board2-vdr-news/109001-announce-android-vdr-manager/ \\ /usr/local/share/doc/vdr-plugin-vdrmanager/README
* softhddevice: http://www.freshports.org/multimedia/vdr-plugin-softhddevice/ \\ http://projects.vdr-developer.org/projects/plg-softhddevice \\ http://projects.vdr-developer.org/projects/plg-softhddevice/wiki/FAQ \\ http://www.vdr-portal.de/board17-developer/board21-vdr-plugins/109700-softhddevice-software-vdpau-va-api-cpu-decoder-und-ausgabe-plugin/ \\ /usr/local/share/doc/vdr-plugin-softhddevice/README.txt
* extrecmenu: (EXTended RECordings MENU) http://www.freshports.org/multimedia/vdr-plugin-extrecmenu/ \\ http://projects.vdr-developer.org/projects/show/plg-extrecmenu \\ http://www.linuxtv.org/vdrwiki/index.php/Extrecmenu-plugin \\ /usr/local/share/doc/vdr-plugin-extrecmenu/README
===== Quick Start =====
By popular demand, here is how you should be able to get a new vdr installation up quickly:
* First decide if you want to use vdpau (likely if you have a recent enough nvidia card, see above under Video output methods), if yes make sure the multimedia/libxine and multimedia/ffmpeg ports are (re)built with their respective VDPAU options enabled.
* Next install vdr itself and select the plugins you want: (the defaults should be fine if you don't know, tho maybe you want markad too.)
portmaster multimedia/vdr-plugins
* Now decide where you want to put the recordings, make a dir called video there, symlink it to /video and make it writable for the vdr user:
mkdir /some/dir/with/space/video
ln -s /some/dir/with/space/video /video
chown vdr:vdr /video
* Make sure vdr can access /var/cache/vdr:
chmod o+x /var/cache
* Allow vdr to access webcamd's /dev/dvb device nodes: (assuming you want to use a tuner and not iptv or the streamdev-client plugin)
pw groupmod webcamd -m vdr
* Next edit /etc/rc.conf and add vdr_flags to tell vdr to load the plugins you want to use and if you want vdr to start at boot, add vdr_enable="YES", vdr_flags example copied from above:
# vdr
vdr_flags="'-Pxineliboutput --local=none --remote=127.1:37890' \
-Pskinenigmang -Pfemon -Posdpip \
'-Posdteletext --cache-system=packed --max-cache=128' \
-Pstreamdev-server '-Plive -i127.1' -Pepgsearch -Pcontrol \
-Pinfosatepg -Piptv -Pwirbelscan -Preelchannelscan -Pttxtsubs \
-Pvnsiserver -Pextrecmenu"
(in general plugin vdr-plugin-foo is loaded by -Pfoo and may take args explained in /usr/local/share/doc/vdr-plugin-foo/README, like '-Pfoo -bar -baz' - so if you want to use, say, vdr-plugin-vdrmanager also then add -Pvdrmanager.)
* Now make sure the tuner is plugged in and working: (assuming you want to use a tuner and not iptv or the streamdev-client plugin)
ls -lR /dev/dvb
(there should be at least one adapterX dir with demux0, dvr0, and frontend0 device nodes) See also this forum thread for hints about drivers providing /dev/dvb nodes: http://forums.freebsd.org/viewtopic.php?t=35179
* If you don't have a tuner you probably want to tell the vdr rc.d script not to wait for the tuner(s) to appear at vdr start:
echo 'vdr_waitdvb="NO"' >>/etc/rc.conf
* Now you can try starting vdr:
/usr/local/etc/rc.d/vdr onestart
* And finally look at /usr/local/etc/vdr/remote.conf as well as /usr/local/share/doc/vdr/MANUAL for hints how to use the osd and connect vdr-sxfe from under X to the running vdr as described above under Video output methods.
* PS: If you want to use the mentioned vdradmin-am webinterface too you can install it via:
portmaster www/vdradmin-am
(As mentioned above I'm fine with the live web plugin myself and don't really use vdradmin-am.)
* PPS: From Final installation steps above: Most of vdr's own configuration including plugins should be available in the osd under `Menu -> Setup', some things like allowed hosts/subnets for network plugins need to be manually configured under /usr/local/etc/vdr/plugins tho. And if you want to connect to vdr over the network you also need to make sure the relevant plugin(s) listen on the correct interface, i.e. in the example plugin startup args replace 127.1 (localhost) by the ip of the nic the plugin(s) should listen on.
===== Troubleshooting =====
* If vdr behaves strangely check syslog (/var/log/messages) for hints as to what might be the problem.
* If vdr crashes/exits at start check permissions of files/dirs it needs write access to (below /usr/local/etc/vdr, /var/cache/vdr, /video); also check you have at least the vdr-1.7.19_3 version of the multimedia/vdr port - there was a bug in some earlier versions that caused a crash at first start when there was no /usr/local/etc/vdr/setup.conf yet.
* If the osd shows non-ASCII chars as '?' make sure vdr is started with a proper LANG setting, or if you start it via the rc.d script you may need to add a lang= setting to it's login class, the simplest way to do that is just adding two lines like
:charset=ISO8859-15:\
:lang=en_US.ISO8859-15:\
to the default: entry in /etc/login.conf and after that running:
cap_mkdb /etc/login.conf
You can get more fancy like by adding a login class to vdr's passwd(5) entry (or a giving it a homedir,
pw usermod vdr -d /video
and then putting a ~vdr/.login_conf file there like this:
me:\
:charset=ISO8859-15:\
:lang=en_US.ISO8859-15:\
:tc=default:
); more details are available in manpages like login.conf(5), pw(8), passwd(5),
and a related handbook chapter:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/using-localization.html
* If you want to stop vdr exiting when e.g. it can't tune a channel scheduled for recording change the osd setting `Menu -> Setup -> Miscellaneous -> Emergency exit'.
* Small bug: if playback of a recording doesn't start try pressing Green. (or F6 with my example remote.conf keyboard mapping.)
* If restarting vdr-sxfe with tcp (xvdr+tcp:%%//%%..) fails/crashes wait a little while (30s?) for the xineliboutput plugin to time out before trying again. (In fact this was a xineliboutput bug that should be fixed now.)
* If you get crashes when cutting a recording make sure you have at least version 1.7.29_3 of the multimedia/vdr port, an incompatiblility was fixed in that version.
* If teletext doesn't work (vdr-plugin-osdteletext) check permissions of /var/cache/vdr/vtx and the dirs leading to it, it seems /var/cache is 750 by default so you need to change that dir to at least 751.
* If you accidentally set a timer (scheduled a recording) and want to delete it in the osd go to Menu -> Timer, select the offending timer using up/down, press Yellow (or F7 with my default remote.conf keyboard mapping) for delete and hit OK for confirmation. (twice if the timer is currently recording.) Or you can use the timer menu in the live webplugin, see under Webinterfaces above.
* More help is available e.g. at the vdr wiki: http://www.linuxtv.org/vdrwiki/ the vdr mailinglist: http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr (I think you need to be subscribed to be able to post) and a (nicer) archive of it: http://dir.gmane.org/gmane.linux.vdr
And there also is the mostly german-language vdr portal:
http://vdr-portal.de/
and I think I saw at least a russian-language vdr webforum too.
(tho I don't speak russian.)
===== TODO =====
* The ports still could use quite some cleanup work, also to make upgrading them or adding new plugins easier. (I just didn't want to delay committing them any longer...)
* Submit the rest of the non-hacky %%FreeBSD%% patches back to the individual upstream maintainers (that should be pretty much all of the patches for *.[ch] source files, only Makefile/configure scripts patches less so.)
* Someone(tm) may want to write a `real' step-by-step guide how to get a %%FreeBSD%% vdr going... (preferably someone who has never used vdr before to make sure important stuff I never think about isn't left out.)
* Port more plugins that people might want to use...
----
{{tag>Ports}}