Megállítható, visszatekerhető DIGI TV

Magyarországon a DIGI kiemelkedő minőségű internet szolgáltatást nyújt, így én is ezt használom, de az ehhez tartozó tv szolgáltatás már messze nem ennyire kompromisszum mentes: A tv adás DVB-C technológiával koax kábelen végződik. Ezt közvetlenül a TV-re kötni egy IPTV megoldáshoz képest nagyon sok kompromisszumot követel, ezért ehelyett a saját IP alapú TV kialakítását választottam tvheadend server + openelec kliensek felállásban.

  • A meglévő ethernet hálózat használató a TV adáshoz
  • A timeshift funkcióval “megállítható, visszatekerhető” az élő adás
  • A felvételekhez nem kell a tv és lejátszhatóak bármelyik eszközön
  • Az élő adás nem csak a tv készüléken, hanem számítógépen, projektoron is nézhető.

Szervernek és kliensnek egyaránt Raspberry Pi eszközöket használok, DVB-C tunerként 2 db MyGica T230 dolgozik.

Tvheadend server

Telepítés

A tvheadend szervert Raspbianra érdemes telepíteni. A legfrissebb imagek letötlhetőek a rasperry pi foundation oldaláról ezeket simán ki lehet írni egy megfelelő SD kártyára. Legalább 16GB-os és legalább class 10 sebességű kártyát érdemes használni.

unzip 2016-05-27-raspbian-jessie.zip
dd if=2016-05-27-raspbian-jessie.img of=/dev/mmcblk0

A raspbian hivatalos tárolójában nem található meg a tvheadend, ezért külső tárolót kell használni. A hivatalos tároló armhf-re sajnos gyakran elérhetetlen vagy elavult, ezért egy nem hivatalos repository-t is használok. A források:

# tvheadend for raspberry, official repo
deb https://dl.bintray.com/tvheadend/deb/ jessie release
# tvheadend for raspberry, community repo
deb https://dl.bintray.com/djbenson/deb wheezy stable

A tvheadend mellett még a dvb-tools csomagra van szükség, ezt a Raspbian tartalmazza.

apt-get install tvheadend dvb-tools

A tvheadend telepítésén a dpkg automatikusan végigvezet, az itt megadott felhasználónévre és jelszóra lesz szükség az online felületre belépéshez. A felület a 9981-es porton érhető el.

A tunerek beállítása

A tunerekhez driver telepítése nem szükséges. Bekapcsoláskor DVB-T tunerként viselkednek, a tvheadend is így fogja felismerni őket. Üzemmódot a dvb-fe-tool segítségével lehet átllítani, erre szükség is van a DVB-C adás vételéhez.

# Change adapter 0 to DVB-C mode
dvb-fe-tool -a 0 --set-delsys=DVBC/ANNEX_A

Mivel az üzemmódváltást a tunerek minden bekapcsolásakor el kell végezni, én egyszerűen a tvheadend szolgáltatás indítószkriptjében oldottam ezt meg. A /etc/init.d/tvheadend módosított része:

  1. #
  2. # Function that starts the daemon/service
  3. #
  4. do_start()
  5. {
  6.         # Return
  7.         #   0 if daemon has been started
  8.         #   1 if daemon was already running
  9.         #   2 if daemon could not be started
  10.         udevadm settle
  11.  
  12.         # Nasty hack for using DVB-C
  13.         dvb-fe-tool --adapter=0 -f 0 --set-delsys=DVBC/ANNEX_A
  14.         dvb-fe-tool --adapter=1 -f 0 --set-delsys=DVBC/ANNEX_A
  15.  
  16.         start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
  17.                 || return 1
  18.         start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
  19.                 $ARGS \
  20.                 || return 2
  21. }

Minden további beállítást már a tvheadend grafikus felületén el lehet végezni. Az egyetlen félrevezető dolog talán, hogy a klienseknek mindenképpen egy új felhasználót kell létrehozni, a telepítéskor megadott csak az adminisztrációs felületre való belépésre alkalmas. A tvheadeand beállításához a kodi és az openELEC wikiben egyaránt részletesen írnak.

