This is a Lua-Skript which turns MPV [[https://mpv.io/]] into a full-featured, cross-plattform (Linux, Mac OS, Windows) VDR client.
It is comparable to the vdr-xinliboutput-plugin with vdr-sxfe as a client, Kodi with vdr-plugin-vnsiserver or a VDR with the streamdev-client-plugin.
- VDR like channel switching
- Channel info with current and next EPG event
- Browse the EPG
- Create timers from EPG
- Disable/Enable/Delete timers
- Watch Recordings
- Benefits from MPVs great hardware support (hardware acceleration)
- Very simple installation!
Channel info with current and next EPG event
Browsing the EPG for a channel
Show EPG for a event
Comparison with other VDR-Clients¶
|MPV VDR-Streamdev-Client||Xineliboutput||VDR with Streamdev-Client-Plugin||Kodi with vdr-plugin-vnsiserver|
|Concurrent Clients||as many as DVB devices||one||as many as DVB devices||as many as DVB devices|
|VDR-OSD||through svdrposd-plugin(currently very slow)||yes||through svdrposd-plugin (text based OSD)||text based|
|Cutting Recordings||no||yes||if the video direcotry is shared||no|
This is my personal opinion/knowledge, I may be wrong. If you think I'm wrong please correct me :-)
- On the VDR side it only needs the VDR-Streamdev-Plugin installed.
- On the client bash and netcat (nc) must be installed. On Linux/Mac OS this is usually installed by default, on Windows this means cygwin or probably the Linux-subsystem should work. I have reports of it working with cygwin.
- If you haven't already you'll have to install VDR [[http://tvdr.de]] with vdr-plugin-streamdev [[https://projects.vdr-developer.org/projects/plg-streamdev]].
- Enable the streamdev server plugin, and add the clients IP to streamdevhosts.conf
- Add the clients IP to svdrphosts.conf
- Install mpv [[https://mpv.io]], any version above 0.20.0 should work. Channel switching times are much faster with the current versions
- Download the vdr-streamdev-client.lua [[https://projects.vdr-developer.org/projects/mpv-vdr-streamdev-client/files]], optionally move it to ~/.config/mpv/scripts (for Linux and Mac OS)
- Start mpv with:
mpv vdrstream://[vdr-host][:streamdev-port] [--script /path/to/vdr-streamdev-client.lua]
The --script part is only needed if you haven't moved the script into MPVs script directory.
There are some options which are configurable through the command line or a configuration file. For a full list, have a look at the vdr-streamdev-client.lua script, right at the top blow the first large comment.
Here is a sample config file, to be placed in the file ~/.config/mpv/lua-settings/vdr-streamdev-client.conf
# default VDR host host="192.168.55.4" # default SVDRP port svdrp_port="6419" # default streamdev port streamdev_port="3000" # time after which the '0' key returns to this channel previous_channel_time=10 # for how long to show playback/channel info show_info_timeout=7 # timeout after which channel entry is assumed to be finished channel_switch_timeout=5 # directry for media files media_dir="/Volumes/video" # if you don't want to use streamdev-streaming for recordings # you can provide the path to VDRs video directory here (mounted locally) vdr_video_dir=""
|VDR Key||Default||Name for script-message in input.conf|
You can redefine the keys by creating an input.conf file in the directory ~/.config/mpv using the 'script-message' command. For example if you want to bind the 'r' key to the RED VDR-key, place a line 'r script-message vdrkeyRED' in the input.conf file.
Any keybinding in input.conf overrides the vdr-streamdev-client.conf defaults, so if you want to change the action on the key 'm' you can just put a new definition in your input.conf. See https://github.com/mpv-player/mpv/blob/master/etc/input.conf for the MPVs default configuration and examples.
After starting the client is stuck and nothing happens. What could be the problem?¶
There are different versions of nc (netcat). Some need different parameters to work with VDR-Streamdev-Client. Maybe it helps to install a different netcat version. For instance Debian/Ubunto offers netcat-traditional and netcat-openbsd.
Or <ou can try to add the paramter "-N" to nc. Open the vdr-streamdev-client.lua script in a texteditor, and look for the line
local function send_svdrp(command). A few lines below there is a line
..'\n" |nc '..config.host..' '..config.svdrp_port},
, change it to
..'\n" |nc -N'..config.host..' '..config.svdrp_port},and try again.