Wednesday, July 10, 2013

Utilizarea scriptului AdobeHDS.php pentru streaming TV

In prima faza, cerinta de baza este de a instala pe calculator programul PHP Server. Pina la PHP 5.3 autorii au facut si installer (fisier .msi, executabil), de la PHP 5.4 in sus au scos numai arhive al caror continut utilizatorul si-l poate copia in orice folder si locatie doreste.

1. Daca optati pentru versiunea mai veche si pentru installerul aferent (Windows installer-ul se gaseste pe pagina http://windows.php.net/download/ - undeva in jumatatea de jos a paginii), fisierele vor fi trimise in systemdrive:/Program Files/PHP. Daca alegeti zip-ul ( http://windows.php.net/downloads/releases/php-5.4.17-Win32-VC9-x86.zip ), e recomandabil sa-l copiati intr-un folder simplu - de pilda faceti pe C:/ un folder cu denumirea PHP.

2. Odata continutul arhivei copiat pe harddisc, luati un fisier PHP.ini de aici - http://www.mediafire.com/file/73pmlxqeuwdwdep/PHP.ini - si copiati-l in respectivul folder.

3. Dupa aceasta operatiune, click dreapta pe "My Computer", mergeti la Properties (System) / Advanced settings / Advanced/ Environment variables, si in meniul "System variables" selectati optiunea "Path" - Edit - si adaugati in coada ;C:\PHP sau ;C:\Program Files\PHP, depinde unde e folderul cu pricina.

4. Daca setarile sint facute corect, deschizind un command prompt (Run - cmd), si scriind comanda php -v veti primi un raspuns de genul:
PHP 5.4.13 (cli) (built: Mar 15 2013 02:07:14)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies


5. Acuma mergeti la pagina
https://raw.github.com/K-S-V/Scripts/master/AdobeHDS.php
si "save as" AdobeHDS.php

6. Odata fisierul "AdobeHDS.php" este salvat pe harddisc, il mutati in folderul "PHP", recent creat

7. Acum e momentul testelor. Cream un fisier .bat (un text cu continutul care urmeaza, pe care il salvam sub denumirea Run.bat) in care inseram comenzile necesare reproducerii unui stream HDS prin intermediul player-ului indicat de noi (deocamdata in sensul asta pe Windows functioneaza numai VLC, Mplayer si FFplay, insa ele ofera destule optiuni pentru a satisface pe toata lumea).

php AdobeHDS.php --manifest "http://82.76.249.75/digiedge/livehlsdigisport1hq/manifest.f4m" --proxy 86.123.225.126:8080 --fproxy --play | "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --file-caching=30000 -

Exemplul de comanda dat de mine mai sus este un exemplu pentru rularea stream-ului TV Digisport 1, trecut printr-un proxy al providerului Rdsnet, in playerul VLC. Recomand folosirea ultimei versiuni de player VLC (2.0.7), pentru ca autorii programului au mai rezolvat unele probleme de buffering. Comanda --fproxy, ulterioara comenzii --proxy e importanta pentru ca impune scriptului sa treaca toate fragmentele de stream prin proxy-ul respectiv, altminteri n-ar trece decit header-ul playlist-ului. De asemenea comanda --file-caching este una utila, ea servind la realizarea unui buffer local pentru streamul la care ne-am conectat. Un buffer de 30000 msec (30 de secunde) este util daca streamul are bitrate mare si proxy-ul nu are viteza constanta. E indicat sa folositi, desigur, un proxy de mare viteza, daca dispuneti de asa ceva. In cazul streamului Digisport, atrag atentia asupra unui blocaj inerent la secunda 45, blocaj care poate dura pina la 20-30 de secunde; este vorba despre tranzitia de la fisierele pre-indicate in playlist-ul f4m la streamul real. Daca stream-ul se misca, totusi, greu, inseamna ca proxy-ul este foarte slow, si e recomandabil sa incercati si varianta media (cu bitrate mai mic) a streamului, si anume:
http://82.76.249.75/digiedge/livehlsdigisport1mq/manifest.f4m

Tutorialul autorului acestui script (KSV) este prezent pe aceasta pagina - https://github.com/K-S-V/Scripts/wiki - asta in cazul in care doriti sa aflati si alte comenzi utile.

Spor la streaming!

Tuesday, April 30, 2013

Streaming server cu VLC

Cu toata avalansa asta de Web TV-uri romanesti care se inchid sau trec in regimul pay (ceea ce n-ar fi asa rau, dar, datorita in mai multor factori, n-ai nici o garantie ca platesti pentru o chestie durabila), ma gindeam ca in cazuri extreme se pot utiliza calculatoare mei vechi in calitate de server pt. streaming. Procedura n-ar fi foarte dificila, e nevoie de:

a) conexiune internet cu upload bun
b) conexiune CATV
c) una bucata TV tuner cu suport DVB-T/DVB-C
d) un calculator care sa mearga tot timpul
e) o versiune actualizata de VLC Media Player
f) o versiune actualizata de TeamViewer instalata pe sistem (pentru depanari soft si diverse reglaje suplimentare)

