XBMC: Unterschied zwischen den Versionen

Aus CodicaTipps
Zur Navigation springen Zur Suche springen
 
(94 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
XBMC ist eine [[OpenSource]]-Software, die in etwa dem Funktionsumfang des Windows MediaCenters entspricht, d.h. im Wesentlichen Filme und Musik abspielen und aufnehmen und TV auf dem jeweiligen Gerät ermöglicht.
+
XBMC (umbenannt in "[https://kodi.wiki/view/Main_Page Kodi]") ist eine [[OpenSource]]-Software, die in etwa dem Funktionsumfang des Windows MediaCenters entspricht, d.h. im Wesentlichen Filme und Musik abspielen und aufnehmen und TV auf dem jeweiligen Gerät ermöglicht.
  
Mit [http://linux.mjnet.eu/post/804/xbmc-pvr-tvheadend-ubuntu-12-04-install/ TvHeadEnd] lässt sich XBMC auch zu einem Videorecorder aufmöbeln. Damit ist auch das automatische Aufwachen zum Aufnehmen einer programmierten Sendung möglich. Siehe https://tvheadend.org/projects/tvheadend/wiki/Wakeup .
+
Mit [http://linux.mjnet.eu/post/804/xbmc-pvr-tvheadend-ubuntu-12-04-install/ TvHeadEnd] lässt sich XBMC auch zu einem Videorecorder aufmöbeln. Damit ist auch das automatische Aufwachen zum Aufnehmen einer programmierten Sendung möglich. Siehe https://tvheadend.org/projects/tvheadend/wiki/Wakeup . Möglicherweise hilft auch [http://www.vdr-portal.de/board60-linux/board62-software/board95-xbmc/117253-intelligentes-shutdown-in-xbmc/ dieser Thread zum Wakeup und Shutdown von XBMC],
  
 
[http://www.openelec.tv/component/content/article?id=1 OpenELEC] ist eine [[Linux]]-Distribution, die speziell für die Unterstützung von XBMC entwickelt wurde.
 
[http://www.openelec.tv/component/content/article?id=1 OpenELEC] ist eine [[Linux]]-Distribution, die speziell für die Unterstützung von XBMC entwickelt wurde.
  
 +
 +
== Installation aus den Quellen ==
 +
 +
=== Installation von Kodi 17.4 Krypton auf Debian 9 Stretch ===
 +
 +
Mit dieser Anleitung kann Kodi 17.4 Krypton einschließlich des [[TvHeadend]]-Addon auf Debian 9 Stretch kompiliert und auf einem Zielsystem installiert werden.
 +
 +
Diese Anleitung beruht auf [http://penzin.net/kodi.html derjenigen auf penzin.net für Kodi 17.3]. Siehe auch
 +
* [https://github.com/xbmc/xbmc/blob/Krypton/docs/README.linux Kodi-README Version für Krypton]
 +
* [https://github.com/kodi-pvr/pvr.hts/blob/Krypton/README.md Tvheadend-Addon-README für Krypton]
 +
 +
==== Phase 1 Kompilieren auf dem Quellsystem ====
 +
 +
Installiere notwendige Packages:
 +
 +
  sudo aptitude install git \
 +
        automake autopoint bison build-essential ccache cmake curl cvs \
 +
        default-jre fp-compiler gawk gdc gettext gperf libasound2-dev \
 +
        libass-dev libavcodec-dev libavfilter-dev libavformat-dev \
 +
        libavutil-dev libbluetooth-dev libboost-dev libboost-thread-dev \
 +
        libbz2-dev libcap-dev libcdio-dev libcrystalhd-dev libcrystalhd3 \
 +
        libcurl3 libcurl4-gnutls-dev libcwiid-dev libcwiid1 libdbus-1-dev \
 +
        libenca-dev libflac-dev libfontconfig1-dev libfreetype6-dev \
 +
        libfribidi-dev libglew-dev libiso9660-dev \
 +
        libjpeg-dev libltdl-dev liblzo2-dev libmad0-dev libmicrohttpd-dev \
 +
        libmodplug-dev libmp3lame-dev libmpeg2-4-dev libmpeg3-dev \
 +
        libnfs-dev libogg-dev libpcre3-dev libplist-dev \
 +
        libpng-dev libpostproc-dev libpulse-dev libsamplerate0-dev \
 +
        libsdl1.2-dev libsdl-gfx1.2-dev libsdl-image1.2-dev \
 +
        libsdl-mixer1.2-dev libsmbclient-dev libsqlite3-dev libssh-dev \
 +
        libswscale-dev libtiff5-dev libtinyxml-dev libtool \
 +
        libudev-dev libusb-dev libva-dev libva-egl1 libva-tpi1 libvdpau-dev \
 +
        libvorbisenc2 libxml2-dev libxmu-dev libxrandr-dev libxrender-dev \
 +
        libxslt1-dev libxt-dev libyajl-dev mesa-utils nasm pmount \
 +
        python-dev python-imaging python-sqlite swig unzip yasm zip \
 +
        zlib1g-dev libtag-extras-dev libgnutls28-dev \
 +
        uuid-dev libgif-dev libsdl2-dev liblcms2-dev xz-utils \
 +
        libssl1.0-dev default-libmysqlclient-dev libcrossguid-dev \
 +
        libavahi-client-dev libbluray-dev libp8-platform-dev libcec-dev \
 +
        joe bash-completion
 +
 +
 +
  cd # Wechsle ins Home-Verzeichnis
 +
  mkdir kodi17.4
 +
  cd kodi17.4
 +
  git clone -b Krypton https://github.com/xbmc/xbmc.git
 +
  git checkout 17.4-Krypton  # Das ist der Tag des Releases, kein Branch
 +
  git clone https://gitlab.com/vadimp/kodi-mdnsresponder
 +
  git clone https://github.com/juhovh/shairplay.git
 +
  # only necessary for TvHeadend-Addon pvr.hts
 +
  git clone -b Krypton https://github.com/kodi-pvr/pvr.hts.git
 +
 +
Erzeuge Datei <code>~/kodi17.4/kodi-build-vars.sh</code> mit folgendem Inhalt:
 +
<pre>
 +
export KODI_PFX='/opt/kodi17.4'
 +
export C_INCLUDE_PATH="${C_INCLUDE_PATH}:${KODI_PFX}/include"
 +
export CPLUS_INCLUDE_PATH="${CPLUS_INCLUDE_PATH}:${KODI_PFX}/include"
 +
export LIBRARY_PATH="${LIBRARY_PATH}:${KODI_PFX}/lib"
 +
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${KODI_PFX}/lib"
 +
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${KODI_PFX}/lib/pkgconfig"
 +
export PATH="${PATH}:${KODI_PFX}/bin"
 +
export MAKEFLAGS="-j1"
 +
</pre>
 +
 +
Lese die Umgebungsvariablen ein:
 +
  source ~/kodi17.4/kodi-build-vars.sh
 +
 +
Shairplay und mDNSResponder kompilieren und installieren:
 +
  cd "~/kodi17.4/shairplay"
 +
  ./autogen.sh
 +
  ./configure "--prefix=${KODI_PFX}"
 +
  make
 +
  sudo make install
 +
  cd "../kodi-mdnsresponder"
 +
  make
 +
  sudo sh -c "PREFIX=\"${KODI_PFX}\" make install"
 +
 +
Dynamische Bibliotheken von shairplay und mDNSResponder zur Kompilation von Kodi bereitstellen:
 +
  sudo ldconfig "${KODI_PFX}/lib"
 +
 +
Kompilieren von Kodi
 +
  cd "~/kodi17.4/xbmc"
 +
  ./bootstrap
 +
  ./configure "--prefix=${KODI_PFX}" --enable-mid
 +
  make
 +
 +
Kompilieren des TvHeadend-Addons pvr.hts:
 +
  cd "~/kodi17.4/pvr.hts"
 +
  mkdir build
 +
  cd build
 +
  cmake -DADDONS_TO_BUILD=pvr.hts -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/project/cmake/addons
 +
  make
 +
 +
oder
 +
  cd "~/kodi17.4/xbmc"
 +
  make -C tools/depends/target/binary-addons PREFIX=${KODI_PFX} ADDONS="pvr.hts adsp.basic audiodecoder.modplug audiodecoder.nosefart audiodecoder.sidplay audiodecoder.snesapu audiodecoder.stsound audiodecoder.timidity audiodecoder.vgmstream audioencoder.flac audioencoder.lame audioencoder.vorbis audioencoder.wav inputstream.mpd pvr.demo visualization.fishbmc visualization.goom visualization.projectm  visualization.shadertoy visualization.spectrum visualization.vsxu visualization.waveform"
 +
 +
 +
Installieren von Kodi samt Addon:
 +
  cd "~/kodi17.4/xbmc"
 +
  sudo make install
 +
 +
Zusammenfassen der Binärinstallation in ein TAR-Archiv:
 +
  cd ~/kodi17.4
 +
  sudo tar -C / -cJf "kodi-17.4-$(uname -m).tar.xz" "${KODI_PFX:1}/"{bin,lib,share}
 +
 +
==== Phase 2 Installieren auf dem Zielsystem ====
 +
 +
===== Notwendige Pakete auf dem Zielsystem =====
 +
 +
  sudo aptitude install \
 +
        dbus libasn1-8-heimdal libasound2 libass5 libasyncns0 \
 +
        libattr1 libavahi-client3 libavahi-common3 libbluetooth3 libbsd0 \
 +
        libbz2-1.0 libcap2 libcdio13 libcomerr2 libcrystalhd3 \
 +
        libcurl3-gnutls libdbus-1-3 libdrm2 libexpat1 libffi6 libflac8 \
 +
        libfreetype6 libfribidi0 libgcrypt20 libgl1-mesa-glx \
 +
        libglapi-mesa libglew2.0 libglu1-mesa libgmp10  libgnutls-dane0 \
 +
        libgpg-error0 libgssapi3-heimdal libgssapi-krb5-2 \
 +
        libhcrypto4-heimdal libheimbase1-heimdal \
 +
        libheimntlm0-heimdal libhogweed4 libhx509-5-heimdal libice6 \
 +
        libjbig0 libjpeg62-turbo libjson-c3 libk5crypto3 \
 +
        libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0 \
 +
        libldap-2.4-2 libldb1 liblzma5 liblzo2-2 libmad0 \
 +
        libmicrohttpd12 libnettle6 libntdb1 libogg0 libp11-kit0 libpcre3 \
 +
        libpcrecpp0v5 libpng16-16 libpulse0 libpython2.7 \
 +
        libroken18-heimdal libsasl2-2 libsm6 libsmbclient libsndfile1 \
 +
        libsqlite3-0 libssh-4 libssl1.1 libsystemd0 libtag1v5-vanilla \
 +
        libtalloc2 libtasn1-6 libtdb1 libtevent0 libtiff5 libtinyxml2.6.2v5 \
 +
        libudev1 libuuid1 libva1 libva-x11-1 libvorbis0a libvorbisenc2 \
 +
        libwbclient0 libwind0-heimdal libwrap0 libx11-6 libx11-xcb1 libxau6 \
 +
        libxcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 \
 +
        libxcb-render0 libxcb-shape0 libxcb-sync1 libxcb-xfixes0 \
 +
        libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxml2 libxmu6 \
 +
        libxrandr2 libxrender1 libxshmfence1 libxslt1.1 libxt6 libxtst6 \
 +
        libxxf86vm1 libyajl2 policykit-1 samba-libs sudo x11-xserver-utils \
 +
        xinit zlib1g unzip libsdl2-2.0-0 liblcms2-2 xz-utils upower \
 +
        libmariadbclient18 libcrossguid0 \
 +
        libavahi-client3 libbluray1 libp8-platform2 libcec4 \
 +
        libvdpau1 libva-drm1 pulseaudio \
 +
        pavucontrol sudo joe
 +
 +
===== Zugriffsrechte für X11 =====
 +
Auch non-root-Benutzer sollen Rechte haben, auf den XServer zuzugreifen:
 +
  dpkg-reconfigure xserver-xorg-legacy
 +
 +
===== Auspacken auf dem Zielsystem =====
 +
  sudo tar -C / -xvJf tmp/kodi-17.4-pvr_hts_only-x86_64.tar.xz
 +
 +
Dem System die dynamischen Bibliotheken von Kodi mitteilen (steht bei penzin.net, bin nicht sicher, ob es notwendig ist):
 +
  cat <<EOF | sudo tee /etc/ld.so.conf.d/kodi.conf
 +
  /opt/kodi17.4/lib
 +
  EOF
 +
  sudo ldconfig
 +
 +
===== Systemd-Service für Kodi =====
 +
Dann braucht man zum automatischen Starten von Kodi noch einen [http://kodi.wiki/view/Archive:HOW-TO:Autostart_Kodi_for_Linux#Add_a_new_systemd_script Systemd-Service]. Bitte beim kodi.service-Script auf den korrekten Pfad in <code>/opt/kodi/bin</code> achten.
 +
Ein Beispiel für ein solches Skript <code>/etc/systemd/system/kodi.service</code>:
 +
<pre>
 +
[Unit]
 +
Description = Kodi Media Center
 +
 +
# if you don't need the MySQL DB backend, this should be sufficient
 +
#After = systemd-user-sessions.service network.target sound.target
 +
 +
# if you need the MySQL DB backend, use this block instead of the previous
 +
After = systemd-user-sessions.service network.target sound.target mysql.service
 +
Wants = mysql.service
 +
 +
[Service]
 +
User = kodi
 +
Group = kodi
 +
Type = simple
 +
#PAMName = login # you might want to try this one, did not work on all systems
 +
ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /opt/kodi17.4/bin/kodi-standalone -- :0 -nolisten tcp vt7
 +
Restart = always
 +
RestartSec = 20
 +
 +
[Install]
 +
WantedBy = multi-user.target
 +
</pre>
 +
 +
 +
 +
Nicht zu vergessen sind auch die für kodi erforderlichen Gruppen:
 +
  sudo adduser kodi
 +
  sudo usermod -a -G cdrom,audio,video,plugdev,users,dialout,dip,input,netdev kodi
 +
 +
===== Infrarot-Fernbedienung =====
 +
 +
Um diese einzurichten siehe bei [[Linux-Tipps#Infrarot-Schnittstelle]].
 +
 +
=== Installation von Kodi 17.3 Krypton auf Debian 9 Stretch ===
 +
 +
Auch auf einem [[Debian]] lässt sich die aktuelle Version von Kodi kompilieren und installieren:
 +
 +
* http://penzin.net/kodi.html
 +
* [https://wiki.debian.org/KodiBuildingFromSource ältere Beschreibung im Debian-Wiki]
 +
 +
Auf der Zielmaschine musste ich noch ConsoleKit installieren:
 +
  sudo aptitude install consolekit
 +
 +
Statt des bei Penzin beschriebenen Autostarts kann man es auch mit [http://kodi.wiki/view/Archive:HOW-TO:Autostart_Kodi_for_Linux#Add_a_new_systemd_script Systemd-Service] versuchen. Bitte beim kodi.service-Script auf den korrekten Pfad in <code>/opt/kodi/bin</code> achten. Nicht zu vergessen sind auch die für kodi erforderlichen Gruppen:
 +
  sudo usermod -a -G cdrom,audio,video,plugdev,users,dialout,dip,input,netdev kodi
 +
 +
Um das PVR-Plugin für TvHeadend zu installieren kann man sich des vorhandenen DEB-Packages bedienen:
 +
  #!/bin/bash
 +
  set -e
 +
  set -x
 +
  sudo aptitude --download-only install kodi-pvr-hts
 +
  tmp_dir=/tmp/kodi-pvr-hts
 +
  kodi_home=/opt/kodi
 +
  rm -Rf $tmp_dir # clean up temporary directory
 +
  mkdir -p $tmp_dir
 +
  cd $tmp_dir
 +
  ar xv /var/cache/apt/archives/kodi-pvr-hts*.deb
 +
  xz --decompress -v data.tar.xz
 +
  tar --extract -vf data.tar
 +
  sudo cp -avRi usr/share/kodi/addons/pvr.hts $kodi_home/share/kodi/addons/
 +
  sudo cp -avRi usr/lib/x86_64-linux-gnu/kodi/addons/pvr.hts $kodi_home/lib/kodi/
 +
  echo Finished!
 +
 +
=== Installation von Kodi 17.1 Krypton vom Debian 9 Stretch Repository ===
 +
 +
Bei einer vollständigen Installation von Debian 9 Stretch mit GUI kann man Kodi ganz simpel installieren:
 +
  sudo aptitude install kodi
 +
 +
Hat man jedoch ein Minimalsystem installiert, werden nicht alle Abhängigkeiten mitinstalliert. Zu installieren ist u.a.
 +
  sudo aptitude install xinit dbus-launch
 +
 +
Auch den Nichtkonsolenbenutzer muss man das Starten des XServers erlauben:
 +
  sudo -i
 +
  echo -e "allowed_users=anybody\nneeds_root_rights=yes" >> /etc/X11/Xwrapper.config
 +
 +
Gestartet wird Kodi dann von der Kommandozeile so:
 +
  /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session kodi-standalone
 +
.
 +
 +
=== Installation von Kodi 18.4 auf Ubuntu 18.04 Buster LTS ===
 +
 +
Nach einer minimalen Netinst-Installation von Ubuntu Server (keine graphische Oberfläche, nur Konsole) benötigt man aus dem XBMC-PPA das Paket kodi-standalone und zusätzlich einen vollständigen X-Server, den man durch Installation der Pakete xinit, xinput und xserver-xorg erhält. Daneben sollten auch folgende Pakete installiert sein:
 +
* curl
 +
* wget
 +
* sudo
 +
* pulseaudio
 +
* paprefs
 +
* pavucontrol
 +
* lightdm
 +
* lirc (optional für Infrarot-Fernbedienung)
 +
 +
Der Benutzer muss den Gruppen audio, video und plugdev angehören.
 +
 +
Das Starten erfolgt aus dem Terminal mit
 +
  startx kodi-standalone
 +
 +
 +
Siehe
 +
* https://www.richud.com/wiki/Ubuntu_Minimal_KODI_Install
 +
* https://kodi.wiki/view/HOW-TO:Install_Kodi_for_Linux
 +
und für den automatischen Start:
 +
* https://kodi.wiki/view/HOW-TO:HOW-TO:Autostart_Kodi_for_Linux
 +
* https://debianforum.de/forum/viewtopic.php?t=171943
 +
* [https://wiki.archlinux.org/index.php/Kodi ArchLinux-Doku für Kodi einschließlich Aufwecken durch IR-Remote]
 +
 +
Bei mir war der Autostart auf Basis von [[systemd]] wegen des Zusammenspiels mit [[Pulseaudio]] zu kompliziert. Daher habe ich ein Autostart mit [[lightdm]] gemacht. Siehe [https://wiki.archlinux.org/index.php/Kodi#Xsession_with_LightDM die ArchLinux-Anleitung dazu].
 +
 +
Trotz Installation der entsprechenden kodi-pvr-XXX-TV-Addon-Packages via aptitude wurde in meinem Kodi die PVR-Addons nicht angezeigt. Daher habe ich in den Einstellungen den Webzugriff erlaubt. Über localhost:8080->Einstellungen->Addons wurden die Addons dann angezeigt und konnten aktiviert werden. Dann wurden sie auch in der normalen Kodi-Oberfläche angezeigt.
 +
 +
=== Kodi und Audio ===
 +
 +
Kodi benützt [[PulseAudio]], wenn es vorhanden ist, ansonsten das [[ALSA]]-Sound-System. In den Einstellungen => System Einstellungen => Audio findet man unter Audiogeräte, worauf Kodi den Ton ausgibt.
 +
 +
Um [[MPD]] und [[Kodi]] <small>(als Standalone-Prozess - Probleme gibt es keine, wenn Kodi auf dem normalen GUI-Desktop läuft)</small> gleichzeitig auf einem Computer mit einem [[PulseAudio]]-Server einzusetzen, kann man folgendermaßen vorgehen:
 +
 +
# Der PulseAudio-Server muss seine Dienste im Netzwerk (ggf. eingeschränkt auf localhost) anbieten (siehe [[Audio#Pulseaudio als Pulseaudio-Server im Heimnetz nutzen]]).
 +
# Die lokalen Clients müssen diesen Server als <code>default-server</code> akzeptieren (siehe [[Audio#Pulseaudio auf einem Rechner von verschiedenen Usern gemeinsam nutzen]]).
 +
# PulseAudio muss vor Kodi gestartet werden. Wenn Kodi mit einem [[systemd]]-Service <code>kodi.service</code> gestartet wird, kann man eine Datei <code>/etc/systemd/system/pulseaudio.service</code> anlegen mit folgendem Inhalt:
 +
 +
<pre>
 +
[Unit]
 +
Description = Pulse Audio Server
 +
 +
Before = kodi.service sound.target
 +
 +
[Service]
 +
 +
User = kodi
 +
Group = kodi
 +
Type = simple
 +
# Das habe ich auf https://wiki.debianforum.de/Audiokonfiguration gefunden:
 +
BusName=org.pulseaudio.Server
 +
ExecStart=/usr/bin/pulseaudio
 +
Restart=always
 +
RestartSec = 20
 +
 +
[Install]
 +
WantedBy = multi-user.target
 +
</pre>
 +
 +
Siehe zum Zusammenspiel mit PulseAudio:
 +
* [https://gist.github.com/bheisig/bf1a13a05cdb6a12ee805b00dc6d90bb Pulseaudio the Hard Way]
 +
 +
== PVR ==
 +
 +
Für Live-TV und das Aufnehmen von Videos benötigt XBMC ein Backend. Ein solches ist Tvheadend.
 +
 +
=== Tvheadend ===
 +
 +
==== Vorbereitung: Firmware für TV-Stick/-Karte ====
 +
 +
Häufig benötigen TV-Sticks oder -Karten unter Linux eine spezielle Firmware, die speziell installiert werden muss.
 +
 +
Beispiel [http://www.technotrend.eu/  TechnoTrend] TT-TVStick CT2-4400:
 +
 +
Hier muss man die Dateien <code>dvb-demod-si2168-b40-1.fw</code> und <code>dvb-tuner-si2158-a20-01.fw </code> vom [https://github.com/OpenELEC/dvb-firmware/tree/master/firmware OpenElec-Server] herunterladen und ins Verzeichnis <code>/lib/firmware</code> verschieben.<ref>Vgl. https://www.linuxtv.org/wiki/index.php/TechnoTrend_TT-TVStick_CT2-4400</ref>
 +
 +
==== Installation in Ubuntu ====
 +
 +
Siehe die [https://tvheadend.org/projects/tvheadend/wiki/AptRepository Installationsanleitung auf tvheadend.org]. Für Ubuntu 15.10 Wily muss man auf die "Release"-Version von 15.04 "vivid" zurückgreifen (Stand: Ende 2015).
 +
 +
Die [http://wiki.ubuntuusers.de/tvheadend Installationsanleitung auf ubuntuusers.de] ist dagegen veraltet (Stand: 4.8.2015).
 +
 +
==== Installation in Ubuntu 13.10 ====
 +
 +
Zur Installation von Tvheadend auf Ubuntu 13.10 saucy salamander benötigt man das Paket für die alte "Raring"-Version.<ref>https://tvheadend.org/boards/5/topics/9660?r=9663#message-9663</ref> Dazu erzeugtt man beispielsweise die Datei <code>/etc/apt/sources.list.d/tvheadend.list</code> mit folgendem Inhalt:
 +
 +
  deb http://apt.tvheadend.org/stable raring main
 +
 +
Außerdem importiert man noch den GPG-Schlüssel:<ref>http://wiki.ubuntuusers.de/Tvheadend</ref>
 +
 +
  curl http://apt.tvheadend.org/repo.gpg.key | sudo apt-key add -
 +
 +
 +
Evtl. muss man den User "hts", unter dem der tvheadend-Server läuft, noch der Gruppe <code>video</code> zuweisen:
 +
  adduser hts video
 +
 +
Zu Testzwecken kann man den tvheadend-Server auch im Vordergrund ausführen
 +
  sudo service tvheadend stop # Daemon anhalten 
 +
  sudo su hts # als hts-Benutzer anmelden
 +
  tvheadend
 +
 +
==== Konfiguration ====
 +
 +
Unter http://localhost:9981/
 +
* TV-Tuner auswählen
 +
* Network hinzufügen
 +
* das Network beim TV-Tuner/Adapter aktivieren
 +
* mit save Sendersuchlauf starten
 +
* Muxes auf Services spiegeln
 +
* DVB-Services auf Channels spiegeln
 +
* unter Configuration -> Timeshift dieses einschalten und ggf. einen Pfad zur Pufferspeicherung angeben
 +
* unter Configuration -> Recording etwas Vor- und Nachlauf einschalten, damit nicht die Aufnahmen den Anfang und das Ende nicht enthalten.
 +
 +
==== Zugriff ====
 +
Die WebGUI von Tvheadend erreicht man unter http://localhost:9981/ .
 +
 +
* Für XBMC braucht man noch das nötige Plugin. Das findet sich z.B. auf http://www.ubuntuupdates.org/package/xbmc/raring/main/base/xbmc-pvr-tvheadend-hts .deb-Paket herunterladen und mit <code>dpkg -i ''packagename.deb''</code> installieren.
 +
 +
* Wohl ist die leichteste Variante der Installation des Pakets kodi-pvr-hts über das [https://launchpad.net/~team-xbmc/+archive/ubuntu/ppa/+index?batch=75&memo=75&start=75 PPA von Kodi].
 +
 +
 +
In XBMC-Settings unter "Live-TV" Live-TV einschalten, ggf. noch das Tvheadend-Plugin aktivieren (Enabled).
 +
 +
Möglicherweise klappt auch der Zugriff über [[VLC]]. Dazu braucht man jedoch das [https://www.tvheadend.org/boards/4/topics/8509 VLC-HTSP-Plugin, das ggf. kompiliert werden muss].
 +
 +
==== Tvheadend im DockerContainer ====
 +
 +
Auf des von linuxserver gepflegten Tvheadend-Images lässt sich folgendermaßen ein [[Docker]]-Container "tvheadend" erzeugen:
 +
  docker create --name=tvheadend --net=bridge -v /media/extData/dh/tvheadendConfig:/config -v /media/extData/dh/videos:/recordings -e PUID=111 -e PGID=44 -p 9981:9981 -p 9982:9982 --device=/dev/dvb linuxserver/tvheadend
 +
 +
Dabei sind
 +
* /media/extData/dh/tvheadendConfig - das Konfigurationsverzeichnis auf dem Host für Tvheadend
 +
* /media/extData/dh/videos - das Verzeichnis, in dem Tvheadend die Aufnahmen speichert
 +
* 111 - die UID des Nutzers hts auf dem Host - anlegen des Benutzers und anzeigen der UID mit
 +
  adduser hts
 +
  id hts
 +
* 44 - die GID der Gruppe video auf dem Host - wird angezeigt durch
 +
  getent group video
 +
 +
Bitte darauf achten, auf dem Host die Firmware für den TV-Adapter in /lib/firmware zu legen.
 +
 +
Der Container wird folgendermaßen gestartet:
 +
  docker start tvheadend
 +
 +
Siehe
 +
* [https://hub.docker.com/r/linuxserver/tvheadend/ Tvheadend auf Alpine-Basis]
 +
* [https://github.com/dreamcat4/docker-images/blob/master/tvh/README.md Tvheadend auf Ubuntu-Basis]
 +
 +
==== TvHeadend und FritzBox 6490 ====
 +
 +
Es lohnt sich, Tvheadend zwischen Kodi und die FritzBox 6490 Cable zu schalten, auch wenn Kodi direkt auf die Streams der FritzBox zugreifen könnte. Denn Tvheadend bietet Timeshift, (automatische) Aufnahmen und Vieles mehr. Allerdings ist die Konfiguration etwas hakelig. So scheint der Parameter "pass specinv" in den Tuner-Einstellungen von TvHeadend eine wichtige Rolle beim Erkennen der Sender zu spielen.<ref>Vgl. https://tvheadend.org/issues/5231 .</ref> Bei mir hat es mal funktioniert, als ich beim Tuner (zunächst nur einen Tuner auswählen) "Pass specinv" auf "Off" und "Nächste Tuneverzögerung" auf 500 gestellt hatte.
 +
 +
Eine gute Schritt-für-Schritt-Anleitung bei der Konfiguration findet sich in der unteren Hälfte von [https://discourse.osmc.tv/t/howto-german-konfiguration-von-tvheadend-4-2-und-des-sat-ip-servers-avm-fritz-wlan-repeater-dvb-c-unter-osmc/72761 discourse.osmc.tv]. Anstatt "DVBC-2" für den dort beschriebenen FritzWlanRepeater muss man für die 4 Tuner der FritzBox Cable "DVBC-4" auswählen.
 +
 +
Siehe
 +
* https://blag.nullteilerfrei.de/2017/08/07/using-a-fritzbox-6490-as-tuner-for-tvheadend/
 +
* https://ole-hellmers.de/2017/10/tvheadend-mit-der-fritzbox-6490/
 +
* https://tvheadend.org/issues/5231
 +
 +
Wenn das nicht funktioniert, kann man die IPTV-Methode probieren, die aber nur einen der vier DVB-C-Tuner der FritzBox 6490 nutzt:
 +
 +
* https://discourse.osmc.tv/t/howto-german-konfiguration-von-tvheadend-4-2-und-des-sat-ip-servers-avm-fritz-wlan-repeater-dvb-c-unter-osmc/72761
 +
* https://discourse.osmc.tv/t/obsolete-tvheadend-4-0-setup-of-ip-tv-with-osmc-and-the-avm-fritz-wlan-repeater-dvb-c/8471
 +
 +
===== Einzelne Schritte der Konfiguration von TvHeadend mit FritzBox 6490 =====
 +
 +
Vorbild für folgende Schritte: https://discourse.osmc.tv/t/howto-german-konfiguration-von-tvheadend-4-2-und-des-sat-ip-servers-avm-fritz-wlan-repeater-dvb-c-unter-osmc/72761
 +
 +
 +
* Aufruf der Weboberfläche http://RECHNER:9981
 +
* Einrichten der Benutzeroberfläche:
 +
** Configuration -> General -> Base
 +
*** TvheadendServerName: TvhRECHNER
 +
*** Default Language: Deutsch
 +
*** Default View Level: Expert
 +
*** Save
 +
* Einrichten des Benutzers
 +
** Konfiguration -> Benutzer -> Zugriffseinträge
 +
*** Hinzufügen
 +
*** Benutzername: TVH_BENUTZER
 +
*** Ändere Parameter: Alle
 +
*** Weboberfläche: ja
 +
*** Admin: ja
 +
*** Streaming: Alle
 +
*** Video Rekorder: Alle
 +
*** Erlaubte Netzwerke: 0.0.0.0/0,::/0
 +
*** Ansichtsmodus: Experte
 +
 +
* Benutzer Passwort geben
 +
** Konfiguration -> Benutzer -> Passwörter
 +
*** Hinzufügen
 +
*** Benutzername: TVH_BENUTZER
 +
*** Passwort: PASSWORT
 +
*** Persistent Authentication: Aktiviert
 +
 +
* Den Allgemein-Benutzer löschen
 +
** Konfiguration -> Benutzer -> Zugriffseinträge
 +
*** Benutzer '*' auswählen
 +
*** Löschen
 +
*** Ja
 +
 +
* Die Fritzbox 6490 als Tuner einschalten
 +
** Konfiguration -> DVB-Inputs -> TV-Adapter -> Fritzbox 6490 Cable (Ordnersymbol)
 +
*** Tuner Konfiguration: DVBC-4  (für 4 Kabel-Tuner, die in der Fritzbox 6490 verbaut sind)
 +
*** RTP/AVP/TCP transport supported: nein
 +
*** Schneller Eingangswechsel: nein
 +
*** Full Mux Rx mode unterstützt: ja
 +
*** Speichern
 +
 +
* Die einzelnen Tuner einrichten (viermal wiederholen, wenn man alle Tuner will)
 +
** Konfiguration -> DVB-Inputs -> TV-Adapter -> Fritzbox 6490 Cable (Ordnersymbol) -> SAT>IP Tuner #X
 +
*** Aktiviert: ja
 +
*** Over-the-air-EPG: ja
 +
*** Netzwerktyp: DVB-C
 +
*** Initiale Suche: ja
 +
*** Leerlaufsuche: ja
 +
*** Nächste Tuneverzögerung: 200
 +
*** Sende vollen PLAY Befehl: ja
 +
*** Erzwinge Abbauverzögerung: nein
 +
*** Abonnementgewicht durchreichen: 1
 +
*** Pass specinv: nein
 +
*** Tuner Bind IP-Adresse: RECHNER_IP    (eine der IP-Adressen des Tvheadend-Servers; für jeden Tuner muss eine eigene IP-Adresse angegeben werden; dafür muss der Rechner mehrere IP-Adressen haben)
 +
*** Speichern
 +
*** Wenn bis hierhier alles richtig ist, dann sollte der entsprechende Tuner in '''fetter''' Schrift erscheinen
 +
 +
* Einrichten eines Netzwerks
 +
** Konfiguration -> DVB-Inputs -> Netzwerke
 +
** Hinzufügen
 +
** Typ: DVB-C
 +
*** Aktiviert: ja
 +
*** Netzwerkname: MY_NETWORK
 +
*** Vordefinierte Muxe: DEIN_EIGENER_ORT (es ist fast egal, welche vordefinierten Muxe man auswählt - es muss nur einer der Muxe existieren, denn dieser sendet eine Muxtabelle aller lokal vorhandenen Muxe)
 +
*** Netzwerksuche: Neue und geänderte Muxe
 +
*** Skip startup scan: nein
 +
*** Mux Leerlaufsuche: nein
 +
*** Service-IDs als Kanalnummern: nein
 +
*** Anlegen
 +
 +
* Verknüpfen des Netzwerks mit den Tunern (viermal wiederholen, wenn man alle Tuner will)
 +
** Konfiguration -> DVB-Inputs -> TV-Adapter -> Fritzbox 6490 Cable (Ordnersymbol) -> SAT>IP Tuner #X
 +
*** Netzwerke: MY_NETWORK
 +
*** Netzwerktyp: DVB-C
 +
*** Speichern
 +
 +
* Ein paar Minuten warten und dann nachschauen, ob die Muxe auch gefunden werden
 +
** Konfiguration -> DVB-Inputs -> Muxe
 +
*** Auf Suchergebnis klicken zum Sortieren
 +
*** Alle mit Suchergebnis "FEHLER" markieren
 +
*** Löschen
 +
*** Ja
 +
 +
* Electronic Programming Guide optimieren
 +
** Konfiguration -> Kanal / EPG -> EPG Grabber
 +
*** EPG scan time-out in seconds: 30
 +
*** Speichern
 +
 +
* Muxe und Kanäle verbinden
 +
** Konfiguration -> DVB-Inputs -> Services -> Services zuordnen -> Alle Services zuordnen
 +
*** Verschlüsselte Services einschließen: nein
 +
*** Gleiche Namen zusammenführen: nein
 +
*** Verfügbarkeit testen: ja
 +
*** Typbasierte Tags anlegen: ja
 +
*** Anbietername-Tags anlegen: ja
 +
*** Netzwerknamen-Tags anlegen: ja
 +
*** Services zuordnen
 +
*** Geduld: das dauert eine Weile
 +
 +
* Timeshift einschalten
 +
** Konfiguration -> Aufnahme -> Timeshift
 +
*** Aktiviert: ja
 +
*** Speichern
 +
 +
==== TvHeadend und Fehlersuche ====
 +
 +
sudo aptitude install w-scan
 +
w_scan -fc -c DE
 +
 +
zeigt vorhandene Muxes (auch die, die Tvheadend nicht selbst findet).<ref>Siehe https://www.naerd.de/fehlende-dvb-c-sender-in-tvheadend/</ref>
 +
 +
Unter https://helpdesk.kdgforum.de/sendb/kopfstation/M%C3%BCnchen.html findet man die Belegungen der TV-Sender im Vodafone Kabel-Netz.
 +
 +
== JSON-RPC API ==
 +
 +
Auf Kodi kann man auch mittels [http://kodi.wiki/view/JSON-RPC_API JSON-API] zugreifen. Beispiele:
 +
 +
  curl  --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Player.GetActivePlayers" }' 'http://kodibox:8080/jsonrpc'
 +
 +
  curl  --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "JSONRPC.Version" }' 'http://nuckie.fritz.box:8080/jsonrpc'
 +
 +
Steht der DLNA-Renderer zur Verfügung?
 +
  curl  --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Settings.GetSettingValue", "params": { "setting":"services.upnprenderer" } }' 'http://kodibox:8080/jsonrpc'
 +
 +
DLNA-Renderer einschalten:
 +
  curl  --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Settings.SetSettingValue", "params": { "setting":"services.upnprenderer", "value":true } }' 'http://kodibox:8080/jsonrpc'
 +
 +
Einen Überblick der vorhandenen Methoden gibt
 +
  http://kodibox:8080/jsonrpc
 +
 +
Siehe dazu
 +
* http://kodi.wiki/view/JSON-RPC_API
 +
* http://kodi.wiki/view/JSON-RPC_API/Examples
 +
* [http://forum.kodi.tv/showthread.php?tid=157996&page=3 Thread mit Beispielsaufrufen]
 +
 +
== Videos ==
 +
 +
=== Manuelles Hinzufügen von Metadaten ===
 +
 +
Wenn die Videos keine Metadaten enthalten und auch nicht mittels der in Kodi eingebauten Scraper mit Informationen versorgt werden können, kann man durch Hinterlegen einer <code>.nfo</code>-Datei Metainformationen den Videos beigeben. Die Datei trägt denselben Namen wie die Filmdatei; lediglich die Endung wird durch .nfo ersetzt.
 +
 +
Sie ist regelmäßig eine XML-Datei. Ihre nähere Beschreibung findet sich im [http://kodi.wiki/view/NFO_files/movies Kodi-Wiki].
 +
 +
== Addons ==
 +
 +
=== Addons selbst entwickeln ===
 +
 +
Siehe zu Grundlagen:
 +
* https://kodi.tv/create-an-addon
 +
* https://github.com/xbmc/generator-kodi-addon
 +
* http://forum.kodi.tv/showthread.php?tid=160975
 +
* [http://mirrors.kodi.tv/docs/python-docs/ Python-Docs] (leider hier nur ältere Version)
 +
 +
Das Addon-Modul "Kodi Plugin Routing" ermöglicht deutlich leichter lesbare Plugins für Kodi zu schreiben.
 +
 +
==== generator-kodi-addon ====
 +
Yeoman zusammen mit dem [https://github.com/xbmc/generator-kodi-addon generator-kodi-addon] erzeugt einen Rahmen für ein Kodi-Addon:
 +
<pre>
 +
cd <proj-dir>
 +
npm install  yo
 +
npm install  generator-kodi-addon
 +
./node_modules/yo/lib/cli.js kodi-addon
 +
</pre>
 +
 +
==== Kontextmenüs ====
 +
 +
Es lassen sich Addons schreiben, die speziell zusätzliche Menüpunkte zur Verfügung stellen. Diese müssen in der addon.xml einen entsprechenden Extension-Point definieren.<ref>Siehe Näheres unter http://kodi.wiki/view/Context_Item_Add-ons</ref>
 +
 +
Wenn Addons nur bei den selbst geschaffenen Einträgen Contextmenüs hinzufügen wollen, geht das auch über [http://mirrors.xbmc.org/docs/python-docs/16.x-jarvis/xbmcgui.html#ListItem xbmcgui.ListItem.addContextMenuItems(...)].
 +
 +
=== Video-Addons ===
 +
 +
==== Mediathek ====
 +
 +
===== Problem mit Debian Stretch =====
 +
Unter Debian Stretch kann es sein, dass das [https://github.com/raptor2101/Mediathek Mediathek-Modul] seit Version 0.7.3 nicht mehr funktioniert. Grund ist eine Abhängigkeit des ab dieser Version eingesetzten BeautifulSoup-Frameworks. Dieses kommt mit dem unter Debian Stretch für Python 2.7 installierten python-html5lib-Modul durcheinander. Das lässt sich durch das Entfernen von <code>python-html5lib</code> beheben:
 +
  sudo aptitude -y remove python-html5lib
 +
 +
===== Problem mit Kodi 17.0 auf Debian Stretch =====
 +
 +
Die Mediathek zeigte bei mir nach dem Update auf Kodi 17.0 keine Daten zu den Filmen an. In den Logs fand sich folgender Fehler:
 +
  Exception
 +
  ERROR: TypeError
 +
  ERROR: :
 +
  ERROR: "'NoneType' object is not callable"
 +
  ERROR:  in
 +
  ERROR: 'lxml.etree._ExceptionContext._store_raised'
 +
  ERROR:  ignored
 +
 +
Abhilfe schaffte die Ergänzung von <code>, "html.parser"</code> bei der Erzeugung einer Instanz von BeautifulSoup <small>(z.B. <code>
 +
bs = bs4.BeautifulSoup(text, "html.parser")</code> )</small> in allen Dateien des Plugins Mediathek. Die Dateien findet man durch
 +
  grep -R "BeautifulSoup" ~/.kodi/addons/plugin.video.mediathek/*
 +
Siehe dazu auch [http://forum.kodi.tv/showthread.php?tid=202308 diesen Thread im  Kodi-Forum].
 +
 +
 +
===== Mediathekview =====
 +
 +
Ähnlich wie das Desktop-Programm Mediathekview greift das gleichnamige Addon auf die gescrapten Daten des Server-Teils von [[Mediathekview]] zu. Das Addon Mediathekview scheint damit weitaus stabiler zu laufen (jedenfalls unter Kodi 17 Krypton) als die Mediatheken, die unmittelbar auf die einzelnen Sender zugreifen.
 +
 +
===== Youtube =====
 +
 +
Das Youtube-Modul scheint auch recht zuverlässig zu funktionieren.
 +
 +
=== Audio-Addons ===
 +
 +
==== Spotify ====
 +
 +
Mit einem Spotify Premium-Konto kann man Spotify auch auf Kodi benutzen. Dazu nutzt man am besten das Addon [https://github.com/marcelveldt/plugin.audio.spotify Spotify von Marcelveldt].
 +
 +
=== Fernsteuerungen für Kodi ===
 +
Siehe
 +
* https://www.nightprogrammer.org/reviews/beste-fernbedienung-raspberry-kodi/
 +
 +
=== Reaktion auf Kodi-Events ===
 +
 +
Siehe
 +
* https://kodi.wiki/view/Add-on:Kodi_Callbacks
 +
------
 +
<references/>
 +
[[Category:Desktop-Software]]
 +
[[Category:Linux]]
 +
[[Category:Plattformübergreifende Software]]
 +
 +
== Tests ==
 +
 +
* Oberfläche: Korrekte Sprache?
 +
* Tastatur: korrektes Layout?
 +
* Ton?
 +
** Oberfläche?
 +
** Film?
 +
* TV
 +
** Kanäle wechseln
 +
** Aufnehmen
 +
** Aufnahmen sichtbar
 +
* Addons
 +
** öffentlich-rechtliche Mediatheken
 +
*** einzeln
 +
**** ARD-Mediathek
 +
**** BR-Mediathek
 +
**** KIKA-Mediathek
 +
**** ZDF-Mediathek
 +
**** ZDF-tivi-Mediathek
 +
*** Mediathekview - enthält alle Mediatheken
 +
** Youtube
 +
** MPD
 +
* Upnp
 +
** Werden Medien im Netz gefunden?
 +
** Kann z.B. mittels [[BubbleUpnp]] Bilder/Filme auf dem HTPC vom Smartphone abgespielt werden?
 +
* Avahi - wird Kodi z.B. von [[Kore]] gefunden?
 +
* Fernbedienung
 +
** Laut/Leise
 +
** OK
 +
** Zurück
 +
** Info/Kontextmenü
 +
** Aufnahmetaste
 +
 +
== Fehlersuche ==
 +
=== CPU-Last im Leerlauf ===
 +
 +
Es gibt verschiedene Tipps für den Fall, dass Kodi im Leerlauf zu hohe CPU-Last auslöst:
 +
 +
* Umstellung der Oberfläche auf "Estuary"
 +
* Einstellung algorithmdirtyregions auf 3<ref>siehe https://discourse.coreelec.org/t/idling-kodi-on-ce-8-90-3-consumes-48-1x-cpu-resources/652/9</ref> in (neuer) Datei <code>.kodi/userdata/advancedsettings.xml</code> einstellen:
 +
 +
<pre>
 +
<advancedsettings>
 +
  <gui>
 +
    <algorithmdirtyregions>3</algorithmdirtyregions>
 +
  </gui>
 +
</advancedsettings>
 +
</pre>
 +
== Naheliegendes ==
 +
 +
Siehe auch
 +
* [[Linux#TV]]
 +
* [[DVB-C]]
 +
* [[Linux-Tipps#Infrarot-Schnittstelle]]
 +
* [[Video]]
 
------
 
------
 
<references/>
 
<references/>

Aktuelle Version vom 28. Januar 2024, 19:59 Uhr

XBMC (umbenannt in "Kodi") ist eine OpenSource-Software, die in etwa dem Funktionsumfang des Windows MediaCenters entspricht, d.h. im Wesentlichen Filme und Musik abspielen und aufnehmen und TV auf dem jeweiligen Gerät ermöglicht.

Mit TvHeadEnd lässt sich XBMC auch zu einem Videorecorder aufmöbeln. Damit ist auch das automatische Aufwachen zum Aufnehmen einer programmierten Sendung möglich. Siehe https://tvheadend.org/projects/tvheadend/wiki/Wakeup . Möglicherweise hilft auch dieser Thread zum Wakeup und Shutdown von XBMC,

OpenELEC ist eine Linux-Distribution, die speziell für die Unterstützung von XBMC entwickelt wurde.


Installation aus den Quellen

Installation von Kodi 17.4 Krypton auf Debian 9 Stretch

Mit dieser Anleitung kann Kodi 17.4 Krypton einschließlich des TvHeadend-Addon auf Debian 9 Stretch kompiliert und auf einem Zielsystem installiert werden.

Diese Anleitung beruht auf derjenigen auf penzin.net für Kodi 17.3. Siehe auch

Phase 1 Kompilieren auf dem Quellsystem

Installiere notwendige Packages:

 sudo aptitude install git \
       automake autopoint bison build-essential ccache cmake curl cvs \
       default-jre fp-compiler gawk gdc gettext gperf libasound2-dev \
       libass-dev libavcodec-dev libavfilter-dev libavformat-dev \
       libavutil-dev libbluetooth-dev libboost-dev libboost-thread-dev \
       libbz2-dev libcap-dev libcdio-dev libcrystalhd-dev libcrystalhd3 \
       libcurl3 libcurl4-gnutls-dev libcwiid-dev libcwiid1 libdbus-1-dev \
       libenca-dev libflac-dev libfontconfig1-dev libfreetype6-dev \
       libfribidi-dev libglew-dev libiso9660-dev \
       libjpeg-dev libltdl-dev liblzo2-dev libmad0-dev libmicrohttpd-dev \
       libmodplug-dev libmp3lame-dev libmpeg2-4-dev libmpeg3-dev \
       libnfs-dev libogg-dev libpcre3-dev libplist-dev \
       libpng-dev libpostproc-dev libpulse-dev libsamplerate0-dev \
       libsdl1.2-dev libsdl-gfx1.2-dev libsdl-image1.2-dev \
       libsdl-mixer1.2-dev libsmbclient-dev libsqlite3-dev libssh-dev \
       libswscale-dev libtiff5-dev libtinyxml-dev libtool \
       libudev-dev libusb-dev libva-dev libva-egl1 libva-tpi1 libvdpau-dev \
       libvorbisenc2 libxml2-dev libxmu-dev libxrandr-dev libxrender-dev \
       libxslt1-dev libxt-dev libyajl-dev mesa-utils nasm pmount \
       python-dev python-imaging python-sqlite swig unzip yasm zip \
       zlib1g-dev libtag-extras-dev libgnutls28-dev \
       uuid-dev libgif-dev libsdl2-dev liblcms2-dev xz-utils \
       libssl1.0-dev default-libmysqlclient-dev libcrossguid-dev \
       libavahi-client-dev libbluray-dev libp8-platform-dev libcec-dev \
       joe bash-completion


 cd # Wechsle ins Home-Verzeichnis
 mkdir kodi17.4
 cd kodi17.4
 git clone -b Krypton https://github.com/xbmc/xbmc.git
 git checkout 17.4-Krypton  # Das ist der Tag des Releases, kein Branch
 git clone https://gitlab.com/vadimp/kodi-mdnsresponder
 git clone https://github.com/juhovh/shairplay.git
 # only necessary for TvHeadend-Addon pvr.hts
 git clone -b Krypton https://github.com/kodi-pvr/pvr.hts.git

Erzeuge Datei ~/kodi17.4/kodi-build-vars.sh mit folgendem Inhalt:

export KODI_PFX='/opt/kodi17.4'
export C_INCLUDE_PATH="${C_INCLUDE_PATH}:${KODI_PFX}/include"
export CPLUS_INCLUDE_PATH="${CPLUS_INCLUDE_PATH}:${KODI_PFX}/include"
export LIBRARY_PATH="${LIBRARY_PATH}:${KODI_PFX}/lib"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${KODI_PFX}/lib"
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${KODI_PFX}/lib/pkgconfig"
export PATH="${PATH}:${KODI_PFX}/bin"
export MAKEFLAGS="-j1"

Lese die Umgebungsvariablen ein:

 source ~/kodi17.4/kodi-build-vars.sh

Shairplay und mDNSResponder kompilieren und installieren:

 cd "~/kodi17.4/shairplay"
 ./autogen.sh
 ./configure "--prefix=${KODI_PFX}"
 make
 sudo make install
 cd "../kodi-mdnsresponder"
 make
 sudo sh -c "PREFIX=\"${KODI_PFX}\" make install"

Dynamische Bibliotheken von shairplay und mDNSResponder zur Kompilation von Kodi bereitstellen:

 sudo ldconfig "${KODI_PFX}/lib"

Kompilieren von Kodi

 cd "~/kodi17.4/xbmc"
 ./bootstrap
 ./configure "--prefix=${KODI_PFX}" --enable-mid
 make

Kompilieren des TvHeadend-Addons pvr.hts:

 cd "~/kodi17.4/pvr.hts"
 mkdir build
 cd build
 cmake -DADDONS_TO_BUILD=pvr.hts -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/project/cmake/addons
 make

oder

 cd "~/kodi17.4/xbmc"
 make -C tools/depends/target/binary-addons PREFIX=${KODI_PFX} ADDONS="pvr.hts adsp.basic audiodecoder.modplug audiodecoder.nosefart audiodecoder.sidplay audiodecoder.snesapu audiodecoder.stsound audiodecoder.timidity audiodecoder.vgmstream audioencoder.flac audioencoder.lame audioencoder.vorbis audioencoder.wav inputstream.mpd pvr.demo visualization.fishbmc visualization.goom visualization.projectm  visualization.shadertoy visualization.spectrum visualization.vsxu visualization.waveform"


Installieren von Kodi samt Addon:

 cd "~/kodi17.4/xbmc"
 sudo make install

Zusammenfassen der Binärinstallation in ein TAR-Archiv:

 cd ~/kodi17.4
 sudo tar -C / -cJf "kodi-17.4-$(uname -m).tar.xz" "${KODI_PFX:1}/"{bin,lib,share}

Phase 2 Installieren auf dem Zielsystem

Notwendige Pakete auf dem Zielsystem
 sudo aptitude install \
       dbus libasn1-8-heimdal libasound2 libass5 libasyncns0 \
       libattr1 libavahi-client3 libavahi-common3 libbluetooth3 libbsd0 \
       libbz2-1.0 libcap2 libcdio13 libcomerr2 libcrystalhd3 \
       libcurl3-gnutls libdbus-1-3 libdrm2 libexpat1 libffi6 libflac8 \
       libfreetype6 libfribidi0 libgcrypt20 libgl1-mesa-glx \
       libglapi-mesa libglew2.0 libglu1-mesa libgmp10  libgnutls-dane0 \
       libgpg-error0 libgssapi3-heimdal libgssapi-krb5-2 \
       libhcrypto4-heimdal libheimbase1-heimdal \
       libheimntlm0-heimdal libhogweed4 libhx509-5-heimdal libice6 \
       libjbig0 libjpeg62-turbo libjson-c3 libk5crypto3 \
       libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0 \
       libldap-2.4-2 libldb1 liblzma5 liblzo2-2 libmad0 \
       libmicrohttpd12 libnettle6 libntdb1 libogg0 libp11-kit0 libpcre3 \
       libpcrecpp0v5 libpng16-16 libpulse0 libpython2.7 \
       libroken18-heimdal libsasl2-2 libsm6 libsmbclient libsndfile1 \
       libsqlite3-0 libssh-4 libssl1.1 libsystemd0 libtag1v5-vanilla \
       libtalloc2 libtasn1-6 libtdb1 libtevent0 libtiff5 libtinyxml2.6.2v5 \
       libudev1 libuuid1 libva1 libva-x11-1 libvorbis0a libvorbisenc2 \
       libwbclient0 libwind0-heimdal libwrap0 libx11-6 libx11-xcb1 libxau6 \
       libxcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 \
       libxcb-render0 libxcb-shape0 libxcb-sync1 libxcb-xfixes0 \
       libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxml2 libxmu6 \
       libxrandr2 libxrender1 libxshmfence1 libxslt1.1 libxt6 libxtst6 \
       libxxf86vm1 libyajl2 policykit-1 samba-libs sudo x11-xserver-utils \
       xinit zlib1g unzip libsdl2-2.0-0 liblcms2-2 xz-utils upower \
       libmariadbclient18 libcrossguid0 \
       libavahi-client3 libbluray1 libp8-platform2 libcec4 \
       libvdpau1 libva-drm1 pulseaudio \
       pavucontrol sudo joe
Zugriffsrechte für X11

Auch non-root-Benutzer sollen Rechte haben, auf den XServer zuzugreifen:

 dpkg-reconfigure xserver-xorg-legacy
Auspacken auf dem Zielsystem
 sudo tar -C / -xvJf tmp/kodi-17.4-pvr_hts_only-x86_64.tar.xz 

Dem System die dynamischen Bibliotheken von Kodi mitteilen (steht bei penzin.net, bin nicht sicher, ob es notwendig ist):

 cat <<EOF | sudo tee /etc/ld.so.conf.d/kodi.conf
 /opt/kodi17.4/lib
 EOF
 sudo ldconfig
Systemd-Service für Kodi

Dann braucht man zum automatischen Starten von Kodi noch einen Systemd-Service. Bitte beim kodi.service-Script auf den korrekten Pfad in /opt/kodi/bin achten. Ein Beispiel für ein solches Skript /etc/systemd/system/kodi.service:

[Unit]
Description = Kodi Media Center

# if you don't need the MySQL DB backend, this should be sufficient
#After = systemd-user-sessions.service network.target sound.target

# if you need the MySQL DB backend, use this block instead of the previous
After = systemd-user-sessions.service network.target sound.target mysql.service
Wants = mysql.service

[Service]
User = kodi
Group = kodi
Type = simple
#PAMName = login # you might want to try this one, did not work on all systems
ExecStart = /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session /opt/kodi17.4/bin/kodi-standalone -- :0 -nolisten tcp vt7
Restart = always
RestartSec = 20

[Install]
WantedBy = multi-user.target


Nicht zu vergessen sind auch die für kodi erforderlichen Gruppen:

 sudo adduser kodi
 sudo usermod -a -G cdrom,audio,video,plugdev,users,dialout,dip,input,netdev kodi
Infrarot-Fernbedienung

Um diese einzurichten siehe bei Linux-Tipps#Infrarot-Schnittstelle.

Installation von Kodi 17.3 Krypton auf Debian 9 Stretch

Auch auf einem Debian lässt sich die aktuelle Version von Kodi kompilieren und installieren:

Auf der Zielmaschine musste ich noch ConsoleKit installieren:

 sudo aptitude install consolekit 

Statt des bei Penzin beschriebenen Autostarts kann man es auch mit Systemd-Service versuchen. Bitte beim kodi.service-Script auf den korrekten Pfad in /opt/kodi/bin achten. Nicht zu vergessen sind auch die für kodi erforderlichen Gruppen:

 sudo usermod -a -G cdrom,audio,video,plugdev,users,dialout,dip,input,netdev kodi

Um das PVR-Plugin für TvHeadend zu installieren kann man sich des vorhandenen DEB-Packages bedienen:

 #!/bin/bash
 set -e
 set -x
 sudo aptitude --download-only install kodi-pvr-hts
 tmp_dir=/tmp/kodi-pvr-hts
 kodi_home=/opt/kodi
 rm -Rf $tmp_dir # clean up temporary directory
 mkdir -p $tmp_dir
 cd $tmp_dir
 ar xv /var/cache/apt/archives/kodi-pvr-hts*.deb
 xz --decompress -v data.tar.xz
 tar --extract -vf data.tar
 sudo cp -avRi usr/share/kodi/addons/pvr.hts $kodi_home/share/kodi/addons/
 sudo cp -avRi usr/lib/x86_64-linux-gnu/kodi/addons/pvr.hts $kodi_home/lib/kodi/
 echo Finished!

Installation von Kodi 17.1 Krypton vom Debian 9 Stretch Repository

Bei einer vollständigen Installation von Debian 9 Stretch mit GUI kann man Kodi ganz simpel installieren:

 sudo aptitude install kodi

Hat man jedoch ein Minimalsystem installiert, werden nicht alle Abhängigkeiten mitinstalliert. Zu installieren ist u.a.

 sudo aptitude install xinit dbus-launch

Auch den Nichtkonsolenbenutzer muss man das Starten des XServers erlauben:

 sudo -i
 echo -e "allowed_users=anybody\nneeds_root_rights=yes" >> /etc/X11/Xwrapper.config

Gestartet wird Kodi dann von der Kommandozeile so:

 /usr/bin/xinit /usr/bin/dbus-launch --exit-with-session kodi-standalone

.

Installation von Kodi 18.4 auf Ubuntu 18.04 Buster LTS

Nach einer minimalen Netinst-Installation von Ubuntu Server (keine graphische Oberfläche, nur Konsole) benötigt man aus dem XBMC-PPA das Paket kodi-standalone und zusätzlich einen vollständigen X-Server, den man durch Installation der Pakete xinit, xinput und xserver-xorg erhält. Daneben sollten auch folgende Pakete installiert sein:

  • curl
  • wget
  • sudo
  • pulseaudio
  • paprefs
  • pavucontrol
  • lightdm
  • lirc (optional für Infrarot-Fernbedienung)

Der Benutzer muss den Gruppen audio, video und plugdev angehören.

Das Starten erfolgt aus dem Terminal mit

 startx kodi-standalone


Siehe

und für den automatischen Start:

Bei mir war der Autostart auf Basis von systemd wegen des Zusammenspiels mit Pulseaudio zu kompliziert. Daher habe ich ein Autostart mit lightdm gemacht. Siehe die ArchLinux-Anleitung dazu.

Trotz Installation der entsprechenden kodi-pvr-XXX-TV-Addon-Packages via aptitude wurde in meinem Kodi die PVR-Addons nicht angezeigt. Daher habe ich in den Einstellungen den Webzugriff erlaubt. Über localhost:8080->Einstellungen->Addons wurden die Addons dann angezeigt und konnten aktiviert werden. Dann wurden sie auch in der normalen Kodi-Oberfläche angezeigt.

Kodi und Audio

Kodi benützt PulseAudio, wenn es vorhanden ist, ansonsten das ALSA-Sound-System. In den Einstellungen => System Einstellungen => Audio findet man unter Audiogeräte, worauf Kodi den Ton ausgibt.

Um MPD und Kodi (als Standalone-Prozess - Probleme gibt es keine, wenn Kodi auf dem normalen GUI-Desktop läuft) gleichzeitig auf einem Computer mit einem PulseAudio-Server einzusetzen, kann man folgendermaßen vorgehen:

  1. Der PulseAudio-Server muss seine Dienste im Netzwerk (ggf. eingeschränkt auf localhost) anbieten (siehe Audio#Pulseaudio als Pulseaudio-Server im Heimnetz nutzen).
  2. Die lokalen Clients müssen diesen Server als default-server akzeptieren (siehe Audio#Pulseaudio auf einem Rechner von verschiedenen Usern gemeinsam nutzen).
  3. PulseAudio muss vor Kodi gestartet werden. Wenn Kodi mit einem systemd-Service kodi.service gestartet wird, kann man eine Datei /etc/systemd/system/pulseaudio.service anlegen mit folgendem Inhalt:
[Unit]
Description = Pulse Audio Server

Before = kodi.service sound.target

[Service]

User = kodi
Group = kodi
Type = simple
# Das habe ich auf https://wiki.debianforum.de/Audiokonfiguration gefunden:
BusName=org.pulseaudio.Server 
ExecStart=/usr/bin/pulseaudio 
Restart=always 
RestartSec = 20

[Install]
WantedBy = multi-user.target

Siehe zum Zusammenspiel mit PulseAudio:

PVR

Für Live-TV und das Aufnehmen von Videos benötigt XBMC ein Backend. Ein solches ist Tvheadend.

Tvheadend

Vorbereitung: Firmware für TV-Stick/-Karte

Häufig benötigen TV-Sticks oder -Karten unter Linux eine spezielle Firmware, die speziell installiert werden muss.

Beispiel TechnoTrend TT-TVStick CT2-4400:

Hier muss man die Dateien dvb-demod-si2168-b40-1.fw und dvb-tuner-si2158-a20-01.fw vom OpenElec-Server herunterladen und ins Verzeichnis /lib/firmware verschieben.[1]

Installation in Ubuntu

Siehe die Installationsanleitung auf tvheadend.org. Für Ubuntu 15.10 Wily muss man auf die "Release"-Version von 15.04 "vivid" zurückgreifen (Stand: Ende 2015).

Die Installationsanleitung auf ubuntuusers.de ist dagegen veraltet (Stand: 4.8.2015).

Installation in Ubuntu 13.10

Zur Installation von Tvheadend auf Ubuntu 13.10 saucy salamander benötigt man das Paket für die alte "Raring"-Version.[2] Dazu erzeugtt man beispielsweise die Datei /etc/apt/sources.list.d/tvheadend.list mit folgendem Inhalt:

 deb http://apt.tvheadend.org/stable raring main

Außerdem importiert man noch den GPG-Schlüssel:[3]

 curl http://apt.tvheadend.org/repo.gpg.key | sudo apt-key add -


Evtl. muss man den User "hts", unter dem der tvheadend-Server läuft, noch der Gruppe video zuweisen:

 adduser hts video

Zu Testzwecken kann man den tvheadend-Server auch im Vordergrund ausführen

 sudo service tvheadend stop # Daemon anhalten  
 sudo su hts # als hts-Benutzer anmelden
 tvheadend

Konfiguration

Unter http://localhost:9981/

  • TV-Tuner auswählen
  • Network hinzufügen
  • das Network beim TV-Tuner/Adapter aktivieren
  • mit save Sendersuchlauf starten
  • Muxes auf Services spiegeln
  • DVB-Services auf Channels spiegeln
  • unter Configuration -> Timeshift dieses einschalten und ggf. einen Pfad zur Pufferspeicherung angeben
  • unter Configuration -> Recording etwas Vor- und Nachlauf einschalten, damit nicht die Aufnahmen den Anfang und das Ende nicht enthalten.

Zugriff

Die WebGUI von Tvheadend erreicht man unter http://localhost:9981/ .

  • Wohl ist die leichteste Variante der Installation des Pakets kodi-pvr-hts über das PPA von Kodi.


In XBMC-Settings unter "Live-TV" Live-TV einschalten, ggf. noch das Tvheadend-Plugin aktivieren (Enabled).

Möglicherweise klappt auch der Zugriff über VLC. Dazu braucht man jedoch das VLC-HTSP-Plugin, das ggf. kompiliert werden muss.

Tvheadend im DockerContainer

Auf des von linuxserver gepflegten Tvheadend-Images lässt sich folgendermaßen ein Docker-Container "tvheadend" erzeugen:

 docker create --name=tvheadend --net=bridge -v /media/extData/dh/tvheadendConfig:/config -v /media/extData/dh/videos:/recordings -e PUID=111 -e PGID=44 -p 9981:9981 -p 9982:9982 --device=/dev/dvb linuxserver/tvheadend

Dabei sind

  • /media/extData/dh/tvheadendConfig - das Konfigurationsverzeichnis auf dem Host für Tvheadend
  • /media/extData/dh/videos - das Verzeichnis, in dem Tvheadend die Aufnahmen speichert
  • 111 - die UID des Nutzers hts auf dem Host - anlegen des Benutzers und anzeigen der UID mit
 adduser hts
 id hts
  • 44 - die GID der Gruppe video auf dem Host - wird angezeigt durch
 getent group video

Bitte darauf achten, auf dem Host die Firmware für den TV-Adapter in /lib/firmware zu legen.

Der Container wird folgendermaßen gestartet:

 docker start tvheadend

Siehe

TvHeadend und FritzBox 6490

Es lohnt sich, Tvheadend zwischen Kodi und die FritzBox 6490 Cable zu schalten, auch wenn Kodi direkt auf die Streams der FritzBox zugreifen könnte. Denn Tvheadend bietet Timeshift, (automatische) Aufnahmen und Vieles mehr. Allerdings ist die Konfiguration etwas hakelig. So scheint der Parameter "pass specinv" in den Tuner-Einstellungen von TvHeadend eine wichtige Rolle beim Erkennen der Sender zu spielen.[4] Bei mir hat es mal funktioniert, als ich beim Tuner (zunächst nur einen Tuner auswählen) "Pass specinv" auf "Off" und "Nächste Tuneverzögerung" auf 500 gestellt hatte.

Eine gute Schritt-für-Schritt-Anleitung bei der Konfiguration findet sich in der unteren Hälfte von discourse.osmc.tv. Anstatt "DVBC-2" für den dort beschriebenen FritzWlanRepeater muss man für die 4 Tuner der FritzBox Cable "DVBC-4" auswählen.

Siehe

Wenn das nicht funktioniert, kann man die IPTV-Methode probieren, die aber nur einen der vier DVB-C-Tuner der FritzBox 6490 nutzt:

Einzelne Schritte der Konfiguration von TvHeadend mit FritzBox 6490

Vorbild für folgende Schritte: https://discourse.osmc.tv/t/howto-german-konfiguration-von-tvheadend-4-2-und-des-sat-ip-servers-avm-fritz-wlan-repeater-dvb-c-unter-osmc/72761


  • Aufruf der Weboberfläche http://RECHNER:9981
  • Einrichten der Benutzeroberfläche:
    • Configuration -> General -> Base
      • TvheadendServerName: TvhRECHNER
      • Default Language: Deutsch
      • Default View Level: Expert
      • Save
  • Einrichten des Benutzers
    • Konfiguration -> Benutzer -> Zugriffseinträge
      • Hinzufügen
      • Benutzername: TVH_BENUTZER
      • Ändere Parameter: Alle
      • Weboberfläche: ja
      • Admin: ja
      • Streaming: Alle
      • Video Rekorder: Alle
      • Erlaubte Netzwerke: 0.0.0.0/0,::/0
      • Ansichtsmodus: Experte
  • Benutzer Passwort geben
    • Konfiguration -> Benutzer -> Passwörter
      • Hinzufügen
      • Benutzername: TVH_BENUTZER
      • Passwort: PASSWORT
      • Persistent Authentication: Aktiviert
  • Den Allgemein-Benutzer löschen
    • Konfiguration -> Benutzer -> Zugriffseinträge
      • Benutzer '*' auswählen
      • Löschen
      • Ja
  • Die Fritzbox 6490 als Tuner einschalten
    • Konfiguration -> DVB-Inputs -> TV-Adapter -> Fritzbox 6490 Cable (Ordnersymbol)
      • Tuner Konfiguration: DVBC-4 (für 4 Kabel-Tuner, die in der Fritzbox 6490 verbaut sind)
      • RTP/AVP/TCP transport supported: nein
      • Schneller Eingangswechsel: nein
      • Full Mux Rx mode unterstützt: ja
      • Speichern
  • Die einzelnen Tuner einrichten (viermal wiederholen, wenn man alle Tuner will)
    • Konfiguration -> DVB-Inputs -> TV-Adapter -> Fritzbox 6490 Cable (Ordnersymbol) -> SAT>IP Tuner #X
      • Aktiviert: ja
      • Over-the-air-EPG: ja
      • Netzwerktyp: DVB-C
      • Initiale Suche: ja
      • Leerlaufsuche: ja
      • Nächste Tuneverzögerung: 200
      • Sende vollen PLAY Befehl: ja
      • Erzwinge Abbauverzögerung: nein
      • Abonnementgewicht durchreichen: 1
      • Pass specinv: nein
      • Tuner Bind IP-Adresse: RECHNER_IP (eine der IP-Adressen des Tvheadend-Servers; für jeden Tuner muss eine eigene IP-Adresse angegeben werden; dafür muss der Rechner mehrere IP-Adressen haben)
      • Speichern
      • Wenn bis hierhier alles richtig ist, dann sollte der entsprechende Tuner in fetter Schrift erscheinen
  • Einrichten eines Netzwerks
    • Konfiguration -> DVB-Inputs -> Netzwerke
    • Hinzufügen
    • Typ: DVB-C
      • Aktiviert: ja
      • Netzwerkname: MY_NETWORK
      • Vordefinierte Muxe: DEIN_EIGENER_ORT (es ist fast egal, welche vordefinierten Muxe man auswählt - es muss nur einer der Muxe existieren, denn dieser sendet eine Muxtabelle aller lokal vorhandenen Muxe)
      • Netzwerksuche: Neue und geänderte Muxe
      • Skip startup scan: nein
      • Mux Leerlaufsuche: nein
      • Service-IDs als Kanalnummern: nein
      • Anlegen
  • Verknüpfen des Netzwerks mit den Tunern (viermal wiederholen, wenn man alle Tuner will)
    • Konfiguration -> DVB-Inputs -> TV-Adapter -> Fritzbox 6490 Cable (Ordnersymbol) -> SAT>IP Tuner #X
      • Netzwerke: MY_NETWORK
      • Netzwerktyp: DVB-C
      • Speichern
  • Ein paar Minuten warten und dann nachschauen, ob die Muxe auch gefunden werden
    • Konfiguration -> DVB-Inputs -> Muxe
      • Auf Suchergebnis klicken zum Sortieren
      • Alle mit Suchergebnis "FEHLER" markieren
      • Löschen
      • Ja
  • Electronic Programming Guide optimieren
    • Konfiguration -> Kanal / EPG -> EPG Grabber
      • EPG scan time-out in seconds: 30
      • Speichern
  • Muxe und Kanäle verbinden
    • Konfiguration -> DVB-Inputs -> Services -> Services zuordnen -> Alle Services zuordnen
      • Verschlüsselte Services einschließen: nein
      • Gleiche Namen zusammenführen: nein
      • Verfügbarkeit testen: ja
      • Typbasierte Tags anlegen: ja
      • Anbietername-Tags anlegen: ja
      • Netzwerknamen-Tags anlegen: ja
      • Services zuordnen
      • Geduld: das dauert eine Weile
  • Timeshift einschalten
    • Konfiguration -> Aufnahme -> Timeshift
      • Aktiviert: ja
      • Speichern

TvHeadend und Fehlersuche

sudo aptitude install w-scan
w_scan -fc -c DE 

zeigt vorhandene Muxes (auch die, die Tvheadend nicht selbst findet).[5]

Unter https://helpdesk.kdgforum.de/sendb/kopfstation/M%C3%BCnchen.html findet man die Belegungen der TV-Sender im Vodafone Kabel-Netz.

JSON-RPC API

Auf Kodi kann man auch mittels JSON-API zugreifen. Beispiele:

 curl  --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Player.GetActivePlayers" }' 'http://kodibox:8080/jsonrpc'
 curl  --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "JSONRPC.Version" }' 'http://nuckie.fritz.box:8080/jsonrpc'

Steht der DLNA-Renderer zur Verfügung?

 curl  --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Settings.GetSettingValue", "params": { "setting":"services.upnprenderer" } }' 'http://kodibox:8080/jsonrpc'

DLNA-Renderer einschalten:

 curl  --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Settings.SetSettingValue", "params": { "setting":"services.upnprenderer", "value":true } }' 'http://kodibox:8080/jsonrpc'

Einen Überblick der vorhandenen Methoden gibt

 http://kodibox:8080/jsonrpc

Siehe dazu

Videos

Manuelles Hinzufügen von Metadaten

Wenn die Videos keine Metadaten enthalten und auch nicht mittels der in Kodi eingebauten Scraper mit Informationen versorgt werden können, kann man durch Hinterlegen einer .nfo-Datei Metainformationen den Videos beigeben. Die Datei trägt denselben Namen wie die Filmdatei; lediglich die Endung wird durch .nfo ersetzt.

Sie ist regelmäßig eine XML-Datei. Ihre nähere Beschreibung findet sich im Kodi-Wiki.

Addons

Addons selbst entwickeln

Siehe zu Grundlagen:

Das Addon-Modul "Kodi Plugin Routing" ermöglicht deutlich leichter lesbare Plugins für Kodi zu schreiben.

generator-kodi-addon

Yeoman zusammen mit dem generator-kodi-addon erzeugt einen Rahmen für ein Kodi-Addon:

cd <proj-dir>
npm install  yo
npm install  generator-kodi-addon
./node_modules/yo/lib/cli.js kodi-addon

Kontextmenüs

Es lassen sich Addons schreiben, die speziell zusätzliche Menüpunkte zur Verfügung stellen. Diese müssen in der addon.xml einen entsprechenden Extension-Point definieren.[6]

Wenn Addons nur bei den selbst geschaffenen Einträgen Contextmenüs hinzufügen wollen, geht das auch über xbmcgui.ListItem.addContextMenuItems(...).

Video-Addons

Mediathek

Problem mit Debian Stretch

Unter Debian Stretch kann es sein, dass das Mediathek-Modul seit Version 0.7.3 nicht mehr funktioniert. Grund ist eine Abhängigkeit des ab dieser Version eingesetzten BeautifulSoup-Frameworks. Dieses kommt mit dem unter Debian Stretch für Python 2.7 installierten python-html5lib-Modul durcheinander. Das lässt sich durch das Entfernen von python-html5lib beheben:

 sudo aptitude -y remove python-html5lib
Problem mit Kodi 17.0 auf Debian Stretch

Die Mediathek zeigte bei mir nach dem Update auf Kodi 17.0 keine Daten zu den Filmen an. In den Logs fand sich folgender Fehler:

  Exception
  ERROR: TypeError
  ERROR: :
  ERROR: "'NoneType' object is not callable"
  ERROR:  in
  ERROR: 'lxml.etree._ExceptionContext._store_raised'
  ERROR:  ignored

Abhilfe schaffte die Ergänzung von , "html.parser" bei der Erzeugung einer Instanz von BeautifulSoup (z.B. bs = bs4.BeautifulSoup(text, "html.parser") ) in allen Dateien des Plugins Mediathek. Die Dateien findet man durch

 grep -R "BeautifulSoup" ~/.kodi/addons/plugin.video.mediathek/*

Siehe dazu auch diesen Thread im Kodi-Forum.


Mediathekview

Ähnlich wie das Desktop-Programm Mediathekview greift das gleichnamige Addon auf die gescrapten Daten des Server-Teils von Mediathekview zu. Das Addon Mediathekview scheint damit weitaus stabiler zu laufen (jedenfalls unter Kodi 17 Krypton) als die Mediatheken, die unmittelbar auf die einzelnen Sender zugreifen.

Youtube

Das Youtube-Modul scheint auch recht zuverlässig zu funktionieren.

Audio-Addons

Spotify

Mit einem Spotify Premium-Konto kann man Spotify auch auf Kodi benutzen. Dazu nutzt man am besten das Addon Spotify von Marcelveldt.

Fernsteuerungen für Kodi

Siehe

Reaktion auf Kodi-Events

Siehe


Tests

  • Oberfläche: Korrekte Sprache?
  • Tastatur: korrektes Layout?
  • Ton?
    • Oberfläche?
    • Film?
  • TV
    • Kanäle wechseln
    • Aufnehmen
    • Aufnahmen sichtbar
  • Addons
    • öffentlich-rechtliche Mediatheken
      • einzeln
        • ARD-Mediathek
        • BR-Mediathek
        • KIKA-Mediathek
        • ZDF-Mediathek
        • ZDF-tivi-Mediathek
      • Mediathekview - enthält alle Mediatheken
    • Youtube
    • MPD
  • Upnp
    • Werden Medien im Netz gefunden?
    • Kann z.B. mittels BubbleUpnp Bilder/Filme auf dem HTPC vom Smartphone abgespielt werden?
  • Avahi - wird Kodi z.B. von Kore gefunden?
  • Fernbedienung
    • Laut/Leise
    • OK
    • Zurück
    • Info/Kontextmenü
    • Aufnahmetaste

Fehlersuche

CPU-Last im Leerlauf

Es gibt verschiedene Tipps für den Fall, dass Kodi im Leerlauf zu hohe CPU-Last auslöst:

  • Umstellung der Oberfläche auf "Estuary"
  • Einstellung algorithmdirtyregions auf 3[1] in (neuer) Datei .kodi/userdata/advancedsettings.xml einstellen:
<advancedsettings>
  <gui>
    <algorithmdirtyregions>3</algorithmdirtyregions>
  </gui>
</advancedsettings>

Naheliegendes

Siehe auch