• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 1 Hlas(ů) - 5 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
SAT>IP - Připojení DVB tuneru k Tvheadend přes LAN
#1
Lightbulb 
K čemu to je?
Tento návod asi nevyužije každý, ale mějme následující situaci:

Můj domácí Tvheadend server se nachází ve špajzu, do kterého je akorát přivedený ethernet.

Chtěl bych ale přijímat i DVB-T2. Nicméně v místnosti se serverem nemám přivedený koaxiál z antény. Ovšem pod střechou mám zrovna jak koaxiál z antény, tak i vyvedený ethernet. Mohl bych tedy na toto místo umístit mini pc s dalším plným streamovacím serverem (tvheadend, dvblast, mumudvb). Ovšem tímto zbytečně zvýším komplexitu -> musel bych ladit kanály na dvou místech. 


Řešení - SAT>IP
Existuje standard SAT>IP (https://en.wikipedia.org/wiki/Sat-IP), který umožňuje sdílet jakýkoliv DVB adaptér (T,C,S) přes vaši místní LAN síť.

Tento software využívají i hotové koncové produkty jako např. SAT>IP Telestar Digibit R1 nebo SAT>IP tunery od Digital Devices, což je krabička se 4 satelitními DVB-S2 tunery a miniaturním linuxem, na kterém běží SAT>IP server. 

Open source serverová implementace SAT>IP je projekt minisatip https://github.com/catalinii/minisatip. Do projektu příspívá i vývojář Tvheadendu a udržovatel updatů(https://github.com/perexg/satip-axe) pro satelitní SAT>IP boxy.

Tvheadend podporuje SAT>IP. Umí být SAT>IP klient. Stačí mi tedy na mini-pc pod střechou nainstalovat SAT>IP server a Tvheadend ho pak na síti uvidí a zobrazí jako další tuner. 

Předpoklady:
 
  • Zprovozněný tuner - tedy v případě novějšího kernelu stačí u hodně tunerů jen pouze zkopírovat firmware ze stránek výrobce do /lib/firmware

Instalace minisatip
minisatip se bohužel nenachází v repozitářích klasických distribucí (Debian, Fedora, CentOS) kromě Arch Linuxu. Tam je k dispozici v AUR repozitáři jako minisatip-git. Zkompilujeme si ho tedy sami, není to vůbec nic těžkého!

Nainstalujeme git pro zkopírování projektu z Githubu, C++ kompilátor gcc a make utilitu pro automatické kompilování. Ukázka je z Debianu:
Kód:
sudo apt-get update
sudo apt-get install git gcc make


Stáhneme si kopii projektu minisatip z Githubu
Kód:
git clone https://github.com/catalinii/minisatip


Do složky kde jste se aktuálně nacházeli se vytvořila složka minisatip.
Jdeme do složky a spustíme skript configure. Ten zkontroluje, jestli máme vše připravené a vytvoří makefile s nastavením pro kompilátor.
Kód:
cd minisatip
./configure


pak už nám stačí jenom ve stejné složce pustit make a program se zkompiluje přes gcc!
Kód:
make


Právě jste zkompilovali program, že to bylo děsně jednoduché?
Nyní se nám ve složce vytvořil spustitelný soubor minisatip


Spuštění minisatip
Program pustíme s root právy. Má několik užitečných přepínačů. minisatip také nabízí webové rozhraní na portu 8080, které ukazuje aktuální stav tunerů (Když není žádný využíván, bude seznam prázdný)
Kód:
./minisatip -D 2 -O -f
  • -D pokud na vaši LAN máte více než jenom jeden minisatip server, dejte každému svoje číslo. Jinak to ignorujte
  • -O - Spustí server v TCP režimu. Funguje to stabilněji než UDP
  • -f spustí aplikaci v popředí. Pokud -f přepínač nepoužijete, aplikace se pustí na pozadí. (Až vyzkoušíte funkčnost, pak to klidně pusťte na pozadí)
         

Tvheadend
Nové verze Tvheadendu by měly na síti rozpoznat SAT>IP zcela automaticky. Pokud se tomu tak nestane, spusťte tvheadend s přepínačem, tím ho nakopnete, kam se má dívat.
Kód:
—satip-xml=“http://IPadresaSATIPserveru:8080/desc.xml”

   
- Ruční nastavení SAT>IP

Pak již můžete se SAT>IP zacházet jako s běžným tunerem!

   
- Přehled tunerů v Tvheadend


Závěr
Tímto způsobem můžete provozovat centrální streamovací server, který třeba vezme satelit z jedné místnosti, terestrické vysílání z druhé a IPTV přes síť. A vše budete spravovat z jednoho místa!
SZ nepoužívejte na dotazy, které se hodí pro všechny. Pouze pokud chcete abych něco někde doplnil, opravil.
_____
i3 Haswell + Arch Linux + Docker (Tvheadend + WG + Home-Assistant + Deconz + LetsEncrypt ) + Samba Share
Apple TV (Infuse, TvhClient), Apollo Lake Mini PC (Kodi 18.4)
 
Citovat
#2
Jen ze zvědavosti na jakým hw provozuješ domácí server ve špajzu? 1
 
Citovat
#3
Mám standardní PC na platformě Haswell:
i5 4400
8GB RAM
Základka Asus H87M Plus - chtěl jsem co nejvíce PCIe slotů. V té době ještě měla většina i nepotřebné PCI
Intel e1000 Ethernet karta
WD RED disky
120GB na OS a kontejnery
Nějaký Seasonic Gold zdroj :-D
Arctic F12 Continuous Operation ventilátory

A Software:
Arch Linux se systemd-nspawn Arch linux kontejnery (něco jako Docker, ale je to obsažené přímo v systemd)

Kdybych tam ukládal životně důležitá data, tak bych vzal Xeon a ECC, ale není to potřeba. Počátečně to stálo to víc než malina, ale zase sem každý rok neměnil malinu nebo jinou desku, sd karty..

Pokud chceš provozovat víc služeb, tak prostě fakt vezmi cokoliv na x86. Ať už Intel Atom, Ryzen nebo dnešní Core i3. A s krabičkama si hraj na malé projekty. Třeba jako tento SAT>IP server.

Ale myslím, že už ses mě několikrát ptal, posledně před půl rokem :Big Grin http://www.xbmc-kodi.cz/prispevek-zaklad...8#pid38888 Postavil jsi už něco? :-)
SZ nepoužívejte na dotazy, které se hodí pro všechny. Pouze pokud chcete abych něco někde doplnil, opravil.
_____
i3 Haswell + Arch Linux + Docker (Tvheadend + WG + Home-Assistant + Deconz + LetsEncrypt ) + Samba Share
Apple TV (Infuse, TvhClient), Apollo Lake Mini PC (Kodi 18.4)
 
Citovat
#4
a co toto sprovozneni pres internet ??? zralo by to standartni rychlosti streamu ??
 
Citovat
#5
1. Lépe formuluj dotaz
2. Gramatika taky dělá lepší dojem, učí se na základce a střední
3. Tři otazníky nijak nezvětší důležitost otázky
SZ nepoužívejte na dotazy, které se hodí pro všechny. Pouze pokud chcete abych něco někde doplnil, opravil.
_____
i3 Haswell + Arch Linux + Docker (Tvheadend + WG + Home-Assistant + Deconz + LetsEncrypt ) + Samba Share
Apple TV (Infuse, TvhClient), Apollo Lake Mini PC (Kodi 18.4)
 
Citovat
#6
Myslel jsem to, že bude server někde třeba v Praze přijímat DVB-T a já si tohle přepošlu do Brna, ale to potom vlastně můžu přeposlat i přes vlastní stream a nic to neřeší.
 
Citovat
#7
Kdybys měl další tunery doma a chtěl bys zkombinovat ladění na jednom serveru, tak proč ne. Ale stream je jednodušší, protože tohle běží na několika portech, takže bez VPN by se to hůře forwardovalo.
SZ nepoužívejte na dotazy, které se hodí pro všechny. Pouze pokud chcete abych něco někde doplnil, opravil.
_____
i3 Haswell + Arch Linux + Docker (Tvheadend + WG + Home-Assistant + Deconz + LetsEncrypt ) + Samba Share
Apple TV (Infuse, TvhClient), Apollo Lake Mini PC (Kodi 18.4)
 
Citovat
#8
@Konycz To co radí @marhycz je přesné. Ideální je pořídit si do Prahy např. Tvheadend server a do Brna to streamovat z něj. Nativní HTSP je pro restream po internetu docela vhodný protokol, řadu problémů při dálkovém přenosu dokáže zmírnit. Já provozuji Tvheadend na 150/10 připojení a dva lidi současně ho docela běžně mohou používat.
 
Citovat
#9
@marhycz mockrát děkuji za návod!

Akorát jsem musel na Raspberry Pi 2 s Raspbianem před kompilací nainstalovat nějakou SSH knihovnu nebo co to je :) a pak provést restart zařízení.

sudo apt-get install libssl-dev
server: RPi 4B 2GB - RPi OS Lite - Tvheadend 4.2.8
tuners: DVBSky T330, MyGica Mini T230C v2, Pi TV HAT + Telestar DIGIBIT Twin
clients: H96 Pro+ (S912) 3/32GB - CE, X96 mini (S905W) 1/8GB - CE, X96 MAX+ (S905X3) 4/64GB - CE
 
Citovat
#10
@elmarees: Super! Jsem rád že to někomu pomohlo :)
Kouknu na to, jestli to náhodou nepotřebuje i tento balíček. Díky
SZ nepoužívejte na dotazy, které se hodí pro všechny. Pouze pokud chcete abych něco někde doplnil, opravil.
_____
i3 Haswell + Arch Linux + Docker (Tvheadend + WG + Home-Assistant + Deconz + LetsEncrypt ) + Samba Share
Apple TV (Infuse, TvhClient), Apollo Lake Mini PC (Kodi 18.4)
 
Citovat
#11
Ahoj vespolek,

Tušíte někdo na koho se obrátit ohledně nefunkčnosti https://minisatip.org/?
nginx už přes 2 týdny hlásí "Tato stránka teď nefunguje" a obývám se, že správce o tom ani neví...

Díky.

Update 20.07.2020 - Stránky fungují, tedy vyřešeno.
 
