Compiler ReadyMedia-transcode
Classé dans : Ubuntu - Mots clés : compiler, dlna, transcodeVous voulez lire des fichiers publiés par ReadyMedia (aka MiniDLNA) que votre appareil ne sait pas lire : il faut transcoder ! !
ReadyMedia-transcode
Transcoder consiste à lire votre fichier et à le publier "à la volée" sous un autre format, à le transformer.
Par défaut, ReadyMedia ne sait pas transcoder. Mais un patch a été publié pour ajouter cette fonction et il existe maintenant une version de ReadyMedia qui permet le transcoding, c'est ReadyMedia-transcode.
Pour installer ReadyMedia-transcode, il existe un PPA mais qui n'a pas été mis à jour depuis 2013 ... donc pas de version pour Ubuntu Xenial.
Il va donc falloir le compiler.
Instructions pour compilation
Voici les instructions précises pour compiler ReadyMedia-transcode. En effet, les instructions données sur le site BitBucket ne sont pas suffisamment précises.
Pour information, je suis sur Ubuntu 16.04 (Xenial), pour une autre distribution, il y aura probablement des différences ... ou pas !
(J'ai essayé de retranscrire toutes les instructions qui m'ont permis de compiler ReadyMedia-transcode ... si quelque chose ne fonctionne pas pour vous, laissez un commentaire, j'essayerai de vous donner un coup de main)
Outils pour compiler
On commence par installer le nécessaire pour compiler
$ sudo apt install autopoint autoconf automake pkg-config
Les librairies
Il faut installer les librairies liées à ReadyMedia-transcode : la version de développement, pour pouvoir comiler.
$ sudo apt install libexif-dev libjpeg-dev libvorbis-dev libsqlite3-dev libavformat-dev libavutil-dev libavcodec-dev libmagickwand-dev libid3tag0-dev libflac-dev libavformat-dev
Optionel
J'ai aussi executé les instructions suivantes (suite à un problème de compilation) ... mais pas sur que cela soit nécessaire : je crois que le problème a été résolu par une autre instruction (à moins que cela soit la combinaison des 2):
$ aclocal --force -I /opt/local/share/aclocal
et ajouter dans le fichier Makefile.am
ACLOCAL_AMFLAGS = -I /opt/local/share/aclocal
Compilation
Les étapes de préparation sont terminés, on lance la compilation.
Lancer :
$ autoreconf
Puis lancer les commandes pour générer l'exécutable :
$ ./autogen.sh
$ ./configure
$ make
$ make install
REMARQUE :
Il y a une erreur durant les instructions ci-dessus (pendant le make ?), à propos de GetText v.18 !
Pour corriger l'erreur, j'ai changé dans le fichier po/Makefile.in.in la ligne 12 pour :
GETTEXT_MACRO_VERSION = 0.19
Ca y est ReadyMedia-transcode est prêt !
Utilisation
Configuration
Il ne reste plus qu'à configurer en éditant le fichier (dans le répertoire des sources) minidlna.conf.
Pour ajouter des transcodages, il faudra ajouter des commandes de transcodage dans la partie correspondante (à partir de la ligne 86) en utilisant (par exemple) les scripts proposés.
Par exemple, pour ajouter du transcodage de vidéos, j'ajoute si nécessaire des codecs (on peut aussi vouloir gérer les containers) : dans mon cas, j'ai ajouté le codec pour h.265 (hevc), à la ligne 123.
transcode_video_codecs=vp8/theora/flv/flv1/svq3/hevc
Puis j'ajoute la commande nécessaire (en utilisant le script donné en exemple), à la ligne 126 :
transcode_video_transcoder=/usr/local/share/minidlna/transcodescripts/transcode_video
Pour utiliser des fichier qui sont sur un lecteur réseau, il faut le monter ! On suit les instructions données sur Ubuntu-FR.
Exécution
ATTENTION : les nouvelles versions de ReadyMedia générent l'exécutable au nom de minidlnad et non plus minidlna.
Pour exécuter le programme, on lance :
$ sudo /usr/local/sbin/minidlnad -f ./minidlna.conf -R -d
On peut aussi utiliser ReadyMedia comme un service (je vous laisse lire la doc sur le sujet).
Bonne lecture de medias ! !