Build Headless-videotallennin (DVB-T/DVB-C) Raspberry Pi:stä

Viestiketju alueella 'Buildit, setupit, kotelomodifikaatiot & DIY' , aloittaja Grazer, 12.01.2020.

  1. Grazer

    Grazer

    Viestejä:
    566
    Rekisteröitynyt:
    30.10.2016
    Vaikka televisiosta tulee nykyään pääosin huonoa ohjelmaa ja nekin pyörivät jatkuvasti uusintoina, joskus siellä kuitenkin esitetään klassikoita, jotka mieluusti taltioisi itselle. Monia mielenkiintoisia dokumentteja on myös hankala löytää suoratoistopalveluista tai vastaavista.

    Itsellä on yksi Raspberry Pi 3, joka ensin toimi Pihole-purkkina ja seuraavaksi se menee varmaan nettiradioksi/audiosoittimeksi (Moode tai Volumio on OK softia). Tämän ja Raspberry Pi 4:n julkaisun innoittaman katselin, keksisikö TV-puolelle jotain hyödyllistä tai hauskaa projektia Raspilla ja löysin allaolevan linkin artikkelin.

    How To Stream Digital TV With The Raspberry Pi TV HAT

    Artikkelissa kerrotaan, miten Raspberry Pi:stä saa tehtyä videotallentimen, kun siihen liittää DVB-virittimen. Itse tilasin Raspberry Pi 4 4GB:n ja Raspberry Pi TV HAT -digivirittimen, joka liitetään Raspin GPIO-pinneihin. Artikkelin mukaan TV Hat on yhteensopiva Raspberry Pi Zeron ja Raspberry Pi 3B+:n kanssa. TV Hat toimii myös Raspberry Pi 4:n kanssa.

    Digivirittimenä voinee käyttää mitä tahansa viritintä, jolle löytyy tuki Linuxin kernelistä
    DVB-T USB Devices - LinuxTVWiki

    Tuo Raspberry Pi TV HAT on DVB-T/T2-viritin ja itse tilasin sellaisen, vaikka asun kaapelitalossa, kun en ollut vielä ihan varma, mihin tuon purkin asentaisin ja ottaisinko kanavat vastaan antenniverkosta vai kaapeliverkosta sekä löytäisinkö kaapeliverkkoon sopivaa Linuxissa toimivaa digiviritintä. Kaapelipuolen virittimiä on markkinoilla jostain syystä huomattavasti vähemmän kuin antennipuolen virittimiä. Verkkokaupasta löytyy Hauppaugen WinTV-soloHD ja WinTV-dualHD -USB-tikkuja, joille löytyy tuki Linuxista.

    TV Hat mahtuu Raspin vakiokoteloon kunhan koteloa hieman muokkaa. Spacerien takia kotelon toiselta puolen pitää hioa pohjasta piirilevyn kannakkeet tasaiseksi ja kotelon sekä kannen päähän on tehtävä aukko antenniliitintä varten. Dremelillä saa aikaan siistin lopputuloksen. Raspi siis kasaan vain.

    [​IMG]
    Tuollaisen kolon joutuu siis tekemään koteloon, jotta TV HATin antenniliitin mahtuu ulos. Nyt tuosta on siis TV HAT -kortti irti, koska käytän ulkoista USB-digisovitinta vastaanottoon.

    Itse ostin suorilta 128GB muistikortin, jottei tallennuksia tarvitse välttämättä heti siirtää purkista pois. Tallennuksen voi toki tehdä USB-tikulle, ulkoiselle kovalevylle tai kaiketi myös NFS:llä verkon yli. Raspberry Pi tukee suuriakin kortteja, kunhan vain katsoo, että softa, jolla kortille ajaa Raspbianin, osaa alustaa kortin oikein.

    You'll need an SD card for your Raspberry Pi 4
    Itse ostin Kingston Canvas Reactin, kun ei siinä kohtaa hyllyä sattunut juuri noita Samsungin Evo+-kortteja olemaan.Kingston 128 Gt microSD Canvas React UHS-I Speed Class 3 (U3) -muistikortti 40,90

    SDXC-speksin mukaan yli 32GB kortit alustetaan normaalisti exFATilla, jolta Raspi ei osaa bootata. Tein muistikortille Raspbian-asennuksen balenaEtcherillä, joka osaa alustaa SDXC-kortit exFATin sijaan Fat32:lla, jolloin Raspin saa bootattua niiltäkin.
    balenaEtcher - Home
    Download Raspbian for Raspberry Pi
    Itse asensin paketin Raspbian Buster with desktop. En tiedä, riittäisikö tvheadendille pelkkä command line -asennus

    Itse tein alkuvalmistelut näytöllä, näppiksellä ja hiirellä, mutta ilmankin niitä pärjää. Raspbianissa on oletuksena SSH-serveri pois päältä, mutta sen saa aktivoitua, kun tallentaa muistikortin boot-osiolle tyhjän tiedoston nimellä "ssh". Tuolla lisäyksellä SSH aktivoituu ensi käynnistyksellä ja sisään pääsee kirjautumaan tunnuksela pi ja salasanalla raspberry. Paikallisesti SSH:n saa aktivoitua Raspbianista valikosta Raspberry Pi Configuration.

    Raspbian kannattaa alkuperäisen artikkelin mukaisesti päivittää jonka jälkeen voi asentaa Tvheadendin ja aloittaa wizardin mukaan. Lue kuitenkin ensin ohje loppuun.

    Tvheadendin asennuksen yhteydessä ladataan taajuus/kanavatiedot, jotka löytyvät myös osoittesta tvheadend/dtv-scan-tables
    Taajuuksien paikkansapitävyyden voi tarkistaa antenniverkon osalta osoitteesta http://www.digitv.fi (karttapalvelusta näkyy) tai kaapeliTV:n tapauksessa oman operaattorin nettisivulta. Githubista ei löytynyt Elisan taajuustietoja, joten ne kirjoitin itse. Alla listattuna sekä kaikkien kanavanippujen taajuudet, että vain ne, joissa on ilmaisia kanavia.

    # Elisa pk-seutu
    # freq sr fec mod

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 122000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 130000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 138000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 146000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 154000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/128
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 162000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/128
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 170000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 178000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 258000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 266000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 274000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 282000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 290000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 298000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 306000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 314000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 322000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 330000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 338000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 346000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 354000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 362000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 370000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 378000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 386000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 394000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 402000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 410000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 418000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 426000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 442000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 450000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 474000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 482000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 490000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 498000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    # Elisa pk-seutu
    # Vain niput joissa FTA-kanavia
    # freq sr fec mod

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 130000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 138000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 154000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/128
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 162000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/128
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 170000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 258000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 274000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 282000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 298000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 330000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 346000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 354000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 362000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 386000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 426000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 450000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 474000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 490000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    [CHANNEL]
    DELIVERY_SYSTEM = DVBC/ANNEX_A
    FREQUENCY = 498000000
    SYMBOL_RATE = 6900000
    INNER_FEC = NONE
    MODULATION = QAM/256
    INVERSION = AUTO

    Kävin listan läpi ja pitäisi olla oikein, mutta jos joku kanava jää uupumaan, sitten listalta puuttuu kuitenkin joku taajuus. TVheadend hakee listoja kansiosta /usr/share/tvheadend/data/dvb-scan/ jossa vielä alikansiot eri verkkotyypeille (atsc, dvb-c, dvb-s, dvb-t, isdb). Taajuuslistan voi tallentaa kansioon paikallisesti tai sitten verkon yli SSH:lla. Nimeksi esim. fi-Elisa

    Jos asuu lähellä TV-mastoa, antennisignaalin saa helposti vastaanotettua esim. tällä näppärällä antennilla Masan HB9CV-kalkylaattori
    Itse tein tuollaisen 1,5mm2 kuparilangasta ja sain Klaukkalassa parvekkeella kaikki kanavat hyvin näkymään Espoon lähettimestä. Sisätiloissa alkoivat pätkimään. Talo on 2018 tehty ja hyvin tiivis myös radiotaajuusmielessä.

    Itseltä löytyi laatikosta myös USB-liitäntäinen Anysee E30C -DVB-C-viritin, jota päätin kokeilla. En ollut varma, toimiiko viritin, kun sitä ei löytynyt linuxTV:n listalta, mutta viritin on tuossa Philipsin TDA10023 ja sama viritin on toisessa listalla olevassa Anyseen purkissa, eli toimii.

    Osa myöhemmistä Anyseen vastaanottimista käyttää ilmeisesti Philipsin TDA10024-piiriä ja tuon tuesta en ole varma. Rasbpianista voi komennolla dmesg | grep Anysee tarkistaa että lukeeko "successfully initialized and connected".

    En ole varma, kuinka paljon tuo Anysee ottaa virtaa, joten kytkin sen Raspiin ulkoisella powerilla varustetun USB-hubin läpi. Sitten vain skannaamaan ja hienosti löytyi kaikki kanavat.

    Tvheadendin käyttö on suoraviivaista. Electronic Program Guide -välilehdeltä vasemmalta TV-symbolia klikkaamalla käynnistyy selainstream. HD-kanavat eivät jostain syystä streamaannu nätisti vaan pätkivät. En ole vielä asiaa ehtinyt sen enempiä tutkimaan, muuta kuin että ei ainakaan CPU:n puolesta jää kiinni. Stream auki ei CPU-käyttö ole edes 50%. Tuolla pätkimisellä ei sinänsä väliä ole, koska ohjelman tallennukset toimivat kuitenkin normaalisti.

    Salatut kanavat saa poistettua EPG:stä, kun niiden kanavien kanssa käy nappaamassa Configuration --> Channel/EPG -valikosta täpän pois sarakkeesta Enable/disable channel.

    [​IMG]

    Ohjelman saa ajastettua nauhoitukseen klikkaamalla TV-symbolin viereistä infosymbolia ja avautuvasta infoikkunasta Record program -nappia painamalla. Ohjelma ilmestyy tämän jälkeen DVR-välilehdelle. Tallennettuja ohjelmia saa ladattua koneelle DVR/Finished Recording -välilehdeltä valitsemalla halutun tallenteen ja klikkaamalla download. Tallennus on tavallista Transport Streamia (pääte .ts), joka sisältää audion ja mahdolliset tekstitykset. Katsoa sitä voi vaikkapa Media Player Classic Home Cinemalla.

    EDIT: 13.1.2020 lisätty pari kuvaa maininta salattujen kanavien poistamiseksi EPG:stä
     
    Viimeksi muokattu: 13.01.2020
    Tinke-80, topiv, Jyrgen ja 5 muuta tykkäävät tästä.