Citovat
#12
@marhycz Tak jsem se i já, po létech existence tohoto postu, pustil do otestování minisatip a můžu potvrdit, že je to celkem hračka, hlavně díky Tvému jednoduchému a skvělému (jako vždy) návodu. Velké díky.

Použil jsem šuplíkové RPi2 s Raspbian 10, na kterém jsem nedávno testoval dedikovaný Tvheadend sever. Ze šuplíku je i USB přijímač DVB-T/T2/C AverMedia TD310, který se mi v LibreELEC, kde provozuji na hlavním obývákovém HTPC i Tvheadend server, nepodařilo zprovoznit (pravda, moc jsem se o to nesnažil, používám UPC DVB-T kanály dostupné v jejich síti a letité, ale stále fungující dva double DVB-T přijímače, takže jsme ho vlastně ani nikdy nepotřeboval). V Raspbianu ale stačilo prosté nakopírování fw. Pak už jen překlad minisatip, restart systému a po ručním spuštění minisatpip se mi v Tvheadend serveru objevily dva přijímače. Vytvořil jsme si pro ně postupně dvě extra sítě, a postupně pro jednu i druhou pustil scan a namapoval s Merge same name. Službám přijímaným přes minisatip jsem dal vyšší prioritu, aby šly na řadu jako první. Vše proběhlo bez problémů a s očekávanými výsledky. Přepínání kanálů je bezproblémové, a to i při přechodu na službu s nižší prioritou, když už zdroj s vyšší prioritou nemá volný přijímač.

Vyzkoušel jsem postupně jak UPC DVB-T, tak DVB-C. U DVB-C free kanály šlapaly bez problémů, podobně to dopadlo i u DVB-T, jen s jedním rozdílem. U kanálů z DVB-T vidím v Kodi Stav zařízení jak BAD a Kvalita signálu a SNR je =0. Signál i SNR je rovno 0 i na webovém rozhraní minisatip.
       
Nejsem si jist, jestli někde nedělám chybu a budu nejspíše muset detailně projít parametry spuštění minisatip. Na první pohled tam nějaké možnosti vidět jsou, ale nechci laborovat, pokud by někdo rovnou věděl, jak do příslušných veličin dostat správné hodnoty. Poradí někdo, kdo má zkušenosti?
[EDIT] Po několika dalších restartech a vyzkoušení různých kombinací jsem se dostal do situace, kdy většinou minisatip najede dobře, Stav zařízení je GOOD a hodnoty Kvalita signálu a SNR jsou > 0. A i když nedosahují hodnot, jako Tvheadend spuštěný na stejném stroji, zdá se, že se funkce aplikace "stabilizovala". Sice bez zjevného důvodu, ale to už asi řešit nebudu. Sice čas od času k popisované situaci dojde, ale další restart ji napraví.
   
Zprvu jsem měl podezření na současně instalovaný Tvheadend (který jsem sice před startem minisatip vždy zastavil), ale ani to se neukázalo jako jasná příčina. Ani postupné změny UDP a TCP nebo spuštění na pozadí či popředí nebo s default portem 554 nebo s explicitně zadaným portem. Teď ještě zkusím jaký vliv na dlouhodobou stabilitu má provoz přes UDP a TCP (@marhycz psal o občasné nestabilitě UDP, tak to chci vyzkoušet).[/EDIT]

