imported>ThorstenStaerk |
imported>ThorstenStaerk |
Line 1: |
Line 1: |
− | = Introduction =
| + | #REDIRECT [[NTFS]] |
− | This article describes some aspects to setup an enviroment with a VDR server and a xine stream client.
| |
− | | |
− | Here typically should be the obligatory screenshot of my desktop showing the running stream - I add that later on :)
| |
− | | |
− | To proceed, [[find out your distribution]] and proceed accordingly:
| |
− | | |
− | = SUSE Linux 12.1 =
| |
− | == The setup as basic for this article ==
| |
− | We need some Hardware - I my case:
| |
− | * a laptop [http://www.staerk.de/thorsten/latitude_2100 Dell Latitude 2100]
| |
− | * an external digital TeraTec Cinergy S2 USB with remote control
| |
− | | |
− | And of course some software repositories - in my case:
| |
− | * Base OS is openSUSE 12.1
| |
− | | |
− | We setup the following componets
| |
− | * VDR (http://www.vdr-portal.de/)
| |
− | * XINE
| |
− | | |
− | == Setup Procedure ==
| |
− | === Installing VDR and XINE ===
| |
− | | |
− | ==== Installation channels ====
| |
− | * Set up installation channels
| |
− | zypper ar http://packman.inode.at/suse/openSUSE_12.1/Essentials packman-essentials
| |
− | zypper ar http://packman.inode.at/suse/openSUSE_12.1/Multimedia packman-multimedia
| |
− | * Now the command
| |
− | zypper lr -u
| |
− | must contain
| |
− | | packman-essentials | packman-essentials | Yes | No | http://packman.inode.at/suse/openSUSE_12.1/Essentials
| |
− | | packman-multimedia | packman-multimedia | Yes | No | http://packman.inode.at/suse/openSUSE_12.1/Multimedia
| |
− | | |
− | ==== Installation ====
| |
− | Now install the software:
| |
− | [[yast]] -i xine-ui vdr-plugin-xine
| |
− | | |
− | ==== Configuration ====
| |
− | Now [[configure]] the [[software]]. In /etc/sysconfig/vdr, replace
| |
− | VDR_PLUGINS=""
| |
− | by
| |
− | VDR_PLUGINS="remote xine"
| |
− | VDR_PLUGIN_ARGS_remote="-i /dev/input/ir"
| |
− | VDR_PLUGIN_ARGS_xine=""
| |
− | and restart the video disk recorder:
| |
− | /etc/init.d/vdr restart
| |
− | | |
− | ==== Test ====
| |
− | Now connect the USB device to your computer and to the satelite cable. [[open a console]] and enter
| |
− | xine vdr://
| |
− | | |
− | If you get:
| |
− | The stream 'vdr://' uses an unsupported codec:
| |
− | (null)Audio Codec: MPEG layer 2/3 (0x0)
| |
− | Start playback anyway ?
| |
− | then deinstall the libxine2 libaries and keep the libxine1 ones. Besides, install xine-ui depending on libxine1:
| |
− | rpm -e libxine2
| |
− | zypper install --repo download.opensuse.org-oss xine-ui
| |
− | -> Now it works but there is no menu entry to switch channels or to record video.
| |
− | | |
− | = SUSE Linux 11.4 =
| |
− | == The setup as basic for this article ==
| |
− | We need some Hardware - I my case:
| |
− | * a laptop DELL D620
| |
− | * an external USB S2 digtital HD device TeVii S660
| |
− | * a TechnoTrend remote control (because unfortunately the remote control support of TeVii S660 is buggy in my setup)
| |
− | | |
− | And of course some software repositories - in my case:
| |
− | * Base OS is openSUSE 11.4
| |
− | * Additional package repositories: TBD
| |
− | | |
− | We setup the following componets
| |
− | * VDR (http://www.vdr-portal.de/)
| |
− | * LIRC
| |
− | * XINE
| |
− | | |
− | == Setup Procedure ==
| |
− | === Installing VDR and XINE ===
| |
− | | |
− | ==== Installation channels ====
| |
− | * Set up installation channels
| |
− | zypper ar http://packman.inode.at/suse/openSUSE_11.4/Essentials packman-essentials
| |
− | zypper ar http://packman.inode.at/suse/openSUSE_11.4/Multimedia packman-multimedia
| |
− | * Now the command
| |
− | zypper lr -u
| |
− | must contain
| |
− | | packman-essentials | packman-essentials | Yes | Yes | 99 | rpm-md | http://packman.inode.at/suse/openSUSE_11.4/Essentials
| |
− | | packman-multimedia | packman-multimedia | Yes | Yes | 99 | rpm-md | http://packman.inode.at/suse/openSUSE_11.4/Multimedia
| |
− | | |
− | * libxine2 removed; xine-ui from other vendor'''. Install VDR and xine packages - sou might need also some dependent packages so use zypper to resolve dependencies
| |
− | ** Remark: '''2012-07-18: Updated List'''
| |
− | ** removed package libxine2
| |
− | ** xine-ui from openSUSE '''not''' packman.links2linux.de
| |
− | ** downgraded vdr-plugin-xine to version 0.9.3
| |
− | ** To query the packages in this format:
| |
− | printf " %-22s | %-22s | %-30s | %s\
| |
− | " "Name" "Version" "Vendor" "Project URL"
| |
− | printf " -----------------------+------------------------+--------------------------------+-------------------------------\
| |
− | "
| |
− | rpm -qa --queryformat ' %-22{name} | %-22{version} | %-30{vendor} | %{url} \
| |
− | ' | egrep '(vdr|xine)'
| |
− |
| |
− | Name | Version | Vendor | Project URL
| |
− | -----------------------+------------------------+--------------------------------+-------------------------------
| |
− | libxine1-pulse | 1.1.20.1 | http://packman.links2linux.de | http://www.xine-project.org/home
| |
− | xine-ui | 0.99.5 | openSUSE | http://xine.sourceforge.net
| |
− | libxine1-codecs | 1.1.20.1 | http://packman.links2linux.de | http://www.xine-project.org/home
| |
− | vdr-plugin-streamdev | 0.0_CVS20080716080048 | openSUSE | http://streamdev.vdr-developer.org/
| |
− | libdvdread3 | 0.9.7 | http://packman.links2linux.de | http://www.dtek.chalmers.se/groups/dvd/index.shtml
| |
− | libxine1 | 1.1.20.1 | http://packman.links2linux.de | http://www.xine-project.org/home
| |
− | vdr | 1.6.0 | openSUSE | http://www.tvdr.de/
| |
− | xine-skins | 1.0.3 | Packman | http://xinehq.de/index.php/skins
| |
− | vdr-plugin-epgsearch | 0.9.24 | obs://build.opensuse.org/vdr | http://winni.vdr-developer.org/epgsearch/downloads/vdr-epgsearch-0.9.24.tgz
| |
− | kdebase4-runtime-xine | 4.6.0 | openSUSE | http://www.kde.org/
| |
− | libdvdread4 | 4.1.3 | openSUSE | http://www.mplayerhq.hu/
| |
− | xinetd | 2.3.14 | openSUSE | http://www.xinetd.org/
| |
− | phonon-backend-xine | 4.4.4 | openSUSE | http://phonon.kde.org/
| |
− | vdr-plugin-cutalot | 0.0.3 | openSUSE | http://www.vdr-wiki.de/wiki/index.php/Cutalot-plugin
| |
− | libxine1-gnome-vfs | 1.1.20.1 | http://packman.links2linux.de | http://www.xine-project.org/home
| |
− | vdr-plugin-xine | 0.9.3 | openSUSE | http://home.vr-web.de/~rnissl/
| |
− | | |
− | * Install optional VDR packages
| |
− | vdr-plugin-cutalot 0.0.3 openSUSE http://www.vdr-wiki.de/wiki/index.php/Cutalot-plugin
| |
− | vdr-plugin-epgsearch 0.9.24 obs://build.opensuse.org/vdr http://winni.vdr-developer.org/epgsearch/downloads/vdr-epgsearch-0.9.24.tgz
| |
− | vdr-plugin-streamdev 0.0_CVS20080716080048 openSUSE http://streamdev.vdr-developer.org/
| |
− | | |
− | '''Remark:''' Using the xine plugin (from repository PackMan) you could use xine for a complete VDR client (with full control over all menus).
| |
− | | |
− | * Adapt plugin configuration /etc/sysconfig/vdr (the plugin "remote" is optional and can be dropped, if you use lirc)
| |
− | #
| |
− | # With plugin remote plugin:
| |
− | #
| |
− | VDR_PLUGINS="remote xine"
| |
− | VDR_PLUGIN_ARGS_remote="-i /dev/input/ir"
| |
− | VDR_PLUGIN_ARGS_xine=""
| |
− | #
| |
− | # Without plugin remote plugin:
| |
− | #
| |
− | VDR_PLUGINS="remote xine"
| |
− | VDR_PLUGIN_ARGS_remote="-i /dev/input/ir"
| |
− | VDR_PLUGIN_ARGS_xine=""
| |
− | * Restart VDR
| |
− | /etc/init.d/vdr restart
| |
− | * start watching VDR: - You should get a OSD message from VDR that tells you to train VDR to understand your remote control or keyboard sequences
| |
− | xine vdr://
| |
− | | |
− | In this setup we proceed to integrate the Technotrend Remote control to be able to send signals to LIRCD and than configure VDR to understand LIRCD commands...
| |
− | | |
− | === TechnoTrend USB Remote-Control ===
| |
− | ==== Low Level Test with mode2 ====
| |
− | To test, if the IR keys are recognized on a very low level test using command mode2. This works also without lircd.
| |
− | furka:~ # mode2 -d /dev/lirc0
| |
− | space 3508766
| |
− | pulse 806
| |
− | space 744
| |
− | pulse 806
| |
− | | |
− | ==== lircd configuration ====
| |
− | In openSUSE 11.4 lircd is configured via
| |
− | ===== /etc/sysconfig/lirc =====
| |
− | ## Description: lirc (infrared remote control) configuration
| |
− | ## Type: string
| |
− | ## Default: "660"
| |
− | ## ServiceRestart: lirc
| |
− | #
| |
− | # permissions for /dev/lircd
| |
− | #
| |
− | LIRCD_DEV_PERMISSIONS="660"
| |
− |
| |
− | ## Type: string
| |
− | ## Default: "root:video"
| |
− | #
| |
− | # owner and group for /dev/lircd
| |
− | #
| |
− | LIRCD_DEV_OWNER="root:video"
| |
− |
| |
− | ## Type: string
| |
− | ## Default: ""
| |
− | #
| |
− | # use given driver
| |
− | #
| |
− | LIRCD_DRIVER=""
| |
− |
| |
− | ## Type: string
| |
− | ## Default: ""
| |
− | #
| |
− | # read from given device
| |
− | #
| |
− | LIRCD_DEVICE="/dev/lirc0"
| |
− |
| |
− | ## Type: string(lirc_bt829,lirc_gpio,lirc_i2c,lirc_it87,lirc_parallel,lirc_sir,ir-kbd-i2c,ir-kbd-gpio)
| |
− | ## Default: ""
| |
− | #
| |
− | # load given lirc driver module
| |
− | #
| |
− | LIRC_MODULE="lirc_ttusbir"
| |
− |
| |
− | ## Type: string
| |
− | ## Default: ""
| |
− | #
| |
− | # listen for network connections on specified port.
| |
− | # WARNING: don't use this on a machine with an internet
| |
− | # connection as lircd is running as root!
| |
− | #
| |
− | LIRCD_LISTENPORT=
| |
− |
| |
− | ## Type: string
| |
− | ## Default: ""
| |
− | #
| |
− | # connect lircd to specified host
| |
− | #
| |
− | LIRCD_CONNECT=
| |
− | ===== /etc/lirc/lircd.conf =====
| |
− | /etc/lirc/lircd.conf (enthaelt die definition der Fernbedienungstasten)
| |
− | #
| |
− | # this config file was automatically generated
| |
− | # using lirc-0.8.3(default) on Wed Jul 2 21:51:15 2008
| |
− | #
| |
− | # contributed by
| |
− | #
| |
− | # brand: Technotrend
| |
− | # model no. of remote control:
| |
− | # devices being controlled by this remote: TV-Card
| |
− | #
| |
− |
| |
− | begin remote
| |
− |
| |
− | name Technotrend
| |
− | bits 6
| |
− | flags RC5|CONST_LENGTH
| |
− | eps 30
| |
− | aeps 100
| |
− |
| |
− | one 889 889
| |
− | zero 889 889
| |
− | plead 889
| |
− | pre_data_bits 7
| |
− | pre_data 0x55
| |
− | gap 113792
| |
− | toggle_bit 2
| |
− | frequency 36000
| |
− | duty_cycle 50
| |
− |
| |
− | begin codes
| |
− | Power 0x01
| |
− | Mute 0x18
| |
− | 1 0x03
| |
− | 2 0x04
| |
− | 3 0x05
| |
− | 4 0x06
| |
− | 5 0x07
| |
− | 6 0x08
| |
− | 7 0x09
| |
− | 8 0x0A
| |
− | 9 0x0B
| |
− | 0 0x0C
| |
− | Audio 0x1A
| |
− | Repeat 0x02
| |
− | vol- 0x26
| |
− | vol+ 0x25
| |
− | Text 0x19
| |
− | ch- 0x24
| |
− | ch+ 0x23
| |
− | Exit 0x13
| |
− | OK 0x0F
| |
− | Up 0x0D
| |
− | Down 0x11
| |
− | Left 0x0E
| |
− | Right 0x10
| |
− | Red 0x14
| |
− | Green 0x15
| |
− | Yellow 0x16
| |
− | Blue 0x17
| |
− | Record 0x3A
| |
− | Play 0x3B
| |
− | Stop 0x3C
| |
− | Info 0x12
| |
− | Rew 0x3D
| |
− | Pause 0x3E
| |
− | Fwd 0x3F
| |
− | EPG 0x22
| |
− | end codes
| |
− |
| |
− | end remote
| |
− | | |
− | ==== lircd start and start at boot time ====
| |
− | furka:~ # rclirc start
| |
− | Starting lircd (/dev/lirc0) done
| |
− | furka:~ # chkconfig lirc on
| |
− | | |
− | ==== lircd-client Connection Test ====
| |
− | To test, if a client of lircd could recognize key presses use command irw. This command is part of package lirc.
| |
− | furka:~ # irw
| |
− | 000000000000154c 00 0 Technotrend
| |
− | 000000000000154c 01 0 Technotrend
| |
− | 000000000000154c 00 0 Technotrend
| |
− | 000000000000154c 01 0 Technotrend
| |
− | | |
− | ==== Trouble-Shooting ====
| |
− | * If you do NOT have a valid config file for your remote you might create one interactive using irrecord
| |
− | irrecord -d /dev/lirc0 file
| |
− | * Remarks
| |
− | ** "file" is the output file
| |
− | ** You should prefer to fetch a config file from http://www.lirc.org/remotes/
| |
− | ** I successfully tried http://lirc.sourceforge.net/remotes/technotrend/TV-Card
| |
− | | |
− | === lirc to talk with vdr ===
| |
− | * VDR automatically tries to get signals/commands from LIRC, but you need to help VDR to understand whoat to do, if a special LIRC command is received. You could either "train" VDR and press keys in the training mode, or provide a ready-to-go definition file. File '''/etc/vdr/remote.conf''' needs to contain those additional entries for accepting lircd keys:
| |
− | LIRC.Up Up
| |
− | LIRC.Down Down
| |
− | LIRC.Menu Repeat
| |
− | LIRC.Ok OK
| |
− | LIRC.Back Exit
| |
− | LIRC.Left Left
| |
− | LIRC.Right Right
| |
− | LIRC.Red Red
| |
− | LIRC.Green Green
| |
− | LIRC.Yellow Yellow
| |
− | LIRC.Blue Blue
| |
− | LIRC.0 0
| |
− | LIRC.1 1
| |
− | LIRC.2 2
| |
− | LIRC.3 3
| |
− | LIRC.4 4
| |
− | LIRC.5 5
| |
− | LIRC.6 6
| |
− | LIRC.7 7
| |
− | LIRC.8 8
| |
− | LIRC.9 9
| |
− | LIRC.Info Info
| |
− | LIRC.Play Play
| |
− | LIRC.Pause Pause
| |
− | LIRC.Stop Stop
| |
− | LIRC.Record Record
| |
− | LIRC.FastFwd Fwd
| |
− | LIRC.FastRew Rew
| |
− | LIRC.Power Power
| |
− | LIRC.Channel+ ch+
| |
− | LIRC.Channel- ch-
| |
− | LIRC.Volume+ vol+
| |
− | LIRC.Volume- vol-
| |
− | LIRC.Mute Mute
| |
− | | |
− | * Restart VDR again to activate the new configuration
| |
− | | |
− | == UNSORTED STUFF ==
| |
− | Auf dem Laptop Latitude D820 habe ich einen vdr installiert mit einer externen USB-Box TVii 660
| |
− | === Installation of the DVB-S2 USB-Box ===
| |
− | <TBD>
| |
− | === Plugins, plugins, plugins ... ===
| |
− | Why are there so much differetn plugins for VDR to provide video streams? They all have different feature sets and use cases. While in the use case to watch TV on a Laptop where the TV-Card/Box is connected is matching to the plugine xine, there are other usescases for network streaming.
| |
− | | |
− | TBD We need / explain the following VDR plugins:
| |
− | * xine
| |
− | * streamdev
| |
− | * libxineoutput
| |
− | | |
− | === Video clients ===
| |
− | ==== Remote Streaming: vdr-plugin-streamdev ====
| |
− | vlc - What is already running is that you can watch TV and also switch the programm. But you do not have full control over VDR using that method.
| |
− | vlc http://127.0.0.1:3000/PES/1
| |
− | URL in general:
| |
− | http://<hostip>:<port>/[PES|xx]/<prognummer>
| |
− | You need to setup the file /etc/vdr/streamdev.conf:
| |
− | # streamdev.conf:
| |
− | <TBD>
| |
− | | |
− | Passender /etc/sysconfig/vdr Auszug
| |
− | VDR_PLUGINS="streamdev"
| |
− | | |
− | ==== vdr-plugin-xineliboutput ====
| |
− | With xineliboutput
| |
− | vlc tcp://localhost:37890
| |
− | | |
− | But how to switch the program using this connection?
| |
− | | |
− | ==== Best practice local access with <html><acronym title="On Screen Display">OSD</acronym></html>:
| |
− | vdr-plugin-xine ====
| |
− | '''This is the recommended way if you want to watch TV on the computer where VDR is running.'''
| |
− | | |
− | Using the xine plugin (from repository PackMan) you could use xine for a complete VDR client (with full control over all menus).
| |
− | | |
− | * install it:
| |
− | yast -i vdr-plugin-xine
| |
− | | |
− | * Matching line in /etc/sysconfig/vdr (the plugin "remote" is optional and can be dropped, if you use lirc)
| |
− | VDR_PLUGINS="remote xine"
| |
− | VDR_PLUGIN_ARGS_remote="-i /dev/input/ir"
| |
− | VDR_PLUGIN_ARGS_xine=""
| |
− | | |
− | * Restart VDR
| |
− | /etc/init.d/vdr restart
| |
− | | |
− | * start watching TV:
| |
− | xine vdr://
| |
− | | |
− | === Remote Control ===
| |
− | TBD: translate de->en
| |
− | ==== TeVii S660 remote control is a bit painfull for me ====
| |
− | Translation: <TBD>
| |
− | * Mit dem Update von c.a. Mitte März auf den Herstellerseiten (auf Simplon Download/Tevii) geht nun die Erkennung der Fernbedienung
| |
− | * Kleiner Patch in ./v4l/dw2102.c die Ausgaben von "query RC..." auskommentiert (also nicht aktiv), weil sonst der syslog voll läuft
| |
− | * VDR meldet (ohne Config s.u.) beim Starten, dass er kein lirc findet, allerdings scheint die Fernbedienung als Tastatur zur funktionieren:
| |
− | ** Test mit fb bringt messages im syslog (kann ggf später entfallen)
| |
− | ** xev zeigt tastaturreaktion, wenn man fb bedient
| |
− | ** KDE lautstärke regler funktioniert bereits :)
| |
− | ** Cursorbewegungen (auf/ab/rechts/links) funktinieren u.a. hier im wiki :)
| |
− | ** war jetzt nach einigen Eingaben nicht stabil - prüfen!
| |
− | | |
− | In den VDR bindet man die Fernbedienung mit dem plugin remote ein.
| |
− | Passender Auszug aus der /etc/sysconfig/vdr
| |
− | VDR_PLUGINS="remote"
| |
− | VDR_PLUGIN_ARGS_remote="-i /dev/input/ir
| |
− | | |
− | Die Berechtigungen für das IR-device (/dev/input/ir) müssen so eingestellt werden,
| |
− | dass der VDR (Benutzer vdr) darauf Zugreifen darf.
| |
− | chown vdr:users /dev/input/ir
| |
− | | |
− | Die FB muss beim ersten Benutzen im VDR trainiert werden, wenn die Datei /etc/vdr/remote.conf nicht
| |
− | angepasst wird (Datei stelle ich bei Bedarf zur Verfügung :).
| |
− | | |
− | === openSUSE 11.2 package list sorted by "vendor" ===
| |
− | rpm -qa --queryformat "%{NAME} %{VENDOR}\
| |
− | " | egrep '(vdr|xine)' | sort -k2
| |
− | * Packman
| |
− | gxine Packman
| |
− | gxine-browser-plugin Packman
| |
− | xine-browser-plugin Packman
| |
− | xine-skins Packman
| |
− | * http://packman.links2linux.de
| |
− | libdvdread3 http://packman.links2linux.de
| |
− | libdvdread4 http://packman.links2linux.de
| |
− | libxine1 http://packman.links2linux.de
| |
− | libxine1-codecs http://packman.links2linux.de
| |
− | libxine1-gnome-vfs http://packman.links2linux.de
| |
− | libxine1-pulse http://packman.links2linux.de
| |
− | vdr-plugin-xine http://packman.links2linux.de
| |
− | xine-ui http://packman.links2linux.de
| |
− | * obs://build.opensuse.org/vdr
| |
− | vdr-plugin-xineliboutput obs://build.opensuse.org/vdr
| |
− | * openSUSE
| |
− | phonon-backend-xine openSUSE
| |
− | vdr openSUSE
| |
− | vdr-plugin-cutalot openSUSE
| |
− | vdr-plugin-epgsearch openSUSE
| |
− | vdr-plugin-remote openSUSE
| |
− | vdr-plugin-streamdev openSUSE
| |
− | xinetd openSUSE
| |
− | | |
− | = TroubleShooting =
| |
− | == no input plugin available ==
| |
− | ;Symptom: When calling
| |
− | xine vdr://
| |
− | you get the error message
| |
− | - xine engine error -
| |
− | There is no input plugin available to handle 'vdr'.
| |
− | Maybe MRL syntax is wrong or file/stream source doesn't exist.
| |
− | ;Solution: In /etc/sysconfig/vdr, have
| |
− | VDR_PLUGINS="remote xine"
| |
− | VDR_PLUGIN_ARGS_remote="-i /dev/input/ir"
| |
− | VDR_PLUGIN_ARGS_xine=""
| |
− | | |
− | == unsupported codec ==
| |
− | ;Symptom: When calling
| |
− | xine vdr://
| |
− | you get the [[error message]]
| |
− | The stream 'vdr://' uses an unsupported codec:
| |
− | (null)Audio Codec: MPEG layer 2/3 (0x0)
| |
− | Start playback anyway ?
| |
− | ;Solution: Deinstall the libxine2 libaries and keep the libxine1 ones. Besides, install xine-ui depending on libxine1:
| |
− | rpm -e libxine2
| |
− | zypper install --repo download.opensuse.org-oss xine-ui
| |
− | | |
− | = See also =
| |
− | * [[watch TV]]
| |
− | * http://packman.links2linux.de/package/vdr-plugin-xine/229857
| |