Monday, October 14, 2013

IPTV 6-oji diena - Plex media serverio pluginas

Kaip jau minėjau ankščiau yra labai paprastas būdas žiūrėti IPTV per teliką jeigu turite kokį tais kompiuterį kuriame būtų įdiegtas Plex serveris - tereikia IPTV kanalų nuorodas sudėti į atskirus *.str failus ir pakrauti į Plex serverį, tačiau toks būdas man nepatiko dėl to, kad kanalų informacija saugoma pačio Plex nustatumuose ir pakeitus serverį reikėtų visus kanalus aprašinėti iš naujo, turint grojąraštį iš 150 kanalų malonumas menkas, taigi leidausi į paieškas kaip tą informaciją išsaugoti atskirame faile ar eksportuoti kad būtų galima lengvai dalintis su draugais. Deja paieškos buvo nelabai sėkmingos, taigi nusprendžiau sukurti Plex plugin'ą kuris grotų IPTV kanalus iš M3U failo panašiai kaip ankščiau minėtas SIPTV ar nesenai atrasti nauji servisai SS-IPTV ir nStreamVOD servisai, ir po 3 dienų Pyhon kalbos mokymosi plius 2 dienų testavimo pristatau savo darbo rezultatą:


Plex grotuvai veikia Windows, Mac, Roku, LG, Samsung ir Google TV sistemose, taigi šis sprednimas (kaip ir ankstesnysis) tinka ne tik LG televizoriams. Instaliavimas paprastas, parsisiunčiate plugin'ą iš GitHub apačioje dešinėje esančiu mygtuku Download ZIP, nukopijuojate IPTV.bundle katalogą į Plex plugin katalogą (C:\Users\...\AppData\Local\Plex Media Server\Plug-ins) ir plugino Contents\Resources kataloge esantį playlist.m3u failiuką papildote jus dominančiais IPTV kanalais (labai daug viešų kanalų galima rasti freetux.net ir iptv-player.com), galite nurodyti papildomus atributus kaip tvg-logo ir group-title, remkitės pateiktu pavyzdžiu.

Ir viskas, net neperkrovus Plex serverio kliente turėtų atsirasti naujas punktas Video Channels, o jame IPTV ir sugrupuotas visas grojaraštis:

Video ChannelsIPTV

Keičiant serverį jums tereikia išsaugoti Jūsų asmeninį playlist.m3u ir tiek, ateityje planuoju įdėti EPG palaikymą, vertimą į lietuvių ir kitas kalbas, papildyti konfigūraciją ir pan.  Tik noriu atkreipti dėmesį kad Plex neturi oficialaus IPTV palaikymo ir gali būti kad kai kurie kanalai papraščiausiai negros, Plex serverio media manager'yje tai tikrai niekas negros, tik klientuose, tačiau aš pats testavau PC kliente ir LG televizoriuje, viskas groja be jokių problemų, tik užtrunka kol įsijungia. Daugiau informacijos galite ieškoti Plex forumuose, jeigu kils klausimų ar turite kokių pasiūlymų, rašykite čia, padėsiu kuo galėsiu. Jeigu mano plugin'as jums naudingas, būčiau dėkingas jeigu bent apsvarstytumėte galimybę paaukoti nedidelę sumą ant alaus, kad projektas toliau gyvuotų ir tobulėtų, nuorodą į PayPal Donations rasite viršuje dešinėje šio puslapio pusėje.

Friday, October 4, 2013

IPTV 5-oji diena - Asus RT-N66U papildomi nustatymai skriptų pagalba

Kaip ir žadėjau, pratęsimas kaip išsdaugoti router'io konfigūraciją, kuri nepasiekiama per GUI, tiesa šis sprendimas atrodo tinka tik Merlino modifikuotai Asus programinei įrangai, kadangi pas Merliną yra JFFS particija pritaikyta vartotojų skriptams kurie paleidžiami tam įvykstant tam tikriems įvykiams, tiesa yra nerekomenduojama šia particiją naudoti dažnai kadangi jos įrašymų kiekis yra ribotas, geriau naudoti kokį nors ir orastos kokybės USB flash'iuką, tokį pakeisti tikrai pigiau negu visą router'į.

Taigi viskas iš eilės, Merlin'o firmware įrašėm praeitą kartą, patikrinam ar įjungtas JFFS: Administration - System - Enable JFFS partition, pasijungiam per Putty (ką irgi išmokom praeitą kartą) ir kuriam naują failą vi pagalba:



vi /jffs/scripts/firewall_start


Vi tikrai lengvai užsimiršta kai ilgai nesinaudoji, teko naudotis google pagalba kad galėčiausuvaldyti, failo turinys atrodo taip:



#!/bin/sh
sleep 10
killall udpxy
udpxy -m eth0 -p 4000
iptables -I INPUT -p tcp –dport 4000 -j ACCEPT


Vi uždaromas suvedus komandą :x (prieš tai paspaudus Esc kad pereiti į komandinės eilutės režimą), toliau reikia suteikti teises skriptui:



