Final (I hope) Call for testing: vdr ports (watch/record/stream tv)

Juergen Lock nox at
Sun Jan 9 00:35:03 UTC 2011

Call for testing - vdr 1.7.16 with a bunch of plugins:

[Main news:

 - Finally added back the missing locales to plugin ports so
   non-native speakers may get some more local language in vdr
   (you can set the osd language under Setup -> OSD - not everything
   has been translated still tho.)

 - Now added the upnp/dlna plugin port to the combined shar after
   committing the bugfix patches it needs to the devel/upnp port -
   the plugin is still alpha and if you want to test it the remaining
   notes in my original thread still apply:

 - Changed xineliboutput to always build with opengl and libvdpau,
   opengl still uses more cpu than xv for me here with video-ati
   and vdpau I still cannot test myself, it is also likely the
   ffmpeg port needs to be built with the vdpau knob on for it
   to work.

 - Changed the /var/cache/vdr-* dirs to more standard
   /var/cache/vdr/{infosatepg,upnp,vtx} (vtx is for osdteletext)
   and patched those as defaults into the relevant plugins so
   you no longer need to pass them as plugin parameters explicitly.

 - Added the example vdr xine keymap to the xineliboutput plugin
   port as PORTEXAMPLES so it (usually) will end up here:


 - Patched the actual config dir into the vdr(1) manpage (usually
   /usr/local/etc/vdr/ - thanx to Torfinn Ingolfsen for noticing.)

 For details see below.]


 So 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,