Jinak, teď mě čeká test příjmu DVB-T2, ale to si nechám až do cílové destinace. Celé jsem to absolvoval na žádost kamaráda, který chce RPi2 s minisatip umístit na půdu, odkud pak dolů potáhne už jen Ethernet. Chvíli jsem přemýšlel, že na to použiji nějaké light Linux distro, ale myslím, že Raspbian, na kterém to doma testuji, zajistí odpovídající prostředí také. Požadovaný výkon CPU je minimální a plánované čtyři přijímače by USB i Ethernet rozhraní měly snad také zvládnout.
 
Citovat
#13
Ahoj
Já čekám na Grundig Original SAT-IP Converter Modell: DSI 400 GSS.box. Po pár upgradech jádra na mém stávajícím tvheadend strojii a tím opětovná  instalace mojí tbs 4 tunerové karty, kdy žena a děti jsou naštvaný, že nejde tv. A otázky, kdy to opravíš? Člověk jim muže říkat milionkrát, že mají iptv streamy namapované a že stačí něco v kodi přepnout.

Jsem zvědav .. uvažuji o zkoušce alternativního firmware od spolutvůrce tvheadend. Ke stažení: https://github.com/perexg/satip-axe. Jenže tímto příjdu o možnost dvb-T2 přijmu. Mám tu také jedno rpi2 a uvažuji o zakoupení nějákého dvbt2 tuneru do usb. Bud dva dvoutunerový nebo tři jednotunerový. Otázka je jaký zvolit? Máte tu někdo otestovaný vhodný tuner s dobrou citlivostí a v kombinaci se sat-ip protokolem? Distribuce linuxu mi je jedno jaká. Má cenu trápit ebay, nebo aliexpress? 

Díky Martin
 
Citovat
#14
Tak přidám několik dalších postřehů a zkušeností z používání minisatip:
  • nepodařilo se mi zajistit spolehlivou funkci zpracování informací o stavu zařízení,  kvalitě signálu a SNR. Někdy se to chytne a pak na webovém rozhraní, v Tvheadend i Kodi ty údaje vidím, jindy ne. Zkoušel jsme různé kombinace parametrů a způsobu spuštění, ale žádnou jednoznačnou závislost jsem neobjevil. Tak to snad zbývá už jen github a nahlásit to autorovi jako zjištěné issue. Nicméně není to kritické a na vlastní funkci to vliv nemá.
  • vytvořil jsme v raspbian systemd službu, kterou minisatip spouštím. Dlouho se mi nedařilo ji spustit, až jsem si uvědomil, že minisatip musím v parametru pro definici service spouštět s parametrem -f (tedy na popředí). Po testování, kdy jsem ji naopak spouště bez parametru -f, mi to chvilku trvalo, než jsme  si to uvědomil.
  • zajímavý poznatek, pokud spustím přehrávání v Kodi (a vybere se služba přijímaná přes minisatip) a já aplikaci minisatip shodím, Tvheadend přepne na další službu v pořadí téměř bez znatelného přerušení přehrávání. Pokud pak minisatip znova spustím, k automatickému přepnutí zpět samozřejmě nedojde (tohle Tvheadend neumí). Stačí ale v Tvheadend GUI přes Status > Conenctions příslušné connection shodit a po jeho téměř okamžitém obnovení se Tvheadend plynule vrátí ke službě přijímaní přes minisatip (pokud tedy má vyšší prioritu).
  • tohle ale nefunguje v případě, pokud dojde k přerušení spojení (vytáhnutý kabel ethernetu) nebo k vypnutí napájení RPi. Plánuji na Rpi převést všechny přijímače, které mám teď připojené přímo na USB Tvheadend serveru (celkem další 4) a budu si s tím chvilku hrát, abych zjistil, jak se to celé bude chovat v těchto přechodných stavech. Rád bych to předal kamarádovi odladěné s popisem toho, jak se to v takových případech chová. Zmíním se o tom pak i tady...
 
