{{tag>xbmc mediacenter mysql rpi}} ====== XBMC ====== [[http://xbmc.org/|Xbmc]] est un très bon logiciel de mediacenter, vous trouverez plus d'infos sur leur site, mais dans les grands lignes il gère des bibliotheques de fichiers audio et video, permet de catégoriser ces fichiers (films, séries, musique, ....) puis ensuite d'en lancer la lecture. Il se base sur les noms de fichiers pour extraire le titre des musiques/films, les categoriser et se charge ensuite d'aller récupérer des images comme l'affiche du film, la pochette de l'album pour vous les afficher : voir [[http://xbmc.org/about/|screenshots]]. ====== Installation ====== Il existe plusieurs façons d'installer xbmc : * installer xbmc depuis votre distribution * utiliser un liveCD fourni ici http://xbmc.org/download/ * utiliser une distribution spécialisée qui integre xbmc en y ajoutant ses plugins, themes et autres personalisations comme par exemple l'excellent [[http://openelec.tv/|OpenELEC]] J'utilise deux de ces manières, qui vont donc être détaillées : * liveCD c'est la methode la plus simple (mais comme c'est trop simple de graver un CD, j'utilise un liveCD en boot PXE, voir les details [[mediacenter:xbmc_pxe|sur cette page]] ;p) * distribution spécialisée [[http://xbian.org/|XBian]] qui est une distribution spécialisée pour Xbmc sur [[http://www.raspberrypi.org/|Raspberry Pi]] ===== Configuration ===== ==== Configuration d'une bibliothèque partagée et persistente ==== L'inconvénient du liveCD est qu'a priori les changements effectués dans la bibliothèque sont perdus à chaque arret/redémarrage de votre médiacenter. Fort heureusement il est possible de configurer Xbmc pour qu'il utilise une base de données MySQL externe. L'intérêt de cette solution est de pouvoir utiliser cette même bibliothèque partagée entre plusieurs mediacenter (par exemple un dans le salon et un dans la chambre), en partageant également le status lu/non lu. Cette astuce ne fonctionne que si tous les mediacenter utilisent la meme version de XBMC (plus précisement si chacune des versions de XBMC utilisées utilisent effectivement la même version de schéma de base de donnée, par exemple cela fonctionne entre une version 12.0 Frodo et une version 12.0-rc3) ==== Prérequis ==== * Disposer d'un serveur MySQL qui tourne sur une machine qui doit idealement rester allumée tout le temps (par exemple votre NAS) * Partager vos fichiers multimédias de telle facon que chacun des mediacenter puisse y accéder de la même maniere (partage réseau samba, NFS, uPnP, ...) On va supposer dans la suite que : * le serveur MySQL utilise l'IP 192.168.0.1 (on prefere ne pas utiliser de noms DNS meme si disponible pour des raisons de performance xbmc) * les mediacenter utilisent les adresses IP 192.168.0.40 et 192.168.0.50 * le mot de passe d'acces a la base de données est "coincoin" Il faut bien entendu que vous adaptiez ces valeurs a votre installation/besoins. ==== Acces serveur MySQL ==== Sur votre serveur MySQL il faut créer un utilisateur disposant de droits corrects : create user 'xbmc'@'192.168.0.40' identified by 'coincoin' ; grant ALL on `xbmc_video%`.* TO 'xbmc'@'192.168.0.40' identified by 'coincoin' ; grant ALL on `xbmc_music%`.* TO 'xbmc'@'192.168.0.40' identified by 'coincoin' ; Si vous avez un 2e mediacenter il faut renouveller cette creation pour la 2e adresse IP : create user 'xbmc'@'192.168.0.50' identified by 'coincoin' ; grant ALL on `xbmc_video%`.* TO 'xbmc'@'192.168.0.50' identified by 'coincoin' ; grant ALL on `xbmc_music%`.* TO 'xbmc'@'192.168.0.50' identified by 'coincoin' ; Les amateurs auront noté que : - nous n'avons pas créé de base de donnée : xbmc le fera - ces droits sont violents mais ils permettent à xbmc de créer et d'utiliser à sa guise les bases de données nommées "xbmc_video*" et "xbmc_music*", en pratique xbmc ajoute un numéro de version au nom de la base, par exemple pour la version 12 Frodo, ce numéro sera 75 pour la base vidéo ==== Configuration de Xbmc ==== Cette configuration particuliere doit s'effectuer en éditant un fichier XML, le fichier advancedsettings.xml situé sous linux dans le répertoire /home/xbmc/.xbmc/userdata/ . Il faut y ajouter la configuration des bibliotheques " ..." et "..." suivantes (a l'intérieur des balises et ). En ajoutant nos paramètres : * mysql 192.168.0.1 xbmc_video xbmc coincoin * mysql 192.168.0.1 xbmc_music xbmc coincoin On obtient donc au final un fichier complet qui chez moi ressemble à ca : true cputemp gputemp 30 true mysql 192.168.0.1 xbmc_video xbmc coincoin mysql 192.168.0.1 xbmc_music xbmc coincoin Relancez ensuite Xbmc et ajoutez les partages réseau comme si de rien n'etait ====== Plugins recommandés ====== * [[http://wiki.xbmc.org/index.php?title=Add-on:Missing_Movie_Scanner|Missing Movie Scanner]] pour savoir quels sont les fichiers qui n'ont pu être importés dans la bibliothèque (erreur de match du titre par exemple). Ce plugin fonctionne comme son nom l'indique sur les films, mais aussi comme il ne l'indique pas sur les séries :-). Ce plugin peut également être téléchargé directement sur [[http://code.google.com/p/xbmc-missing-movie-search/]] * [[http://wiki.xbmc.org/index.php?title=Add-on:XBMC_Subtitles|XMBC subtitles]] pour rechercher rapidement des sous titres. L'installation se fait simplement via le bouton sous titre de l'OSD lors d'une lecture. Il faut ensuite lui indiquer un répertoire qu'il utilisera pour télécharger/lire les sous titres si vous ne voulez pas qu'il dépose ces fichiers à coté des films/séries. ce plugin fait maintenant partie intégrante de xbmc * [[http://wiki.xbmc.org/index.php?title=Add-on:XBMC_Check_Previous_Episode|XMBC Check Previous Episode]] qui vous avertit si vous tentez de lire un épisode d'une série alors que vous n'avez pas l'episode précédent dans votre médiathèque ou vous ne l'avez pas vu. A noter que cela ne fonctionne pas dans le cas d'episodes manquants a la fin d'une saison par exemple :/ . ====== Un peu de ralage ====== C'était trop beau pour être vrai je n'avais pas encore ralé ;-) Mais grâce a cette nouvelle version (12.x Frodo), ils ont réussi à rendre inutile / faux l'affichage des vidéos "dernièrement ajoutées" : en depuis la version 12 la date prise en compte pour ce tri n'est plus la date d'ajout de ce fichier dans la bibliothèque, ce qui parait correct, mais bel et bien la date du fichier lui même. (voir la FAQ [[http://wiki.xbmc.org/index.php?title=XBMC_v12_%28Frodo%29_FAQ#Recently_added_videos_seem_out_of_order|ici]]). Pour corriger cela se passe dans le fichier advancedsettings.xml : ajouter 0 entre les balises videolibrary : au final ca peut ressembler à ca : 0 ====== Couper le signal video (hdmi) lorsque xbmc passe en mode screensaver sur Raspberry Pi ====== J'ai longtemps cherché comment pouvoir couper le signal video (hdmi) lorsque xbmc passe en mode screensaver, sans [[http://fr.wikipedia.org/wiki/High-Definition_Multimedia_Interface#Consumer_Electronics_Control_.28CEC.29_:_contr.C3.B4le_.C2.AB_inter-.C3.A9l.C3.A9ments_.C2.BB|CEC]] vu que mes écrans ne gèrent pas cette nouvelle techno. Actuellement XBMC envoie un signal de noir ce qui empêche l’écran de passer en veille complètement ce qu'il fait quand il n'a pas du tout de signal. Grace au travail d'un certain Dlinny il est possible de réaliser ca : il suffit d'installer son extension téléchargeable sur son compte [[https://github.com/Dlinny/script.screensaver.xbian-hdmi-off]]. Le seul problème est que pour contourner un bug d'ecran qui reste noir à la reprisede l'activité, xbmc doit etre redémarré, ce qui est fait automatiquement par cet économiseur d'écran. Pour l'installation : * télécharger en tant que zip (ou cliquez sur [[https://github.com/Dlinny/script.screensaver.xbian-hdmi-off/archive/master.zip|ce lien]] pour les gens pressés ;-) ) * copier ce fichier sur la Raspberry Pi par exemple dans le homedir de votre utilisateur xbmc : vous devriez savoir faire * aller dans les parametres de xbmc pour installer une nouvelle extension "depuis un fichier zip" et selectionner ce fichier * aller ensuite dans les parametres xbmc pour choisir l'economiseur d'ecran "HDMI Off" fraïchement apparu testé sous Open-ELEC version 4.2 avec un ecran branché en DVI via un cable hdmi/DVI sur la Raspberry Pi ====== Ce qui me manque encore ====== Dans le(s) truc(s) dehouf qu'il faudrait que je trouve un moyen de faire : * Trouver un moyen (avec des tags ???) de pouvoir différencier les films en VF des films en VO (des films multi-langues en plus éventuellement). Actuellement la séparation est en grosse partie faite par des sources distinctes VF/VO et la langue associée dans le scrapper. Idem pour les séries aussi bien sur Si vous avez des info la dessus merci de faire offre =) ====== References ====== * http://wiki.xbmc.org/index.php?title=HOW-TO:Sync_multiple_libraries/Setting_up_XBMC * http://wiki.xbmc.org/index.php?title=HOW-TO:Share_libraries_using_MySQL * http://wiki.xbmc.org/index.php?title=XBMC_databases/Version_tableSQL * https://github.com/xbianonpi/xbian/issues/82