Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
subsonic [Le 11/08/2015, 05:04] – [Fork de Subsonic : Supersonic & Madsonic] beaver | subsonic [Le 09/11/2020, 17:03] (Version actuelle) – [Fork de Subsonic : Supersonic & Madsonic] 176.127.64.199 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ====== Subsonic ====== | ||
+ | |||
+ | {{ subsonic_logo.png? | ||
+ | |||
+ | Subsonic est un serveur de contenu audio et vidéo en streaming avec une interface web (via http ou https) et une gestion de plusieurs utilisateurs, | ||
+ | |||
+ | La musique est encodée à la volée, par défaut grâce à [[ffmpeg|FFmpeg]] et lame en MP3 pour l' | ||
+ | |||
+ | Subsonic est traduit dans de nombreuses langues, dont le français, avec 24 thèmes par défaut. Il offre la possibilité de lire la musique dans le lecteur web, comme dans un lecteur externe (avec gestion des playlists), de contrôler la musique à distance grâce à votre téléphone, | ||
+ | |||
+ | Des applications existent pour Android, iPhone/ | ||
+ | Il y a une gestion de la bande passante en limitant le bitrate, la musique sera automatiquement réencodée avec le bon débit binaire. | ||
+ | |||
+ | Subsonic fonctionne sur la plupart des plateformes grâce à la technologie Java, notamment sur Windows, Mac, Linux et autres variantes Unix. | ||
+ | <note important> | ||
+ | |||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | * Disposer des [[: | ||
+ | * Disposer d'une connexion à Internet configurée et activée. | ||
+ | * Avoir [[: | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | Si vous souhaitez essayer Subsonic avant de l' | ||
+ | |||
+ | Téléchargez ensuite la dernière version de Subsonic [[http:// | ||
+ | |||
+ | Double-cliquez ensuite sur le fichier, l' | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | Le [[http:// | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | Félicitation!, | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | Vous obtiendrez quelque chose semblable à ceci, je dis semblable car vous aurez pas ce thème par défaut à votre premier lancement de Subsonic ;-) : | ||
+ | |||
+ | {{subco.png? | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | Vous pouvez changer la langue en vous rendant dans **Settings** > **Personal**, | ||
+ | |||
+ | Une fois le ou les dossiers contenant les médias choisi, le service est fonctionnel. L' | ||
+ | |||
+ | Il existe différentes [[http:// | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | |||
+ | =====Configuration===== | ||
+ | |||
+ | Si vous désirez changer le port de Subsonic, allouer plus de mémoires vives à Java ou bien sais-je .. vous devez éditer le fichier suivant: | ||
+ | |||
+ | <code bash>/ | ||
+ | |||
+ | Voici à quoi ressemble ce fichier de configuration: | ||
+ | |||
+ | {{visubsonic.png? | ||
+ | |||
+ | Étudions maintenant à quoi servent les variables de ce fichier m( : | ||
+ | |||
+ | La variable **SUBSONIC_ARGS** permet de définir le port d' | ||
+ | |||
+ | La variable **SUBSONIC_USER** permet de définir sous quel utilisateur tournera le Daemon Subsonic, par défaut Subsonic utilise root !. | ||
+ | |||
+ | Les logs de Subsonic se trouvent dans: | ||
+ | |||
+ | <code bash>/ | ||
+ | |||
+ | Voici à quoi ressemble le subsonic.log : | ||
+ | |||
+ | {{logsubsonic.png? | ||
+ | |||
+ | |||
+ | ===== Utiliser un certificat signé par une autorité de certification avec Subsonic ===== | ||
+ | |||
+ | Ici nous allons voir comment utiliser un certificat acheté chez [[http:// | ||
+ | |||
+ | Ici nous verrons pas comment générer un CSR etc, je pars du principe que vous avez votre .zip avec ces 3 fichiers: | ||
+ | |||
+ | * AddTrustExternalCARoot.crt. | ||
+ | | ||
+ | * PositiveSSLCA2.crt. | ||
+ | |||
+ | * trucmuche.crt. | ||
+ | | ||
+ | et bien sûr votre **clé privé**. | ||
+ | |||
+ | Nous devons absolument stopper notre daemon Subsonic auparavant: | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | |||
+ | |||
+ | Bon trêve de blabla on passe à la pratique, voici les commandes que vous devez effectuer pour utiliser votre certificat signé par l' | ||
+ | |||
+ | Ici nous allons combiner **3 fichiers**, **votre clé privé**, **le certificat du serveur**, et le **certificat intermédiaire** pour se faire nous allons faire: | ||
+ | |||
+ | <code bash>cat myserver.key trucmuche.crt AddTrustExternalCARoot.crt > subsonic.crt</ | ||
+ | |||
+ | Ensuite nous devons convertir notre certificat **subsonic.crt** à la norme [[http:// | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | Ensuite nous devons créer notre **Java keystore** pour se faire nous allons faire ceci: | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | Ensuite nous importons notre **subsonic.keystore** dans le **subsonic-booter-jar-with-dependencies.jar**. | ||
+ | |||
+ | <code bash>zip / | ||
+ | |||
+ | Et voilà, ensuite vous devez configurer votre **/ | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | |||
+ | Chercher la ligne suivante: | ||
+ | |||
+ | |||
+ | {{subsonic_args.png? | ||
+ | |||
+ | Modifier le **--port=blah** et le **--https-port=blah**, | ||
+ | |||
+ | Ensuite nous relançons notre daemon Subsonic via la commande suivante: | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | Et zou **magie** | ||
+ | |||
+ | {{comodo.png? | ||
+ | |||
+ | |||
+ | ===== Les entrailles de Subsonic ===== | ||
+ | |||
+ | ==== Dossier de musique ==== | ||
+ | |||
+ | {{dossiermusiquestest.png? | ||
+ | |||
+ | La fonction **Dossier de musique** permet de déterminer l' | ||
+ | |||
+ | La fonction **Scan media folders** permet de déterminer la date à laquelle Subsonic effectuera un scan de vos dossiers ou de votre dossier .. à fin de mettre à jour votre bibliothèque. | ||
+ | |||
+ | La fonction **Scan media folders now** permet de scanner dans l' | ||
+ | |||
+ | La fonction **Fast access mode** permet de minimiser l' | ||
+ | |||
+ | La fonction **Clean-up database** permet comme indique la fonction, de nettoyer la base de donnée de Subsonic, Subsonic stocke des informations dans vos fichiers multimédias. | ||
+ | |||
+ | |||
+ | |||
+ | ==== Général ==== | ||
+ | |||
+ | {{general1.png? | ||
+ | |||
+ | < | ||
+ | |||
+ | **Extensions des fichiers audio**: Permet d' | ||
+ | |||
+ | **Extensions des fichiers vidéo**: Permet d' | ||
+ | |||
+ | **Extensions des fichiers des jaquettes**: | ||
+ | |||
+ | **Index**: Permet de régler l' | ||
+ | |||
+ | **Articles à ignorer**: Permet de lister les articles à ignorer hors de la création de l' | ||
+ | |||
+ | **Raccourcis**: | ||
+ | |||
+ | **Langue par défaut**: Permet de choisir la langue utilisé par défaut. | ||
+ | |||
+ | **Thème par défaut**: Permet de choisir le thème utilisé (couleurs, apparence, polices, | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Avancé ==== | ||
+ | |||
+ | {{subsonicavance.png? | ||
+ | |||
+ | **Nombre maximum de jaquettes**: | ||
+ | |||
+ | **Limite de la vitesse de téléchargement (Kbps)**: Permet de limiter l' | ||
+ | |||
+ | **Port pour les flux non-SSL**: Cette option n'est utile que si vous utilisez Subsonic sur un serveur utilisant la technologie SSL (HTTPS). Certain lecteurs (comme Winamp) ne supportent pas le streaming par SSL. Si vous ne voulez pas que le flux soit transmis par SSL, indiquez un numéro de port pour une utilisation http (généralement 80 ou 4040). Notez que ce flux ne sera pas chiffré, (0 = Désactivé). | ||
+ | |||
+ | **Autoriser l' | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | ==== Encodage | ||
+ | |||
+ | {{subsonic_avance.png? | ||
+ | |||
+ | Je sais ce que vous allez me dire, mais c'est quoi ce charabia 8-o, vous allez voir c'est relativement simple, ici je vais vous détailler les options de ffmpeg ;-). | ||
+ | |||
+ | |||
+ | === Audio === | ||
+ | |||
+ | ffmpeg **-i %s -ab %bk -v 0 -f mp3** - | ||
+ | |||
+ | |||
+ | Cette commande a pour but de ré-encoder à la volée les formats audio: **ogg, oga, aac, m4a, flac, wav, wma, aif, aiff, ape, mpc, shn** au format **mp3** nous allons voir à quoi ressemble cette commande. | ||
+ | |||
+ | * Le **-i** signifie input file, ce qui signifie entrée du fichier. | ||
+ | | ||
+ | * Le **-ab** permet de choisir le codec. | ||
+ | | ||
+ | * Le **-v** est le mode verbose ou bien verbeux en Français ;-), par défaut il est à 0. | ||
+ | | ||
+ | * Le **-f** veut dire force, ici on force le format MP3. | ||
+ | | ||
+ | * **%s** est le chemin du fichier à transcoder. | ||
+ | |||
+ | * **%bk** est le maximum du débit binaire utilisé pour l' | ||
+ | |||
+ | |||
+ | ==== Modification des sources ==== | ||
+ | |||
+ | Se placer dans le dossier contenant les sources : | ||
+ | <code bash>cd subsonic-code</ | ||
+ | |||
+ | Le patch à appliquer est le suivant : | ||
+ | <code bash> | ||
+ | =================================================================== | ||
+ | --- subsonic-main/ | ||
+ | +++ subsonic-main/ | ||
+ | @@ -647,14 +647,11 @@ | ||
+ | } | ||
+ | |||
+ | | ||
+ | - return isLicenseValid(getLicenseEmail(), | ||
+ | + return true; | ||
+ | } | ||
+ | |||
+ | | ||
+ | - if (email == null || license == null) { | ||
+ | - return false; | ||
+ | - } | ||
+ | - return license.equalsIgnoreCase(StringUtil.md5Hex(email.toLowerCase())); | ||
+ | + return true; | ||
+ | } | ||
+ | |||
+ | | ||
+ | @@ -1264,36 +1261,8 @@ | ||
+ | | ||
+ | | ||
+ | Date date = getLicenseDate(); | ||
+ | - | ||
+ | - if (email == null || date == null) { | ||
+ | - licenseValidated = false; | ||
+ | - return; | ||
+ | - } | ||
+ | - | ||
+ | | ||
+ | - | ||
+ | - HttpClient client = new DefaultHttpClient(); | ||
+ | - HttpConnectionParams.setConnectionTimeout(client.getParams(), | ||
+ | - HttpConnectionParams.setSoTimeout(client.getParams(), | ||
+ | - HttpGet method = new HttpGet(" | ||
+ | - "& | ||
+ | - try { | ||
+ | - ResponseHandler< | ||
+ | - String content = client.execute(method, | ||
+ | - licenseValidated = content != null && !content.contains(" | ||
+ | - if (!licenseValidated) { | ||
+ | - LOG.warn(" | ||
+ | - } | ||
+ | - String[] lines = StringUtils.split(content); | ||
+ | - if (lines.length > 1) { | ||
+ | - licenseExpires = new Date(Long.parseLong(lines[1])); | ||
+ | - } | ||
+ | - | ||
+ | - } catch (Throwable x) { | ||
+ | - LOG.warn(" | ||
+ | - } finally { | ||
+ | - client.getConnectionManager().shutdown(); | ||
+ | - } | ||
+ | + return; | ||
+ | } | ||
+ | |||
+ | | ||
+ | Index: pom.xml | ||
+ | =================================================================== | ||
+ | --- pom.xml (revision 4101) | ||
+ | +++ pom.xml (working copy) | ||
+ | @@ -102,6 +102,13 @@ | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | + < | ||
+ | + < | ||
+ | + < | ||
+ | + < | ||
+ | + < | ||
+ | + </ | ||
+ | + </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | @@ -170,4 +177,4 @@ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | -</ | ||
+ | \ No newline at end of file | ||
+ | +</ | ||
+ | </ | ||
+ | |||
+ | Pour appliquer un patch, copiez le contenu du patch ci-dessus dans un nouveau fichier nommé " | ||
+ | <code bash> | ||
+ | |||
+ | Il reste à compiler tout ça : | ||
+ | <code bash>mvn -P debian install</ | ||
+ | Maven va télécharger de nombreux plugins, cela peut prendre du temps ;) Si tout s'est bien passé, vous devriez obtenir : | ||
+ | <code bash> | ||
+ | [INFO] Reactor Summary: | ||
+ | [INFO] | ||
+ | [INFO] Subsonic .......................................... SUCCESS [1.889s] | ||
+ | [INFO] Subsonic Main ..................................... SUCCESS [15.290s] | ||
+ | [INFO] Subsonic Booter ................................... SUCCESS [5.499s] | ||
+ | [INFO] Subsonic Installer for Debian ..................... SUCCESS [10.345s] | ||
+ | [INFO] ------------------------------------------------------------------------ | ||
+ | [INFO] BUILD SUCCESS | ||
+ | [INFO] ------------------------------------------------------------------------ | ||
+ | [INFO] Total time: 33.277s | ||
+ | [INFO] Finished at: Thu Jan 09 22:06:15 CET 2014 | ||
+ | [INFO] Final Memory: 13M/106M | ||
+ | [INFO] ------------------------------------------------------------------------ | ||
+ | </ | ||
+ | |||
+ | Il ne nous reste plus qu'à installer le paquet créé : | ||
+ | <code bash> | ||
+ | |||
+ | ==== Ça marche pas... ==== | ||
+ | |||
+ | Si vous avez un problème de compilation (le patch fonctionne pour la révision 4101, version 5.0 de Subsonic, mais il ne pourrait plus fonctionner pour les versions ultérieures), | ||
+ | |||
+ | Tout d' | ||
+ | <code bash> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Ensuite, pour le fichier de licence proprement dit " | ||
+ | <code bash> | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | public boolean isLicenseValid(String email, String license) { | ||
+ | return true; | ||
+ | } | ||
+ | | ||
+ | private void validateLicense() { | ||
+ | String email = getLicenseEmail(); | ||
+ | Date date = getLicenseDate(); | ||
+ | licenseValidated = true; | ||
+ | return; | ||
+ | }</ | ||
+ | | ||
+ | Voici la source avec la [[http:// | ||
+ | |||
+ | |||
+ | ===== Désinstallation ===== | ||
+ | |||
+ | Pour supprimer cette application, | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Fork de Subsonic : Supersonic & Madsonic ===== | ||
+ | |||
+ | Il est à noter que Subsonic étant davantage reconnu comme un logiciel [[wpfr> | ||
+ | |||
+ | Un autre [[wpfr> | ||
+ | |||
+ | Sans parler [[https:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Voir aussi ===== | ||
+ | |||
+ | * **(en)** [[http:// | ||
+ | * [[jinzora|Jinzora]], | ||
+ | * [[iceCast]], | ||
+ | * [[gnump3d|Gnump3d]], | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | // |