Daniele in questo post e in questo post spiega come costruirsi un mediacenter senza dover affrontare i costi eccessivi delle versioni offerte dai vari produttori. I post sono molto interessanti ed effettivamente permettono con una spesa di circa 800 euro di raggiungere lo scopo prefissato. Come sempre più cose fai da solo e più risparmi. Quindi prendo alla lettera il titolo del post di Daniele "Come costruirsi un MediaCenter" e provo a spingermi oltre e a fare di meglio (che in questo caso equivale a + economico).
Un Media Center alternativo può essere costruito con una Xbox del costo di circa 150 euro e un pc server dotato di scheda tv chiuso in uno sgabuzzino. Può essere benissimo riciclato un pc di casa, non importa se esteticamente è brutto e rumoroso, tanto deve stare ben lontano dal televisore. A questo punto con una spesa massima di 300 euro (considerando l'acquisto della scheda tv, del telecomando e sperando di avere già un pc da riciclare) abbiamo concluso la parte hardware. Per quanto riguarda il software, sull'xbox andrà installato l'applicativo free XboxMediaCenter, e sul server basterà condividere delle cartelle contenenti i nostri file multimediali. Ora abbiamo già pronto e utilizzabile un sistema per la riproduzione di file multimediali. E per la tv? Qui inizia il difficile (ma anche la parte divertente per uno sviluppatore). La parte di interfaccia con la tv è tutta da sviluppare, quindi armato di directshow, un protocollo di streaming compatibile con l'xboxmediacenter (io ho scelto XStream) mi sono messo a scrivere il codice. L'architettura è semplice, bisogna creare un grafo dshow che catturi il flusso audio video dalla scheda tv e spedisca lo stream sulla rete secondo il protocollo di streaming scelto. Inoltre, bisogna creare un canale di controllo tra xbox e il server per la gestione dei canali. Basterà scrivere uno scrippettino python (xbmc è in grado di eseguire script in questo linguaggio) che apre un socket verso il server e manda i comandi ricevuti dal telecomando. Ovviamente il server dovrà catturare questi comandi e controllare il tuner della scheda tv (tutto attraverso dshow e quindi in maniera indipendente dal tipo di scheda tv) per cambiare i canali ed avviare eventuali registrazioni dei programmi. La parte interessante è che lato client non bisogna scrivere codice, l'xbmc ci mette già a disposizione tutto quello che ci serve.
Cosa è stato fatto fino ad ora? Per ora è stata sviluppata tutta la parte che si interfaccia con le directshow (un activex in c++) ed è praticamente conclusa anche la parte che implementa il protocollo di streaming. Cosa manca? Poco (per iniziare ad avere qualche risultato) e abbastanza (per avere un sistema completo) allo stesso tempo.... Va scritto l'applicativo (penso sarà scelto c# come linguaggio) di controllo del server che pilota l'activex, eventualmente gestise la guida tv (tramite protocollo xmltv) e la registrazione dei programmi.
Ricapitolando... Molto lavoro è stato fatto, ne manca ancora parecchio ma a breve si potranno vedere dei risultati. Volevo mettere su un progetto su sourceforge (licenza lgpl) ma aspettavo di avere a disposizione almeno una piccola demo. Se però pensate che possa aver senso farlo prima, posso già mettere online la parte già scritta. Mi manca una cosa fondamentale però... Il nome del progetto!!!
Con questo è tutto, se qualcuno ha suggerimenti, idee oppure partecipare allo sviluppo del progetto, lasciate un commento!!! Intanto vi terrò aggiornati sulla situazione:)