Odata ce am ajuns la calculatorul care va emite streamurile, instalam TV tunerul si softurile aferente, dupa care configurez VLC-ul. Streaming-ul TV prin VLC, in teorie cel putin, nu pare sa fie foarte dificil de realizat. Pasii, in mare, ar fi urmatorii:

1. VLC - Meniul "Media", alegem submeniul "Streaming"

2. Selectam tab-ul "Capture Device"; Capture mode - dupa care meniurile difera de la versiune la versiune; putem avea, astfel, meniul DVB DirectShow - DVB Type DVB-T (sau C, dupa caz) - sau meniul TV (digital) cu aceiasi parametri, Transponder frequency - frecventele pe care le gasim in setarile TV Tuner-ului, Bandwidth - Undefined (sa speram ca vrea asa)

3. Click pe "Stream" - ne va fi indicata frecventa streamului; click pe "Next", si ajungem in meniul care indica destinatia. Dam click pe butonul "Add"

4. Protocolul ales pentru stream poate fi HTTP (daca transmitem in afara retelei locale) sau RTP (daca ne adresam unei retele locale/metropolitane care suporta multicast, conditie in care mai multi useri se pot conecta la stream fara sa solicite bandwidth suplimentar la origine). Dupa ce incheiem capitolul asta, click pe "Play" si verificam receptia streamului pe o tableta/laptop prin introducerea adresei pe care tocmai am configurat-o.

5. Schimbarea canalului se face de la caz la caz. Daca tuner-ul TV e digital, citeva canale ale unui transponder vor fi accesibile prin meniul "Playback" si submeniul "Program".

O comanda posibila, de salvat ca "bat" intr-o atare situatie ar fi:

vlc dvb-t:// :dvb-frequency=10758000 :dvb-adapter=0 :dvb-device=0 --sout=#duplicate{dst=http{mux=asf,dst=xxx.xxx.xx.xx:8080/},select="program=1",dst=http{mux=asf,dst=xxx.xxx.xx.xx:8081/},select="program=2",dst=http{mux=asf,dst=xxx.xxx.xx.xx:8082/},select="program=3"}

Daca TV tunerul nu e digital, e necesar sa intram in meniu si sa schimbam frecventa, emitind, astfel, un alt canal. Aici ne vine in ajutor Team Viewer-ul.

Eu, unul, s-ar putea sa incerc.

Friday, April 12, 2013

Un nou executabil pentru programele Mediadirect

