sabato 11 giugno 2011

Un media server su PC

Nel precedente post abbiamo mostrato il modello generale di un impianto per ascoltare la musica liquida, ed osservato che viene sempre più spesso proposto un sistema di archiviazione centralizzato e specializzato per i media video e audio, anche in alta definizione, il media server.

Vediamo quindi ora in maggiore dettaglio come funziona un media server, cominciando dalla configurazione più semplice (ma non la più facile da realizzare): un media server implementato su un PC. In questa configurazione un normale PC fisso (nel nostro caso un Mac) svolge il ruolo di archivio multimediale, rendendo disponibili i contenuti a tutti i client presenti nella rete domestica, purché siano conformi allo standard Universal Plug 'n Play (UPnP) ora standardizzato come DLNA.

I client potrebbero essere network player audio o console per giochi, o anche un altro PC, magari un notebook connesso ad un DAC e tramite questo all'impianto Hi-Fi. In questo caso un Vaio con Windows 7.

Una soluzione utile per riusare componenti già presenti in casa o per sperimentare questa soluzione, ma una installazione non così semplice come sembrerebbe, che ha richiesto diversi tentativi, sicuramente istruttivi per capire come funzionano questi componenti, e che quindi propongo in questo post, confidando che siano utili anche a qualcun altro.

Usando lo schema a blocchi già proposto, la configurazione sarà quella mostrata sotto, con la parte PC Mac in verde e quella notebook in azzurro.

Scegliere un media server
Ce ne sono veramente molti e molti sono gratuiti, come sempre, si inizia da questi ultimi. Su Mac il più noto è Plex, che però era giudicato particolarmente pesante in alcuni forum. Quello che proprio nessuno vuole è "windowsizzare" un Mac, quindi la scelta è caduta su un altro prodotto nuovo, che si presenta molto bene, TVMobili.


La installazione è molto semplice e con pochi clic si ha il software pronto all'uso, bisogna poi fargli vedere i file musicali che si vogliono condividere, e per questo scopo è presente una interfaccia molto intuitiva, nel pannello "setting", e inoltre le librerie musicali (ad esempio quella di iTunes) vengono caricate automaticamente, come in molti prodotti analoghi. Ovviamente ho inserito file musicali di tutti i tipi, Flac a 16 bit e a 24 bit, Wav idem, Alac a 24/96, compressi AAC e MP3.