(german info page:

) then you'll need a dvb tuner (or atsc, tho I have no idea if
anyone tested that on FreeBSD yet) with corresponding v4l/dvb (`v4b')
drivers, in most cases that means an usb tuner supported by the
webcamd port:

 And finally, if you want to compare vdr to other existing ports,
it's a bit like 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.)


 I started with jpulz' vdr 1.7.14 patches: (now updated to 1.7.16)

and made q&d ports of those and of a few more plugins and two webinterfaces
so I can now use FreeBSD as a pc dvb-s2 dvr:

 I still don't know if/when I'll be able finish these to make them
commit-ready (or even port all of the other plugins that people
might want to use), if anyone wants to take over from here or at
least help they are most welcome...

 Note: vdr 1.7.16 is the development branch so expect bugs!  (I mostly
used it because the stable branch (1.6) doesn't support dvb-s2...)

 FreeBSD notes:

0. See my earlier threads on the freebsd-multimedia list about webcamd
   and the usb dvb-s2 and dvb-t tuners I tested; the relevant webcamd
   ports and frieds have been updated now so you _should_ be able
   to just use those.  (dvb-c or 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:

1. Before you start installing these ports add the vdr user and group
   to /usr/ports/UIDs:

	vdr:*:988:988::0:0:vdr user:/nonexistent:/usr/sbin/nologin

   and to /usr/ports/GIDs:


   (you don't have to use 988, I just didn't want the id to conflict with
   new ports being committed too quickly...), and then 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 vdr.  (or if you do have one big / then you can create
   the dir on there too ofc, 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.

2. I now 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 '-Pupnp -i lo0'"

   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:


   too of course.  And for vdradmin_am its:


   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 '-Pupnp -i lo0'

2a.I now also have 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.

3. Of all the video output methods only xineliboutput and streamdev
   seem to work (and the vdr-live webinterface browser streaming which
   also uses streamdev), 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 was unable to test xineliboutput's vdpau support since I no longer
   have nvidia (and miwi's issues with the nvidia blob on amd64 don't
   exactly encourage me to try it again soon...) - on the radeon here
   using xorg 7.4's video-ati driver with xv xineliboutput via vdr-sxfe,

	vdr-sxfe --video=xv --hotkeys --audio=oss xvdr://

   (vdr-sxfe gets installed by the xineliboutput plugin port) as well as
   all other players I tested that knew the xvdr protocol (xineliboutput
   with osd) can now indeed play h264 hd channels on this PhenomII box
   after the ffmpeg updates a few months ago, with the only exception
   of kaffeine that still has issues with h264 1080i streams when
   deinterlacing is enabled:

	xine "xvdr://"
	kaffeine "xvdr+tcp://"
	/usr/local/kde4/bin/kaffeine "xvdr+tcp://"

   (kaffeine also has no provision for vdr keyboard control...)

   You can now also run vdr-sxfe with --hud tho that didn't really
   work for me (probably needs compositing which I yet have to
   test.) --video opengl and vdpau support is now also in the build
   but as I said vdpau I cannot test myself and it may need the
   ffmpeg port to be built with the vdpau knob on too which is still
   off by default.

   Btw I use software volume control with xineliboutput (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:

   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

   (or using streamdev:

	mplayer -mc 10 -cache 8192 -demuxer lavf

   - channel 302 is arte hd in my channels.conf.)

3a.And if you want to try out the xbmc port that recently has been
   committed with live tv via vdr you can do that too even tho it
   is not the pvr-testing2 branch, you just won't get the fast
   channel switching etc you'd get via the vnsi protocol (that I
   also ported the plugin for but couldn't test it) - watching live
   channels and recordings done by vdr (possibly scheduled via
   webinterface) is still possible.  Just make sure you run vdr
   with the streamdev-server plugin enabled and that it is listening
   on the vdr-to-vdr server port (thats 2004 and is disabled by
   default, see in the osd under Setup -> Plugins -> streamdev-server.)
   Then in xbmc you can add vdr streamdev as a video source either
   via the gui or manually by putting something like this in

        <location id="0">vtp://</location>

   Note you'll have to add the /video dir to xbmc seperately via
   the filesystem if you want to be able to watch recordings
   (or test the upnp plugin with xbmc but that is still alpha
   and at least atm also cannot stream h264 recordings.)

4. I have no idea if the lirc support works on FreeBSD, and the uhid(4)
   remote plugin support (see that port's pkg-descr) is highly
   experimental - as well as webcamd not yet supporting dvb tuner
   remotes unless they already appear as uhid(4)/ukbd(4) without
   webcamd's help - so 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,


   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

   And if you use xine

	xine "xvdr://"

   instead of vdr-sxfe

	vdr-sxfe --video=xv --hotkeys --audio=oss xvdr://

   you probably want to use a ~/.xine/keymap that includes vdr controls,
   I've put mine here:

   and the xineliboutput plugin port now also installs it under:


   Oh and the webinterfaces have point-and-click remotes too but those
   are pretty clunky to use...

5. The example 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 you can use the multimedia/w_scan
   port.  Remember to use -o7 for vdr 1.7.x, see the w_scan homepage
   and w_scan's -h and -H usage messages for options and examples:

   (the w_scan start script hasn't been ported to FreeBSD yet.)

   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.

   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:


   (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




   and the plugin homepage:

   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...)

5. 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.  The vdr-plugin-live webinterface by
   default listens on port 8008:


   Default login/pw is admin/live as also mentioned in:


   vdradmin_am listens on 8001:


   Default login/pw for that is vdr/vdr.

   And the streamdev plugin has a (simple) webinterface too if you point
   a browser at it: (instead of a player)


6. I may have forgot some other manual installation steps, if you
   notice something just post a followup...  Most of vdr's own
   configuration including plugins should be available in the
   osd under `Setup', some things like allowed hosts/subnets
   for network plugins need to be manually configured under
   /usr/local/etc/vdr/plugins tho.

 And here are some links about vdr and the plugins and webinterfaces
I made ports for:

0. vdr 1.7.16:

1. xineliboutput-1.0.5 cvs snapshot from 20101019:

2. streamdev-0.5.0 cvs snapshot from 20100426:

3. live-0.2.0s20101122 git snapshot:

4. live also depends on cxxtools and tntnet which I also had to port:

5. epgsearch-0.9.25.beta17:

6. femon-1.7.7:

7. osdpip-0.1.0:

8. osdteletext-0.9.0:

9. skinenigmang-0.1.1:
	(sorry for de in the second link but at least there are pics...)

10. softdevice 0.5.0 cvs snapshot from 20100414:

11. control-0.0.2a-45yavdr1 with ubuntu yavdr patches: (and a patch by
    me to fix a segfault on vdr exit)

12. vdradmin_am-3.6.7:

13. infosatepg-0.0.11:
    My post including notes about how I got it receiving and using
    the infosat epg data quickly:

14. remote-0.4.0:  (with experimental FreeBSD uhid(4) support, some
    notes are in the port's pkg-descr)

15. iptv-0.4.2:

16. vnsiserver-0.0.2s20100808.0952:
    (sorry about the german but as I said this is only useful with
     the xbmc pvr-testing2 branch anyway and its untested too.)

17. upnp-0.0.2a2 with a few bugfixes done by me:


- The ports still could use quite some cleanup work, also to make
  upgrading them or adding new plugins easier.
- 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.)

 Enjoy, :)

More information about the freebsd-multimedia mailing list