Domnilor, dupa cum bine stiti, cei de la serviciul Mediadirect s-au decis sa adauge niste formule de securitate ceva mai avansata la streamurile lor, din pricina pirateriei care, dupa cum anuntasem, de cind au lansat oferta canalelor de filme TCM/FilmBox a devenit tot mai agresiva. Deocamdata n-au schimbat algoritmul de "handshake" pentru serverele rtmp, asa se face ca inca Rtmp-urile merg, daca stii care servere mai sint operationale. Ca si dintre servere au cazut citeva (au dedicat mai multe servere inregistrarilor de tip Video-on-Demand, care probabil ca aduc bani mai multi, ori mai repede, si au mai suprimat din serverele dedicate canalelor live).

Propun, in cele ce urmeaza, un fisier .bat continind 82 de canale Mediadirect, inclusiv FilmBox-urile, TCM si Comedy Central. In mod normal as fi ezitat sa mai fac public orice fisier legat de acest operator, pentru ca publicindu-l pur si simplu imi scad propriile sanse de acces. Cu toate astea, dupa citeva mesaje primite pe forumul pasionatilor de filme romanesti (se stie deja care e asta), unde vizionarea si inregistrarea programelor TVR e de baza, m-am decis sa adresez aceasta dilema in mod public. Cunosc riscurile, dar mi le asum, luind in calcul si alte citeva consideratii. Ca de pilda:

a) publicul care imi acceseaza blog-ul este deja suficient de avizat in particularitatile Web-TV si IPTV incit sa nu inteleaga ce deserviciu isi face republicind adresele respective.

b) metoda de vizionare se bazeaza, asa cum stiti, pe Rtmpdump, un executabil care se conecteaza la stream si-l extrage (face asa-zis-ul "dump") pe calculator. Chiar in conditiile in care unii ar vrea s-o imprumute pentru website-ul propriu, unde il ineaca pe om cu reclame si cu scripturi de prost gust, n-ar putea, pentru ca stream-urile nu merg fara acest program.

c) am parolat fisierul cu denumirea site-ului pe care va aflati, cu exceptia faptului ca litera de inceput nu e mica, ci mare. In felul asta rezolv (poate intr-o mai mica masura, e drept) si problema vizitelor celor din strainatate. N-o sa-si bata nimeni capul cu traduceri Google pentru fisierul asta. Atentie, cei cu IP de Romania, sa stiti ca site-ul e pe .com, chiar daca veti fi redirectionati pe domeniul .ro!

In rest, stiti ce contine: un fisier .bat pentru vizionare (cu Mplayer, de data asta, si inca unul mai vechiut care se descurca nativ cu porcaria de codec audio a celor de la Mediadirect, codec care da atitea batai de cap VLC-ului) si un .bat pentru inregistrare, imbunatatit dupa ideea colegului @turtle, de a adauga in coada fisierului inregistrat data si ora la care a debutat inregistrarea, prevenind in acest fel rescrierea fisierului vechi cu unul nou.

Spot la vizionare/inregistrare!

http://www20.zippyshare.com/v/66238780/file.html



P.S Am si uitat. Comenzile importante Mplayer au fost configurate dupa cum urmeaza:

9 volumul plus
0 volumul minus
1 contrast minus
2 contrast plus
3 stralucire minus
4 stralucire plus
7 intens. culoare minus
8 intens. culoare plus
w panscan minus (zoom -)
e panscan plus (zoom +)
s face screenshot
INS aspect ratio 4:3
DEL aspect ratio 16/9
ESC iesire din player, revenire la meniu

Friday, March 22, 2013

Stick TV cu Android



Mi-am luat zilele trecute un stick TV (TV e impropriu spus, denumirea e generata mai degraba de tipul de conector cu care vine dotat respectivul stick, si anume HDMI). Dar pina la a avea facilitati reale de Media Center mai e cale lunga.

Scula e asta. Favi SmartStick. Ce are? Are Android 4.0 pe el, slab customizat (ceea ce inseamna ca permite inca multe chestii), are o telecomanda, un adaptor de prelungire pentru mufe HDMI greu accesibile ale TV-ului, un slot pentru USB (normal, nu mini) si un slot pentru mini SD. Plus o memorie interna de 4 GB, din care 1.2 sint ocupati de sistem si alte aiureli.

Ce n-are? N-are destule. In primul rind USB-ul anuntat ca suporta diverse device-uri (precum keyboard, mouse extern, etc) nu pare sa suporte mare lucru, in orice caz un keyboard simplu nu e recunoscut "plug n play". Prin setari e drept ca n-am umblat, si nici n-am incercat prea multe device-uri atasate. In orice caz comunicarea USB-to-USB cu un computer sau o tableta nu e posibila. In schimb micro-SD-ul e recunoscut imediat (am probat un 32 GB).

In al doilea rind (si nu va luati dupa ordine, pentru ca problema e esentiala) telecomanda e greu de utilizat. A fost anuntata ca avind un "air mouse", numai ca n-are asa ceva. Air mouse e cind o misti prin aer si mouse-ul se misca si el, pe ecran. In cazul acestei telecomenzi, mutarea mouse-ului se face prin taste, si e slow al dracului. Am preferat versiunea de utilizare non-mouse, in care selectia obiectelor se face cu tastele stinga-dreapta-sus-jos si Enter. Problema e ca nu poti sterge si transfera nimic in modul asta; partea proasta e ca nici un keyboard nu te-ar ajuta cine stie ce. Android-ul e, fara doar si poate, un sistem conceput pentru touchscreens - iar aceasta impresie se confirma si aici.

O alta veste proasta e ca nu poti accesa directorul "data" al sistemului de operare, pentru a modifica, sterge sau adauga scurtaturi (chestie de customizare, evident). Ca atare nu prea ai cum sa-ti plasezi pe home screen propriile scurtaturi (lucru imposibil fara touchscreen). Ceea ce s-a putut face a fost strecurarea in lista bookmark-urilor web a site-ului pe care am amplasat adresele dorite.

O veste buna e ca stick-ul vine preprogramat cu Google Play, iar daca ai timp si rabdare sa-ti introduci (cu telecomanda, cum altfel!) userul si pass-ul Gmail, o sa poti descarca cam tot ce vrei de pe acolo. O a doua veste buna e ca receptia wireless e superioara. Chiar si in conditiile unei anumite distante de router, receptia e buna.

In functionare se comporta, iarasi, bine. Chiar foarte bine. Am testat receptia programelor din pachetul WebTV Dolce (Mediadirect), din pachetul Spice TV si din categoria Sopcast-urilor. Asta, fireste, dupa ce mi-am scos peri albi instalind diverse playere (player-ul default e stift, iar vizionarea programelor in browser nu e o optiune viabila, playerul Flash e restrictiv si meniul e stufos). Neputind sa tranfer, deocamdata, nimic din afara, am creat o pagina web unde am amplasat adresele stream-urilor. Am testat circa o duzina de playere, cel mai bun dovedindu-se MX Player (Free) cu hardware acceleration (suportat de stick). Testat url-uri de tipul m3u8, sop, rtsp si rtmp. Buffering-ul dureaza circa 30-45 de secunde in primul minut, dupa care fluxul video e cursiv, chiar si in cazul programelor cu rezolutie si bitrate mare. DolceSport, FilmBox, DocuBox si Digisport-urile au functionat fara probleme. La fel si programul Mooz HD. Unele glitch-uri scurte la programul HBO din pachetul Spice, lucru la care ma asteptam (in testele de pe PC aceste freeze-uri au o durata mult mai mare). Sopcast-urile se incarca mai greoi (lucru stiut, datorita peering-ului divergent) si, in cazul programelor comprimate H264 reproducerea e oarecum granulata (problema de player, dar si de dimensiunea ecranului pe care le privesti).