chmod a+rx /jffs/scripts/*


Ir viskas, jeigu nepadaryta klaidų perkrovus routerį bus perkrautas Udpxy servisas ir atidarytas 4000 portas, būtinai patikrinkite skriptą ar nėra klaidų prieš palikdami jį, nes jungiantis routeriui jokių klaidų praneišmų niekur nerodys (na nebent kur nors yra logai, nesu įsitikinęs). Tai tiek, ačiū už dėmesį, kitą dieną tikiuosi grįžti prie televizoriaus konfigūravimo.

Tuesday, October 1, 2013

IPTV 4-oji diena - transliacija į išorę naudojant Udpxy ir Asus RT-N66U

Kaip jau lyg ir esu minėjęs, namuose turiu Asus RT-N66U router'į, jame pagal nutylėjimą sukasi Updxy servisas kuris mano ISP transliuojamo IPTV multicast srautą konvertuoja į unicast ir leidžia žiūrėti tuos unicast stream'us visiems prie router'io pasijungusiems vartotojams, deje tik LAN'e, nors galima prie router'io ir per WAN prisijungti, Udpxy nėra prieinamas nors žinau kad tas įmanoma, iš pirmo karto nepavyko tam sukonfiguruoti taigi atėjau ateičiai.

Ir vakar ta ateitis atėjo kai kolega Wadalazas bandė įrodyti kad mano idėja nelogiška ir neįgyvendinama, ir paprastas buitinis router'is nepajėgs perduoti televizijos į išorę, ir kad bakalauro diplomą aš gavau nepelnytai :), taigi gavęs motyvacijos prisėdau ir pabandžiau viską sutvarkyti:

Šiek tiek pagooglinęs išsiaiškinau, kad tereikia atidaryti Udpxy naudojamą portą (pagal nutylėjimą mano router'yje tai 4000) priėjimui iš WAN ir pakeisti Udpxy konfigūraciją kad leistų prisijungti ne tik vidiniu adresu 192.168.1.1, bet ir išoriniu, tačiau standartinės Asus programinės įrangos galimybės labai ribotos taigi reik ieškoti alternatyvų. Bent kas kažkiek nusimanantis kompiuteriniuose tinkluose man iškart rekomenduotų DD-WRT, kiek daugiau patirties turintys gal ir Tomato, apie kuriuos esu minėjęs ankstesniuosne įrašuose, tačiau mintis kad reikės visus DHCP, port forwarding'us ir pan. konfigūruoti iš naujo nelabai viliojo, taigi pradžiai pabandžiau tą patį Asuswrt, tik patobulintą nepriklausomo developer'io Merlin, tiesa jo puslapis kažkokia tragedija, bet pavyko atrasti jo mediafire paskyrą iš kur ir parsisiunčiau paskutinę stable versiją. Instaliuoti jį paprasta, extract'inam archyvą, viduj randam *.trx failą, upload'inam jį router'io nustatymuose Administration - Formware Upgrade ir viskas, net nustatymai liko visi, bet vistiek prieš tai rekomenduočiau pasidaryti atsarginę kopiją (Administration - Restore/Save/Upload Setting), maža kas. Toliau konfigūracimas, grafinio interfeiso tam rasti nepavyko, taigi naudojau unix komandas, matyt galėjau tą padaryti per Tools - Run System Command, bet nusprendžiau geriau tą daryti per Putty prieš tai įjungęs SSH palaikymą (Administration - System - Enable SSH). Jeigu nemokate naudotis Putty tai paprasta, į Host Name įrašote routerio adresą (192.168.1.1), spaudžiate Open, nurodote routerio priijungimo vardą, slaptažodį, ir baigta. 4000 portas atidaromas tokia komanda:



iptables -I INPUT -p tcp --dport 4000 -j ACCEPT


Tada reikia perkrauti Udpxy kad be parametro -a, nes Udpxy atsiliepia tik į kreipinius 192.168.1.1:4000 adresu, ką galima pamatyti http://192.168.1.1:4000/status puslapyje:



killall udpxy
udpxy -m eth0 -p 4000


Va ir viskas, http://192.168.1.1:4000/status turėtų matytis Accepting clients on: 0.0.0.0:4000, VLC player'yje nurodote network stream'ą



http://išorinis adresas arba IP (mano atveju cigaras.tk):4000/udp/xxx.xxx.xxx.xxx:1234


Kur vietoj xxx aišku atitinkami UDP adresas, ir matote atitinkama IPTV kanalą net nebūdami vietiniame tinkle, your face Wadala, god dammit!

Vienas mano kolega gyvenantis valstijose patestavo, ir aš patestavau darbe, viskas veikia, deje Wadalazui negroja, bet dėl to jau kalta Wadalos infrastruktūra, faktas kad veikia, ir net sudėtinga nebuvo (na aišku Udpxy tikrai rimtas produktas, pats kaži ar tokį suprgramuočiau, ačiū už tai Pavel V. Cherenkov), bakalaurą gavau ne veltui :)

Tačiau yra viena problema, per Putty atlikti pakeitimai nėra išsaugoti router'io konfigūracijoje, dėl to perkorvus router'į pakeitimai nusimuša, tenka iš naujo atidaryti portą ir perkrauti Udpxy, reikia pasitelkti google ir kurį vakarą tą sutvarkyti, tačiau šiai dienai užteks, taip sakant laukite tęsinio.

P.S. Taipogi ačiū už pagalbą snbforums.com.