-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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
| 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 with vdr-plugin-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 |
|---|---|---|
| 0-9 | 0-9 | vdrkey0-vdrkey9 |
| RED | F1 | vdrkeyRED |
| GREEN | F2 | vdrkeyGREEN |
| YELLOW | F3 | vdrkeyYELLOW |
| BLUE | F4 | vdrkeyBLUE |
| UP | Cursor-UP | vdrkeyUP |
| DOWN | Cursor-DOWN | vdrkeyDOWN |
| RIGHT | Cursor-RIGHT | vdrkeyRIGHT |
| LEFT | Cursor-LEFT | vdrkeyLEFT |
| BACK | Backspace | vdrkeyBACK |
| MENU | m | vdrkeyMENU |
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.
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 you 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.