Citovat
#15
Zatím asi na dlouho poslední příspěvek.
  • do RPi 2 s minisatip aplikací jsem připojil další dvojitý USB přijímač a začaly se dít věci
  • především se u tohoto přijímače v Tvheadend objevily správné údaje o síle signály i odstupu sš, takže problém nebude u vlastní aplikace minisatip, ale patrně u fw daného přijímače
  • při větším zatížení (více současně spuštěných kanálů z různých muxů) to začalo haprovat, myslím tím výpadky/kostičkování. Což o to, tohohle se dá u RPi 2 dosáhnout bez problémů, ale proti stavu, kdy na RPi běží Tvheadend k němu dojde při měnším počtu  současně spuštěných muxů. Je to logické, pokud mám přijímače fyzicky připojené k RPi na kterém běží Tvheadend, je vstupní tok shodný, ale ten výstupní - ke klientům Kodi - odpovídá pouze toku pouze právě přenášených kanálů. U minisatip jak vstupní (přes USB) tak výstupní (přes Ethernet) vždy odpovídá toku celého multiplexu.
  • jasně to člověk uvidí, když se podívá na architelkturu RPi a uvědomí si, že veškerý tok USB i Ethernet probíhá přes jedno rozhraní a jesltiže například pojedou čtyři muxy, tak je souhrnný datový tok - 4x dovnitř a 4x ven pro RPi 2 už neřešitelným oříškem. BTW On je to neřešitelný oříšek už při dvou/třech muxech...
  • myšlenka, použít jako HW šuplíkové RPi 2 se tedy neukázala jako příliš dobrý nápad
  • sáhnu tedy do zásob a pro kamaráda použiji jeden z nepoužívaných PC bareboone s SD kartou a zkusím na něj dostat nějaký Linux. Pro konfiguraci standardního x86 HW obsluha 4 USB 2.0 rozhraní a 1 Gbps Ethernet s maximální záteží snad oříškem nebude
  • plánoval jsem pro sebe použít podobné řešení pro Tvheadend server běžícím pod LibreELEC na hlavním obývákovém Kodi (abych k němu mohl připojit další USB přijímače). Ale nakonec se raději asi pokorně vrátím k původně plánovanému řešení dedikovaného Tvheadend serveru s přímým připojení USB přijímačů a vlastním HDD pro ukládání nahrávek. HW na to mám připravený
   

Tady trochu odbočím z tématu, nicméně stále zůstanu u Tvheadend...

Zkušenosti s použitím Rpi 2 jen potrvdily, co je největší slabinou tohoto HW. Není jím ani tak slabý výkon CPU a GPU (tedy kromě případů, kdy chcete zpracovávat nějaké výpočetně náročné úlohy třeba např. dekódování videa), ale zejména slabé hrdlo komunikací (USB, Ethernet). U Tvheadend není problémem slabé CPU, paralelní zpracování většího počtu kanál/muxů ho nijak extrémně nezatíží, ale na čem to ztroskotá daleko dříve, to jsou komunikace po USB a Ethernetu. V případě minisatip aplikace jsem to už naznačil, v případě Tvheadend běžícímu na RPi 2 v plné "palbě funkcí" je to podobné. O to víc, pokud použijete oblíbený způsob řešení, kdy se nahrávky směřují na NAS. Představte si, že přes jednoho Kodi klienta sledujete jeden program z jednoho multiplexu, druhý program z druhého multiplexu nahráváte a současně (s časovým posunem) nahrávku přehráváte na druhém Kodi. Jaké datové Kodi přes RPi a jeho perifrie v takovém případě probíhají:
  1. rozhraní USB - kompletní multiplex č. 1
  2. rozhraní Ethernet - sledovaní kanálu z multiplexu č. 1 na Kodi klientovi
  3. rozhraní USB - kompletní multiplex č. 2
  4. rozhraní Ethernet - nahrávání programu kanálu z multiplexu č. 2 na NAS
  5. rozhraní Ethernet - načítání streamu nahrávky z NAS
  6. rozhraní Ethernet - sledovaná kanálu z nahrávky z NAS na Kodi klientovi
Je vidět, že ten datový tok, který protéká přes RPi, může být skutečně masivní a že to není to, co by návrháři RPi řešili jako prioritu. Ukazuje to také to, že používání lokálního disku pro ukládání nahrávek na stroji na kterém běží Tvheadend zase není až tak zbytečný požadavek.
 
Citovat
#16
Ahoj, chtěl bych poprosit o radu, jak správně spouštět TVHeadend s parametrem pro satip. TVH pěží na raspberry s raspbianem. Ministaip běží na jiném subnetu než TVH a proto ho TVH nenajde sám. Když ukončím TVH a spustím ho ručně, tak vše funguje. Dávat ale následující kod do rc.local mi přijde dost "nečitý".
Kód:
sudo killall tvheadend
sudo -u hts tvheadend --satip_xml http://192.168.140.50:8080/desc.xml
edit:
Tak jsem na to přišel. Třeba se to bude někomu hodit. do /etc/default/tvheadend stačí přidat:
Kód:
TVH_ARGS="--satip_xml http://192.168.140.50:8080/desc.xml"
 
Citovat
#17
A od Debian 12

/etc/default/tvheadend 
OPTIONS="-u hts -g video --satip_xml http://192.168.140.50:8080/desc.xml"
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)