Una peste alta, la 50 de dolari, cred ca stick-ul merita investitia, desi nu e simplu de manipulat. Il recomand, cu rezerve pentru cei care n-au rabdare pentru customizari.

Wednesday, March 20, 2013

Live stream recording cu PotPlayer

In ultimul timp am inceput sa folosesc tot mai mult PotPlayer ca aplicatie destinata vizionarii de stream-uri live (constat ca la anumite stream-uri rtsp procedura de buffering default e mai buna decit aceea utilizata de VLC). Una peste alta, PotPlayer-ul are si posibilitatea (ca si VLC, de altfel) de a oferi posibilitati de trecording (si transcoding) al streamului. Ca atare puteti si urmari si inregistra fluxul video in acelasi timp. Procedura e chiar mai simpla decit in cazul VLC-ului.

Indicam adresa stream-ului in meniul Open URL.



Streamul demareaza in player.



Clic dreapta pe ecran, selectam meniul Video, optiunea Capture.



Pentru a beneficia de intreaga gama de optiuni ale capturii (codecuri, dimensiune, rezolutie, FPS) alegem meniul "Video: Capture" si nu "Quick capture".



Selectam un director in care va fi amplasat fisierul inregistrat, apui alegem codecurile aferente si formatul video. Pentru procesoare mai slabe recomand captura in formatul MPEG 2 necomprimat (cu conditia se exista spatiu suficient pe harddisc).



Odata ce captura se deruleaza, acest lucru va fi indicat de meniul aferent. Din pacate acest meniu va trebui sa-l "ascundeti" undeva printr-un colt al ecranului in timpul vizionarii. Se pare ca softerii PotPlayer-ului au uitat sa implementeze si optiunea auto-hide pentru meniul de recording live.



Spor la capturi!

Tuesday, March 12, 2013

Un pachet de softuri pentru evitat restrictiile p2p

Dupa cum stiti, majoritatea softurilor p2p (peer-to-peer) au restrictii. Cine descarca fisiere de pe torrents, stie ca trebuie sa faca ratie, adica sa lase torrentul deschis ca sa ia si altii. Cine descarca de pe Emule, stie ca trebuie sa aiba un numar de credite pentru a lua cu viteza mai mare. In principiu, fiecare soft destinat unei retele p2p (Bittorrent, Ed2k, Limewire, Gnutella) vine cu restrictii si cu constringeri.

Aceste constringeri e bine, fireste, sa nu le inselam, pentru ca ala e spiritul sharing-ului; daca iei, sa si dai. Cu toate astea, trebuie sa admit ca 1.e imposibil sa faci credit pe Emule daca iei fisiere pe care nu le ia toata lumea 2.e imposibil sa faci ratie pe Bittorrent daca nu stai la seed 24/24 cu fisiere de interes maxim. Drept pentru care trebuie sa recunosc ca si softurile care urmaresc sa pacaleasca serverele si sa elimine atari restrictii sint utile.

Am facu un pachet cu unele dintre softurile de evitat restrictiile p2p actualizate la zi. Unele sint softuri de crescut ratia pe torrent, altele de descarcat fisiere nedetectat, altele de download fara credit (Emule, Gnutella). Spor.

http://www66.zippyshare.com/v/15575216/file.html
Parola
eustiu

Si nu uitati, stati totusi la seed. Dar nu pentru ratie. Ci ca sa le faceti si altora un bine.

Citirea textului "ascuns" ca user neinregistrat

Pe multe forumuri am vazut ca se practica "ascunderea" textului, mai exact integrarea acestuia intr-un cod Javascript care-l face inaccesibil userilor neinregistrati sau celor care nu au apasat un buton de multumesc (de la caz la caz). Solutia e simpla, pentru ca orice text ascuns in Javascript este prezent in sursa paginii respective. Cu toate astea, o comanda "View source" sau "Page source" data in browser nu e de ajuns. Trebuie selectat textul cu pricina, si apoi revelata sursa acestuia.