DVB-C tunnerek a tvheadend felületén

OpenELEC kliens

Telepítés és beállítás

A TV műsor lejátszásához Raspberry Pi 2-ket használok OpenELEC segítségével, bár a Raspberry Pi foundation már a LibreELEC-et ajánlja. A lemezképek az OpenELEC honlapjáról tölthetőek le. Az SD-kártya készítése ugyan úgy zajlik mint a Raspbian esetében, további telepítésre viszont nincs szükség. Az élő TV adás megtekintéséhez a “Tvheadend Kodi PVR” addon-t kell beállítani, ezt az OpenELEC alapértelmezésben tartalmazza.

Kodi tvheadend konfiguráció

Kodi és tvheadend

Beállítás után a menüben megjelenik a TV menüpont, ahol aztán válogathatunk is a TV adások között.

Az adás bármilyen más eszközről is nézhető amire csak Kodit telepíteni lehet. Ubuntu esetében pl. a kodi és a kodi-pvr-hts csomagokra van szükség, utóbbi a tvheadend addont tartalmazza.

sudo apt-get install kodi kodi-pvr-hts

Adatbázis tisztítása

Sajnos a Kodi adatbázisa elég rosszul viselkedik. Ha élő adásokat nézünk, megtelik egyébként használhatatlan nézettségi adatokkal, és ettől fokozatosan lelassul a rendszer. Ez különösen a már letörölt filmek eltüntetését szolgáló “adatbázis takarítása” funkció használatakor vehető észre, ennek a végrehajtása néhány percről több órára is megnövekszik.  Szerencsére a problémáról a Kodi fórumon is tudnak és készült is rá egy addon, ami szükség esetén rendbe teszi az adatbázist. A Video Database Cleaner Addon a Black Pudding tárolóból tölthető le, a tárolót pedig a benne elérhető repository.BlackPudding.zip fáj segítségével telepíthető. A kiegészítő futtatása után a Kodi ismét eredeti sebességével fog működni.

MPEG-2 licence kulcs

Raspberry Pi esetén még egy további probléma merül fel: A TV adások MPEG-2 kódolással jönnek, ezt pedig hardveres gyorsítás nélkül a Pi2 nem igazán képes kezelni. Ha a képnek semmilyen utófeldolgozására nincs szükség akkor licence kulcs nélkül is többé-kevésbé elboldogul, de például a szükség esetén automatikusan bekapcsolódó váltott-sorosság mentesítés már lemaradó képet, széteső hangot fog okozni. Szerencsére az OpenELEC képes kihasználni a hardveres MPEG-2 dekódolást és tökéletes képet biztosítani, ehhez viszont egy MPEG-2 licence kulcsra van szükség, ilyet a https://www.raspberrypi.com oldalon vásárolhatunk.

A kulcs megvásárlásához a CPU sorozatszámára lesz szükség, ezt SSH-n keresztül lehet megszerezni az OpenELEC-el ellátott Raspberriből:

ssh 192.168.1.18 -l root
# Password: openelec
cat /proc/cpuinfo

(A példában 192.168.1.18 a lejátszó IP címe. Ez a Rendszer/OpenELEC/Kapcsolatok menüpontban megtalálható. A felhasználónév és jelszó mindig root/openelec.)

Ha a vásárolt licence kulcs megérkezett, az SD kártya boot partícióján található config.txt-ben kell elhelyezni. Legegyszerűbb szintén SSH-n keresztül:

ssh 192.168.1.18 -l root
# Password: openelec
mount -o remount,rw /flash
nano /flash/config.txt
reboot

A fájlban az egy sort kell módosítani:
(0xABCD1234 a kapott licence kulcs, a # törlése fontos)

Régi:
# decode_MPG2=0x00000000
Új:
decode_MPG2=0xABCD1234

Újraindítás után a hardveres MPEG-2 feldolgozásnak már működnie kell.

Vélemény, hozzászólás?

Név *
E-mail cím *
Honlap