Il servizio in rete
Si tratta solo di verificare se da Windows 7 si vede, e anche qui tutto funziona senza grandi difficoltà. Dal pannello di controllo Rete si vede il nuovo servizio (dopo aver dato l'assenso al Firewall di Windows). probabilmente non è lo stesso con Windows XP, perché si tratta di una evoluzione inserita in Vista/7, a quanto ho letto. Aprendo il service si attiva Windows Media Player e parte la riproduzione, come ci si attende. Tutto bene, ma solo per MP3, per i noti limiti del player di casa Windows in configurazione standard. In particolare, niente Flac, a meno di acrobazie che proprio mi rifiuto di fare per principio. Si decidesse Microsoft a fornire un lettore adeguato.

Il player UPnP
Usiamo quindi un player un po' più universale e versatile, ovviamente è il solito Foobar2000, al quale abbiamo già dedicato alcune guide. Bisogna installare il componente "terze parti" foo_upnp e il media player mette a disposizione un completo ambiente UPnP, con player, server e render. Il primo è quello che serve a noi. Dal menu View > UpNP Browser si apre una finestra pop-up che consente di selezionare il server TVMobili e di arrivare alle canzoni che vogliamo ascoltare, che sono inserite automaticamente nella finestra playlist di Foobar.

Scegliendo brani in MP3 e poi in AAC va tutto bene, in pochi attimi inizia la riproduzione esattamente come ci si aspetta. Magari si troverà qualche differenza nella visualizzazione dei contenuti non musicali, qualche altra configurazione da fare, ma la funzione di base c'è e funziona perfettamente.

Passando ad un formato lossless in alta definizione (Alac 24/96) arriva la prima sorpresa (NB: in foobar per ascoltare Alac, il formato lossless di Apple, alternativo a Flac, occorre installare su Foobar2000 un componente aggiuntivo).
Si scopre che la dimensione del buffer può essere critica per audio a 24 bit: usavo sul notebook 1970 ms ed in un caso è andato in memora insufficiente (pur avendo 4GB di RAM), ho dovuto impostare il valore a 770 ms. Dipende ovviamente da cos'altro stiamo facendo sul PC, in precedenti prove non ho avuto problemi. E in tutti i casi l'inizio dell'ascolto non è immediato, occorre prima che si riempa il buffer. Possono essere necessari anche 30" o più.
Con buffer piccolo però si rischiano interruzioni se in rete ci sono rallentamenti (es. qualcuno in casa che sta facendo qualche altra cosa). Il valore di 770 ms sembra essere un buon compromesso.

E gli altri formati?
La seconda sorpresa è un po' più fastidiosa, il player non legge file audio Wav (sia 16/44,1 sia 24/96) e neanche Flac (anche in questo caso SD e HD). Non è dichiarata la incompatibilità né lato server né lato client e quindi la cosa è inaspettata. E' vero che lo standard UPnP non contemplava il Flac (ma il Wav sì) ma tutte le implementazioni successive lo hanno inserito.
In particolare i file in formato Flac non vengono proprio visti dal browser UPnP e quindi non vengono inseriti nella playlist. Quelli Wav vengono invece inseriti ma, se 24/96, vanno in errore con questa diagnostica:

Unrecoverable playback error: Unsupported stream format: 32000 Hz / 24-bit / 1 channels  (24/96 WAV)

Se invece sono 16/44.1 dopo un po' più tempo vanno comunque in errore con quest'altro messaggio:

(Unsupported format or corrupted  file): "http://192.168.0.2:30888/__contentStreamUPnP/e0ed165a6d142d93b88c501a640e6467/TVMOBiLi/0-29721fe5257a862adddd946aa383b1ffx77904y20z1307129798"

Strano che ci fosse una incompatibilità così evidente, ho cercato tra i post e i forum e non ho trovato nulla che potesse chiarire il problema In alcuni thread molto tecnici alcuni scrivono che il formato Flac non è supportato in modo nativo in UPnP, e che la implementazione specifica (codice Mime) in foo_upnp non è conforme a quella normalmente usata nei media server. Stessa spiegazione per i Wav, ancora più contorta perché pare si possa forzare una conversione durante la trasmissione. Ho provato anche questo e nulla cambiava.  Ho provato allora ad inserire io questo quesito, ma dopo diversi giorni e un paio di sollecitazioni (altri post) nessuna risposta è giunta.

Un altro player
Va bene, c'è un problema di incompatibilità, nel mondo degli standard accade. Sarà lato player o lato server? Il player sembra un componente più semplice, per il quale esistono più alternative, quindi partiamo da qui. E si scopre che di alternative non ce ne sono poi molte.
Winamp era dato per player Flac con un plugin che lo estendeva a player UPnP/DLNA, chiamato On2Share. Andandolo a cercare si scopre però che si tratta però di un prodotto (tedesco) piuttosto vecchio, non c'è neanche più il sito e il dominio. Il prodotto si trova però ancora in giro, sui soliti siti di dowload (quelli legali). Installato e provato funziona, individua il server UPnP, mostra la directory musicale nella playlist di Winamp, come promesso, e però tutto si ferma qui, perché Winamp poi la playlist non la suona. Incompatibilità con Winamp che nel frattempo è andato avanti? In ogni caso i file Flac non li vedeva neanche On2Share.


Passiamo ad un altro player veramente universale, un fantastico prodotto free superiore a tutti i prodotti a pagamento: il ben noto VideoLAN, o VLC, un software gratuito, sviluppato da anni da ottimi programmatori in giro per il mondo, che suona e mostra ogni formato al meglio. E supporta anche UPnP. Più o meno.


Difatti nella versione per Windows il modulo "services discovery" che serve appunto per attivare il servizio di ricerca in rete di server UPnP attivi, pur se documentato - vedi nel seguito la documentazione sul wiki on-line del prodotto - non si attiva proprio.

When VLC is compiled with UPNP support, you will still need to enable UPNP service discovery:
  • either on command line via $ vlc --services-discovery upnp_intel
  • or in the playlist menu: File/Service discovery/UPNP
Then discovered UPNP servers will be listed on the playlist.

Quindi non è possibile navigare tra i contenuti musicali come si fa con il browser di foo_upnp. 


La sorpresa è però che nella versione per Mac la funzionalità esiste e viene mostrata. Quindi sembra proprio essere una omissione nella distribuzione per Windows. In qualche forum viene data infatti questa spiegazione, pare perché ancora non stabile in questo ambiente (anche se esiste da 5 anni o più), sia stata riservata solo alle distribuzioni per Mac e per Linux. Sempre cercando sui forum si trovano anche dei sorgenti che sembrano dei fix per questi problemi, ma modificare il kit di distribuzione o ricreare l'eseguibile con questi sorgenti, senza documentazione, è oltre le mie capacità.

Il workaround
Si può però tentare un'altra strada. Poiché i messaggi di errore di foo_upnp restituiscono l'indirizzo di rete http, come si è visto prima, e VideoLAN consente di indicare l'Url, ho provato a lanciare il file remoto in questo modo. E funziona, sia in Wav 16/44.1 sia 24/96. L'ascolto parte subito e senza problemi. I Flac, come dicevo prima, non vengono proprio visualizzati, ma ho aggirato anche questo problema con un trucco. Rinominati in mp3, foo_upnp li vede e si possono lanciare. Arriva poi subito il messaggio di errore, ma con la indicazione dell'Url, e quindi si possono lanciare anche loro con VLC. E funziona perfettamente anche in questo caso, come si vede nell'immagine sotto per Poinciana nella esecuzione di Ahmad Jamal.



Perfettamente per modo di dire perché, non potendo navigare, la funzionalità che ho individuato è praticamente inutile. In ogni caso ho potuto provare che si può fare, sia TVMobili sia UpNP lo consentono, se solo si trovasse un player compatibile con TVMobili, cosa che foo_upnp non è, a meno che qualcuno mi indichi un qualche sistema per superare l'ostacolo.

Tutti oggetti freeware sinora, forse devo arrendermi all'evidenza e provare qualcosa a pagamento, forse solo così si può ottenere questa funzionalità. Proviamo quindi un software citato e consigliato su alcuni forum (di VLC), dal nome invitante, 4u2Stream. C'è una versione trial e quindi si può fare una prova.
Installato, si dimostra essere molto facile nell'uso, con una interfaccia minimale ma sufficiente allo scopo. In pochi attimi funziona tutto ma ... nello stesso identico modo di foo_upnp: Flac non visibili e Wav che vanno in errore (senza messaggi però).

Cambiamo media server
Non voglio credere che quelli di foo_upnp abbiano messo sul mercato (per modo di dire, è gratuito) un prodotto per il più noto media player Flac senza un test con questi file. Quindi bisogna provare, proseguendo secondo la nota metodologia di problem solving Kepner & Trigoe, a cambiare il media server.
La scelta anche per Mac è ampia, ma poi cercando sui foirum o sulle specifiche dei singoli prodotti si scopre che alcuni non supportano tutti i formati, e in particolare non supportano il Flac. Non so come facciano a non supportarlo, visto che la decodifica la fa il player, ma evidentemente il trasferimento è in qualche modo dipendente dalla codifica.

Per non andare a tentativi e non impiegarci settimane non rimane che una scelta: passare ai media server a pagamento. E visto che ci siamo, al più diffuso attualmente: TwonkyMedia Server della PacketVideo di San Diego. Prima bisognerà provarlo, e sul sito non pare ci sia una versione trial. Non costa molto, ma visto le esperienze precedenti è meglio cercare in  rete. E la versione trial (per Mac) esce fuori, non si sa come, sui soliti siti (legali, ripeto) tipo download.it. La versione provata è la 6.0.28, l'ultima è la 6.0.32.

E stavolta, a conferma che ogni tanto per la qualità bisogna pagare, la funzionalità c'è ed è completa, per tutti i formati di file audio che avevo inserito sul Mac. Come si può vedere nelle videate che seguono, che riguardano tutti i file che ho provato.


Twonky ha una interfaccia (su PC) veramente minimale, ma molto funzionale, a scelta di tipo HTML (la più minimale, quella che ho usato) o flash (più ricca, ma sempre molto semplice nella impostazione) e con poche operazioni molto intuitive si può condividere tutta la musica (o i materiali video) che vogliamo mettere a disposizione di altri player nella rete domestica.



Il comando è Basic Setup > Sharing nel pannello Setting (quello con la chiave inglese), condividendo una directory root si condivide tutto l'albero di sottodirectory (quindi tutta la musica contenuta). Il passaggio da un pannello all'altro avviene semplicemente con i comandi di navigazione del browser, essendo la interfaccia completamente "browsed".


 Nel pannello Setting si trovano poi tutti gli altri comandi di configurazione, ma l'unico che serve obbligatoriamente è Sharing. Un altro comando interessante può essere Media Receivers, che mostra tutte le unità DLNA compatibili che, nella rete domestica, sono connesse al media server.

Nella immagine che segue la interfaccia flash, per chi la dovesse preferire.


Always On
Un'altra cosa da notare, ovvia ma importante, è che, se il media server è su PC, per essere accessibile il PC deve essere sempre acceso. Il Mac, come molti computer moderni, ha una funzione risparmio energia e si spegne automaticamente a tempo. E non si riaccende automaticamente se un receiver chiede accesso all'archivio. Se si vuole quindi seguire questa strada bisogna disabilitare questa funzione o decidere quando attivare manualmente il media server. Da notare anche che il Twonky si ripresenta in rete automaticamente una volta "risvegliato" il PC, mentre TVMobili va in una stato non gestito ed è necessario disattivarlo e riattivarlo con l'apposito comando in alto (quello col simbolo universale on/off) per farlo vedere di nuovo dalla rete.
Ulteriore conferma che Twonky è effettivamente un prodotto ben realizzato.

E la qualità?
Gli appassionati di Hi-Fi sono attentissimi ad ogni possibile degrado del suono dovuto al trasferimento dei preziosi flussi di dati che racchiudono l'amata musica, sino a discettare su cavi digitali che possono avere influenza sul suono (cosa che appare proprio impossibile), e quindi come potranno considerare questa configurazione? Dove i suddetti dati passano da un software all'altro, vengono scomposti, incapsulati, memorizzati localmente, magari codificati e decodificati. Quante alterazioni potranno subire? Quanto potranno essere sensibili alla implementazione, a software non perfettamente a punto, a differenti interpretazioni degli standard?
All'ascolto, per quello che si può appurare in questo modo, non si percepisce alcun degrado, e il player Foobar2000, come si vede nelle immagini, vede i file audio nei formati HD originali, quindi non dovrebbero esserci problemi, ma gli audiofili hanno spaccato il capello in quattro per molto meno, e non sarebbe male se riviste specializzate con laboratori in grado di fare misure controllassero i molti passaggi di questa interfaccia.

In sintesi
Tirando le somme, abbiamo visto che si può benissimo organizzare la nostra discoteca liquida usando un PC come server, magari con dischi Usb esterni. Il software per il media server, a meno che qualcuno più paziente di noi ne individui uno freeware all'altezza di Twonky, occorre acquistarlo, ma il costo non è davvero elevato, 19 $, quindi ca. 15 € al cambio attuale, per la licenza d'uso.
L'alternativa è quella di acquistare invece tutto il media server come unità separata e dedicata. Diverse società specializzate in storage server li stanno proponendo (Lacie, Iomega, Western Digital), e hanno di solito la Twonky come media server software, già incluso.
Hanno di solito capacità disco superiori a quelle interne dei PC (0,5 o 1TB e oltre) e sono progettate per essere "always on", oltre ad avere spesso altre funzioni di connettività (tipo interfaccia HDMI per TV HD).
Costano anche relativamente poco (anche meno di 200 €) e sono effettivamente una soluzione molto efficiente.

Nel seguito, come sempre, alcune videate esplicative del funzionamento di Foobar2000 connesso al media server TwonkyMedia.


Il browser UPnP di Foobar2000 mostra i servizi di rete disponibili


La selezione dell'album da ascoltare.


L'ascolto di un brano (As Tears Go By) codificato in formato Flac SD 16/44.1.


L'ascolto di un brano in formato Wav HD 24/96 (Goodbye Pork Pie Hat nella versione di Bert Jansch e John Renbourn).


Un brano in Flac HD (24/96) da Tapestry di Carole King.

0 commenti:

Posta un commento