TV-server: Porovnání verzí
(→Multicast) |
|||
(Není zobrazeno 35 mezilehlých verzí od stejného uživatele.) | |||
Řádka 1: | Řádka 1: | ||
− | + | == TV Server == | |
Aktuálně se nejvíce odkazů obrací na sw [https://tvheadend.org/ Tvheadend]. Různé návody | Aktuálně se nejvíce odkazů obrací na sw [https://tvheadend.org/ Tvheadend]. Různé návody | ||
Řádka 5: | Řádka 5: | ||
* [https://blog.brichacek.net/prenos-dvb-t-kanalu-po-ip/ blog.brichacek.net] | * [https://blog.brichacek.net/prenos-dvb-t-kanalu-po-ip/ blog.brichacek.net] | ||
* [https://marhycz.github.io/picons/ Icony CZ programu] | * [https://marhycz.github.io/picons/ Icony CZ programu] | ||
+ | === Instalace === | ||
+ | Provně provedeme upgrade systému | ||
+ | sudo apt update | ||
+ | sudo apt upgrade | ||
+ | sudo reboot | ||
+ | Poté spustíme vlastní instalaci | ||
+ | sudo apt install tvheadend | ||
+ | Během instalace budeme vyzváni k zadání loginu admonistratora a jeho hesla. Doporučuje se admin / admintv. Po dokončení instalece se pak připojíme pro nastavení přez webové rozhraní na adrese http://raspberrypi.local:9981 | ||
− | + | == udpxy == | |
− | |||
* http://www.udpxy.com/ | * http://www.udpxy.com/ | ||
* https://angrytechnician.wordpress.com/2012/07/31/converting-your-multicast-iptv-freeview-to-http-unicast-using-udpxy/ | * https://angrytechnician.wordpress.com/2012/07/31/converting-your-multicast-iptv-freeview-to-http-unicast-using-udpxy/ | ||
− | Instalace: | + | === Instalace: === |
* Stáhneme nejnovější verzi ze stránek [http://www.udpxy.com/download/udpxy/udpxy-src.tar.gz udpxy.com] | * Stáhneme nejnovější verzi ze stránek [http://www.udpxy.com/download/udpxy/udpxy-src.tar.gz udpxy.com] | ||
* Rozbalíme soubor udpxy-src.tar.gz | * Rozbalíme soubor udpxy-src.tar.gz | ||
− | * Vnoříme se vytvořeného adresáře po rozbalení | + | * Vnoříme se vytvořeného adresáře po rozbalení (v našem připadě udpxy-1.0.23-12) |
* Spistíme vlastní instalaci | * Spistíme vlastní instalaci | ||
wget http://www.udpxy.com/download/udpxy/udpxy-src.tar.gz | wget http://www.udpxy.com/download/udpxy/udpxy-src.tar.gz | ||
Řádka 20: | Řádka 27: | ||
cd udpxy-1.0.23-12 | cd udpxy-1.0.23-12 | ||
sudo make install | sudo make install | ||
+ | === Spuštění === | ||
+ | Pro jednoduché nastavení stačí spustit program z parametrem portu. Uvedený port je výchozí. | ||
+ | udpxy -p 4022 | ||
+ | Následně můžeme ověřit funkčnost přes web rozhraní (v Chrom OK,Firefox NG): | ||
+ | http://IP_adresa_serveru:4022/status | ||
+ | |||
+ | === Service === | ||
+ | Udpxy je možné spuštět dvojím spůsobem. Přímo pod uživatelem root, kdy se program spustí na pozadí (nesmí obsahovat parametr -T). Druhá varianta je jako služba. Výhoda je dle potřeby snadné restartování. Pro tento účel vytvoříme jednoduchy skript "udpxy.service" který uložíme do adresáře "/etc/systemd/system/": | ||
+ | sudo systemctl edit --force --full udpxy.service | ||
+ | |||
+ | [Unit] | ||
+ | Description=Udpxy | ||
+ | |||
+ | [Service] | ||
+ | Type=simple | ||
+ | Environment=UDPXY_SOCKBUF_LEN=8388608 | ||
+ | ExecStart=/usr/local/bin/udpxy -p 4022 -c 500 -T | ||
+ | RestartSec=5 | ||
+ | Restart=on-failure | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | |||
+ | Následně službu zaregistrujeme a nastavíme automatické spouštění: | ||
+ | systemctl eneble udpxy.service | ||
+ | |||
+ | === Příklady === | ||
+ | |||
+ | * http://IP_adresa_serveru:port/status/ - zobrazit základní statistiky démona | ||
+ | * http://IP_adresa_serveru:port/restart/ - zavřete všechna aktivní připojení a restartujte | ||
+ | |||
+ | * http://192.168.0.12:5056/udp/224.0.2.26:24012 | ||
+ | * http://192.168.0.12:5056/rtp/224.0.2.26:24012 | ||
+ | * http://192.168.0.15:5056/rtp/224.0.2.26^24055 | ||
+ | |||
+ | === Vlan === | ||
+ | Protože Raspberry má jen jeden ethernetový port a multicast pravděpodobně bude na jiné síti, potřebuje mít možnost vytvorit virtuální lan. Tatu funkce v základu respian není instalovaná a proto ji musíme doinstalovat. Také musíme zajistit, aby se modul spustil při startu raspberry. | ||
+ | sudo apt install vlan | ||
+ | sudo su | ||
+ | echo 8021q >> /etc/modules | ||
+ | exit | ||
+ | |||
+ | === Nastavení sítě - Raspberry === | ||
+ | Raspberry používá k nastavení IP adres službu dhcpcd jejiž konfigurace je uložana v /etc/sysctl.conf. V tomto souboru přidáme: | ||
+ | |||
+ | static | ||
+ | interface eth0.31 | ||
+ | static ip_address=0.0.0.0 | ||
+ | |||
+ | sudo systemctl restart dhcpcd; sudo sysctl -p | ||
+ | |||
+ | === Nastavení sítě - other === | ||
+ | Pro automatický provoz je potřeba též správné nastavení sítě. To je ale vždy individuální. | ||
+ | |||
+ | Uvedený příklad nastaví na interface eth0 vlan z ID 31. Následně interface zapne a přepne do "promiskujitního" modu. Jinými slovy interface se stane aktivní pro poslech a navíc není potřeba na něm nastavovat žádnou IP adresu. Zároveň nastaví routovací pravidla, aby požadavek na multikast byl odeslán právě tímto interface. V případě vypnutí interface je slušnost zase vše "uklidit". V standartní instalaci by byl tento příklad uložen v souboru "/etc/network/interfaces.d/eth0.31". | ||
+ | |||
+ | auto eth0.31 | ||
+ | iface eth0.31 inet manual | ||
+ | up ip link set $IFACE up | ||
+ | post-up ip link set $IFACE promisc on | ||
+ | post-up ip route add 224.0.0.0/4 dev $IFACE | ||
+ | |||
+ | pre-down ip route del 224.0.0.0/4 dev $IFACE | ||
+ | pre-down ip link set $IFACE promisc off | ||
+ | down ip link set $IFACE down | ||
+ | |||
+ | === Multicast adresní rozsahy === | ||
+ | * 224.0.0.0 až 224.0.0.255 - určené pro síťové protokoly uvnitř LAN, mají TTL = 1, takže nepřejdou přes router | ||
+ | * 224.0.1.0 až 238.255.255.255 - jsou globální multicast adresy, které se používají mezi organizacemi a přes internet | ||
+ | * 239.0.0.0 až 239.255.255.255 - je omezený rozsah adres, pro použití uvnitř organizace (LAN) | ||
+ | |||
+ | V prvním rozsahu, 224.0.0.0/24 jsou speciální adresy. Proto není úplně vhodné tento rozsah požívat, aby nevznikla případná kolize. | ||
+ | |||
+ | * 224.0.0.1 - všechny systémy | ||
+ | * 224.0.0.2 - všechny lokální (na stejném subnetu) routery | ||
+ | * 224.0.0.5 - OSPF všechny routery | ||
+ | * 224.0.0.6 - OSPF DR a BDR routery | ||
+ | * 224.0.0.10 - EIGRP routery | ||
+ | |||
+ | === Nespecifikovano === | ||
+ | Jen nesouvisle poznamku k reseni ... | ||
+ | ifconfig eth0 up | ||
+ | ifconfig eth0 promisc | ||
+ | /etc/dhcpcd.conf | ||
+ | static | ||
+ | interface eth0 | ||
+ | static ip_address=0.0.0.0 | ||
+ | /etc/network/interfaces | ||
+ | up ifconfig eth1 promisc up | ||
+ | |||
+ | up ip link set dev eth0 promisc on | ||
+ | == TV - multicast == | ||
+ | Testovaní multicastu je pomerne problémové. Zde jsem si poznamenal par příkladů pro TV multicast: | ||
+ | * multicat -u -d 162000000 @239.202.251.32:5500 /tmp/video1.ts 100 # nahraje cast multicastu do souboru | ||
+ | |||
+ | |||
+ | * dvbsnoop -s ts -pd 6 -tssubdecode -nph -if /tmp/video1.ts 100 # zobrazi úplnou tabulku z PID 100 v čitelném tvaru | ||
+ | * dvbsnoop -s ts -pd 3 -tssubdecode -nph -if /tmp/video1.ts 100 # zobrazi úspornejší tabulku z PID 100 v čitelném tvaru | ||
+ | |||
+ | == Odazy == | ||
+ | * github.com/arut/nginx-rtmp-module |
Aktuální verze z 20. 3. 2022, 10:55
Obsah
TV Server
Aktuálně se nejvíce odkazů obrací na sw Tvheadend. Různé návody
Instalace
Provně provedeme upgrade systému
sudo apt update sudo apt upgrade sudo reboot
Poté spustíme vlastní instalaci
sudo apt install tvheadend
Během instalace budeme vyzváni k zadání loginu admonistratora a jeho hesla. Doporučuje se admin / admintv. Po dokončení instalece se pak připojíme pro nastavení přez webové rozhraní na adrese http://raspberrypi.local:9981
udpxy
- http://www.udpxy.com/
- https://angrytechnician.wordpress.com/2012/07/31/converting-your-multicast-iptv-freeview-to-http-unicast-using-udpxy/
Instalace:
- Stáhneme nejnovější verzi ze stránek udpxy.com
- Rozbalíme soubor udpxy-src.tar.gz
- Vnoříme se vytvořeného adresáře po rozbalení (v našem připadě udpxy-1.0.23-12)
- Spistíme vlastní instalaci
wget http://www.udpxy.com/download/udpxy/udpxy-src.tar.gz tar -xzvf udpxy-src.tar.gz cd udpxy-1.0.23-12 sudo make install
Spuštění
Pro jednoduché nastavení stačí spustit program z parametrem portu. Uvedený port je výchozí.
udpxy -p 4022
Následně můžeme ověřit funkčnost přes web rozhraní (v Chrom OK,Firefox NG):
http://IP_adresa_serveru:4022/status
Service
Udpxy je možné spuštět dvojím spůsobem. Přímo pod uživatelem root, kdy se program spustí na pozadí (nesmí obsahovat parametr -T). Druhá varianta je jako služba. Výhoda je dle potřeby snadné restartování. Pro tento účel vytvoříme jednoduchy skript "udpxy.service" který uložíme do adresáře "/etc/systemd/system/":
sudo systemctl edit --force --full udpxy.service
[Unit] Description=Udpxy [Service] Type=simple Environment=UDPXY_SOCKBUF_LEN=8388608 ExecStart=/usr/local/bin/udpxy -p 4022 -c 500 -T RestartSec=5 Restart=on-failure [Install] WantedBy=multi-user.target
Následně službu zaregistrujeme a nastavíme automatické spouštění:
systemctl eneble udpxy.service
Příklady
- http://IP_adresa_serveru:port/status/ - zobrazit základní statistiky démona
- http://IP_adresa_serveru:port/restart/ - zavřete všechna aktivní připojení a restartujte
- http://192.168.0.12:5056/udp/224.0.2.26:24012
- http://192.168.0.12:5056/rtp/224.0.2.26:24012
- http://192.168.0.15:5056/rtp/224.0.2.26^24055
Vlan
Protože Raspberry má jen jeden ethernetový port a multicast pravděpodobně bude na jiné síti, potřebuje mít možnost vytvorit virtuální lan. Tatu funkce v základu respian není instalovaná a proto ji musíme doinstalovat. Také musíme zajistit, aby se modul spustil při startu raspberry.
sudo apt install vlan sudo su echo 8021q >> /etc/modules exit
Nastavení sítě - Raspberry
Raspberry používá k nastavení IP adres službu dhcpcd jejiž konfigurace je uložana v /etc/sysctl.conf. V tomto souboru přidáme:
static interface eth0.31 static ip_address=0.0.0.0
sudo systemctl restart dhcpcd; sudo sysctl -p
Nastavení sítě - other
Pro automatický provoz je potřeba též správné nastavení sítě. To je ale vždy individuální.
Uvedený příklad nastaví na interface eth0 vlan z ID 31. Následně interface zapne a přepne do "promiskujitního" modu. Jinými slovy interface se stane aktivní pro poslech a navíc není potřeba na něm nastavovat žádnou IP adresu. Zároveň nastaví routovací pravidla, aby požadavek na multikast byl odeslán právě tímto interface. V případě vypnutí interface je slušnost zase vše "uklidit". V standartní instalaci by byl tento příklad uložen v souboru "/etc/network/interfaces.d/eth0.31".
auto eth0.31 iface eth0.31 inet manual up ip link set $IFACE up post-up ip link set $IFACE promisc on post-up ip route add 224.0.0.0/4 dev $IFACE pre-down ip route del 224.0.0.0/4 dev $IFACE pre-down ip link set $IFACE promisc off down ip link set $IFACE down
Multicast adresní rozsahy
- 224.0.0.0 až 224.0.0.255 - určené pro síťové protokoly uvnitř LAN, mají TTL = 1, takže nepřejdou přes router
- 224.0.1.0 až 238.255.255.255 - jsou globální multicast adresy, které se používají mezi organizacemi a přes internet
- 239.0.0.0 až 239.255.255.255 - je omezený rozsah adres, pro použití uvnitř organizace (LAN)
V prvním rozsahu, 224.0.0.0/24 jsou speciální adresy. Proto není úplně vhodné tento rozsah požívat, aby nevznikla případná kolize.
- 224.0.0.1 - všechny systémy
- 224.0.0.2 - všechny lokální (na stejném subnetu) routery
- 224.0.0.5 - OSPF všechny routery
- 224.0.0.6 - OSPF DR a BDR routery
- 224.0.0.10 - EIGRP routery
Nespecifikovano
Jen nesouvisle poznamku k reseni ...
ifconfig eth0 up ifconfig eth0 promisc
/etc/dhcpcd.conf
static interface eth0 static ip_address=0.0.0.0
/etc/network/interfaces
up ifconfig eth1 promisc up
up ip link set dev eth0 promisc on
TV - multicast
Testovaní multicastu je pomerne problémové. Zde jsem si poznamenal par příkladů pro TV multicast:
- multicat -u -d 162000000 @239.202.251.32:5500 /tmp/video1.ts 100 # nahraje cast multicastu do souboru
- dvbsnoop -s ts -pd 6 -tssubdecode -nph -if /tmp/video1.ts 100 # zobrazi úplnou tabulku z PID 100 v čitelném tvaru
- dvbsnoop -s ts -pd 3 -tssubdecode -nph -if /tmp/video1.ts 100 # zobrazi úspornejší tabulku z PID 100 v čitelném tvaru
Odazy
- github.com/arut/nginx-rtmp-module