Gestione di video con PiPlay

PiPlay è un ottimo strumento per la gestione dei vari emulatori disponibili in rete.
Dopo averlo un po’ configurato, l’ho installato in auto, insieme a una bella coppia di televisorini da 7 pollici. Questi sono reperibili nei vari mercatini al costo di circa 33€ e quindi rappresentano un’ottima alternativa ai dispositivi all in one, quelli per intenderci dotati di lettore dvd.
L’esperienza d’uso di un raspberry, per quanto riguarda la disponibilità di software è pressoché totale. Esistono ottimi lettori di video e anche ottimi emulatori di console per videogiochi.

Il problema principale di PiPlay risiede nel fatto che permette unicamente di “giocare” e non di vedere video e film (magari scaricati dalla rete, oppure rippati).
D’altra parte, PiPlay è configurato con python e, con un po’ di dimestichezza con l’uso di questo linguaggio, si può fare davvero di tutto.
Quindi, perché non provarci ?

Innanzitutto è meglio utilizzare una distribuzione di Linux da installare in una macchina virtuale. Io ho scelto ubuntu.
Accedere alla distribuzione creando un utente pi e password raspberry (le stesse di piplay) e scaricare, usando firefox, il progetto sorgente del launchmenu.py da github pimame-menu per poterlo vedere ed eventualmente modificare/testare.
Scompattare lo zip dentro la directory /home/pi/pimame.
Se non è già disponibile installare python con il comando apt-get install python3
Infine può essere comodo installare anche sqlite, in quanto gran parte della configurazione di piplay viene mantenuta su questo db.
Poi installare sqlite per vedere l’attuale contenuto del menu di piplay. Dare il comando
# sudo apt-get install sqlite3 libsqlite3-dev

Il database di configurazione di piplay è situato in /home/pi/pimame/pimame-menu/database/config.db

Usando sqlite si possono vedere le varie voci di menu che vengono visualizzate a video, con i vari emulatori disponibili. A queste voci se ne possono aggiungere altre che, per esempio, permettano di vedere video salvati nella memoria della scheda.
Per fare questo, aprire con sqlite il db config.db, poi andare in “Browse data” e selezionare la tabella menu_items. Le varie voci sono facilmente identificabili nell’elenco e si dividono in emulators, games e utilities, nella colonna type.
La colonna “visible” permette di rendere visibile o invisibile le varie voci. Io ho reso invisibili alcuni emulatori che non mi interessano in modo da occupare il minimo dello spazio a video.

Nella colonna “Command” va indicato il comando da lanciare quando si seleziona la voce dall’interfaccia di piplay. Io ho aggiunto per fare una prova il comando omxplayer “/home/pi/video/prova.avi” per testare un semplice video.

Infine, per gestire il caricamento automatico dei video presenti all’interno di una certa cartella, ho predisposto un’apposita funziona in python. Aprire con gedit il file che si trova in /home/pi/pimame/pimame-menu/pmmenu/pmconfig.py e aggiungere, dopo la init, la funzione:

def getVideos(self,directory,menu_items):
#carica i video dalla directory
for root, directories, files in os.walk(directory):
for filename in files:
filepath = os.path.join(root,filename)
menu_item = {'id':100,'label':filename,'icon_id':'','type':'utility','visible':1,'command':'vlc --play-and-exit '+filepath,'rom_path':'','include_full_path':1,'include_extension':0,'override_menu':1,'icon_file':'','icon_selected':'','position':'','scraper_id':''}
menu_items.append(dict(menu_item))

e il richiamo dentro la _init_ con la seguente istruzione:
self.getVideos('/home/pi/pimame/video',config['menu_items'])
subito sotto l’istruzione config['menu_items'] = [dict(zip(keys,value)) for value in values]

Questo fa si che all’interno dell’interfaccia principale di piplay compaiano in automatico anche tutti i video della cartella video e che questi possano essere lanciati cliccando sulla loro icona. Questo file pmconfig.py va poi trasferito nella medesima posizione del raspberry, avendo l’accortezza di modificare l’istruzione vlc (di ubuntu) nella corrispondente omxplayer del mitico raspberry.

Et voilà, il video è servito!

Aggiornamento del 17 Aprile 2016

Su schermi molto piccoli e con bassa risoluzione, quali quelli che si acquistano nelle fiere realizzati apposta per i cruscotti delle automobili, le scritte dei riquadri di piplay sono molto piccole. Praticamente invisibili.

I riquadri che rappresentano film riportano un titolo che non si riesce nemmeno a leggere.

Per ovviare bisogna intervenire in un file che si trova sotto themes/default/theme.yaml, ricercando al suo interno la scritta

num_items_per_row

e

item_height

e correggerle di conseguenza.

Nel mio caso erano num_items_per_row = 6 e item_height = 220. Li ho trasformati in num_items_per_row=2 e item_height=300.

Così facendo le scritte sono tornate ad essere ben visibili, anche se per arrivare agli ultimi film della lista ora bisogna scorrere diverse pagine.