HOMEPLAYER : * Configuration iTunes (avec plugin de diffusion NiceCast)

Un article de Wiki FreePlayer.org.


Menu principal

Sommaire

Informations : iTunes avec logiciel de diffusion Nicecast

Tutoriel proposé par : ekyme


  • Je lance iTunes
  • Je lance "Nicecast" qui permet de streamer la musique jouée par iTunes
  • J'ai ajouté une radio dans homeplayer : http://monadresseip:8000/listen.m3u
  • J'ai placé cette radio en favori
  • Depuis ma télévision j'écoute cette "radio" via homeplayer
  • Je commande iTunes via mon iPhone (mais il y a d'autres télécommandes possibles)

Nicecast est disponible ici : site de Nicecast

Pour aller un peu plus loin et simuler une airportexpress, j'ai fait un tout petit script accessible une fois iTunes lancé :

tell application "Nicecast"
start broadcast
end tell

Donc typiquement, je suis dans iTunes. Je veux passer au salon : je clique sur ce script et hop, la radio est lancée. Il n'y a plus qu'à l'écouter depuis la télévision et homeplayer.

L'application sur iPhone est "Remote", faite par Apple (gratuite).

Elle est disponible ici (lien direct vers l'iTunes Store) : application Remote pour iPhone

Informations (méthode alternative) iTunes avec logiciel de diffusion IceCast

Il existe un moyen de mettre en place une solution similaire mais totalement gratuite. En revanche, il va falloir mettre les mains dans le cambouis.

Donc, pré-requis : avoir installé les Apple Developer tools et si le terminal effraie, ne pas faire ceci.

Principe :

  • Soundflower: cette application permet de rediriger le son du mac (router). Une fois le logiciel installé, si iTunes est en train de jouer un titre, en allant dans les préférences systèmes, "son" : on peut choisir "Soundflower" en sortie et/ou en entrée. Une autre application pourra ainsi récupérer ce que lit iTunes ;
  • Nicecast utilise icecast : nous allons donc l'installer. Icecast est un serveur de flux audio ;
  • Il nous faudra un streamer (c'est à dire un "truc" qui encode ce qu'il va récupérer de soundflower pour le mettre dans un format lisible par le serveur icecast) : darkice fait ça.

Darkice peut être alimenté par un contenu sonore de différentes natures mais pas par iTunes directement (c'eût été trop simple !!) ni par soundflower. Il faut encore un petit quelque chose qui s'appelle Jack qui est assez similaire à soundflower mais qui a l'avantage d'être compatible avec darkice.

Résumé :

iTunes joue de la musique récupérée par Soundflower qui la transmet à Jack, qui l'envoie à Darkice. Darkice stream cette musique vers notre serveur Icecast. Dès lors, on pourra accèder depuis sa télévision, une fois Homeplayer lancé, à une radio qui correspond à ce flux.

Installation :

  • Soundflower : c'est un .dmg, disponible ici
  • Jack : pour OSX, disponible ici
  • icecast : ça se corse. Le plus simple : utiliser macports.
  • Une fois Macports installé, lancer le terminal.
  • Pour installer le serveur icecast, entrer la ligne de commande suivante :
port install icecast
  • Vous remarquerez que Macports installe tout dans le répertoire /opt
  • Je pensais pourvoir installer darkice de la même manière mais darkice n'apparait plus être distribué par macports. Tant pis on va tout faire à la main.
  • Avant de pouvoir installer Darkice, il faut installer des dépendances (les petits machins qui vont faire l'encodage)
port install faac 
port install faad2 
port install flac 
port install id3lib 
port install lame 
port install libid3tag 
port install libvorbis
  • On peut installer darkice. On télécharge la source ici, on décompresse le dossier puis avec le terminal, on se positionne dans le dossier
cd dossier contenant darkice

on configure correctement :

./configure --prefix=/opt/local/ --with-lame-prefix=/opt/local/ --with-vorbis-prefix=/opt/local/ --with-faac-prefix=/opt/local/

Remarquez qu'on précsise le chemin /opt/local/ pour que Darkice retrouve ses dépendances là où Macports les a installées puis:

make
make install

Configuration :

Avant de lancer les services, ceux ci doivent être configurés.

Icecast : son fichier de configuration est icecast.xml (disponible dans /opt/local/etc) Pas grand chose à y changer sinon :

<admin-user>hackme</admin-user>
<admin-password>hackme</admin-password>

où l'on spécifie un identifiant et un mot de passe qui permettra d'administrer le serveur icecast.

Darkice :

son fichier de configuration est darkice.cfg (à coté de icecast.xml). c'est ici qu'on précise à darkice qu'il va recevoir du contenu en provenance de Jack et qu'il doit le streamer vers notre serveur icecast.

Voici une proposition de configuration :

# sample DarkIce configuration file, edit for your needs before using
# see the darkice.cfg man page for details
# this section describes general aspects of the live streaming session
[general]
duration        = 0        # duration of encoding, in seconds. 0 means forever
bufferSecs      = 2         # size of internal slip buffer, in seconds
reconnect       = yes       # reconnect to the server(s) if disconnected
# this section describes the audio input that will be streamed
[input]
device          = jack_auto # OSS DSP soundcard device for the audio input  
                           # the string jack, to  have  an  unconnected Jack port, 
                           # or jack_auto to  automatically  make Jack connect to the first source.
sampleRate      = 44100     # sample rate in Hz. try 11025, 22050 or 44100
bitsPerSample   = 16        # bits per sample. try 16
channel         = 2         # channels. 1 = mono, 2 = stereo
# this section describes a streaming connection to an IceCast server
# there may be up to 8 of these sections, named [icecast-0] ... [icecast-7]
# these can be mixed with [icecast2-x] and [shoutcast-x] sections
# [icecast-0]
# bitrateMode     = cbr       # constant bit rate
# bitrate         = 96        # bitrate of the mp3 stream sent to the server
# quality         = 0.8       # encoding quality
# server          = yp.yourserver.com
#                             # host name of the server
# port            = 8000      # port of the IceCast server, usually 8000
# password        = hackme    # source password to the IceCast server
# mountPoint      = sample96  # mount point of this stream on the IceCast server
# name            = DarkIce trial
#                             # name of the stream
# description     = This is only a trial
#                             # description of the stream
# url             = http://www.yourserver.com
#                             # URL related to the stream
# genre           = my own    # genre of the stream
# public          = yes       # advertise this stream?
# this section describes a streaming connection to an IceCast2 server
# there may be up to 8 of these sections, named [icecast2-0] ... [icecast2-7]
# these can be mixed with [icecast-x] and [shoutcast-x] sections
[icecast2-0]
bitrateMode     = abr       # average bit rate
format          = mp3       # vorbis    # format of the stream: ogg vorbis
bitrate         = 96        # bitrate of the stream sent to the server
server          = 127.0.0.1
                           # host name of the server
port            = 8000      # port of the IceCast2 server, usually 8000
password        = hackme # source password to the IceCast2 server
mountPoint      = iTunesRadio  # mount point of this stream on the IceCast2 server
name            = iTunesRadio # name of the stream
description     = ITunes depuis mon Mac vers ma télé
                           # description of the stream
url             = http://192.168.0.14/iTunesRadio
                           # URL related to the stream
genre           = my own    # genre of the stream
public          = no       # advertise this stream?
# this section describes a streaming connection to a ShoutCast server
# there may be up to 8 of these sections, named [shoutcast-0] ... [shoutcast-7]
# these can be mixed with [icecast-x] and [icecast2-x] sections
#  [shoutcast-0]
#  bitrateMode     = vbr       # variable bit rate mode
#  quality         = 0.5       # encoding quality
#  server          = 127.0.0.1
#                              # host name of the server
#  port            = 8001      # source port of the ShoutCast server, usually 8001
#  password        = hackme    # source password to the ShoutCast server
#  name            = DarkIce trial
#                              # name of the stream
#  url             = http://www.yourserver.com
#                              # URL related to the stream
#  genre           = my own    # genre of the stream
#  public          = yes       # advertise this stream?
#  irc             = irc.yourserver.com
#                              # IRC info related to the stream
#  aim             = aim here  # AIM info related to the stream
#  icq             = I see you too
#                              # ICQ info related to the stream
#

Utilisation

  • Dans le panneau de préférences, "Son", établir comme sortie audio Soundflower (2ch) ;
  • Lancer Jackpilot et lancer le serveur Jack ;
  • Lancer Icecast via le terminal :
icecast -c icecast.xml &
  • Lancer Darkice via le terminal :
darkice -c darkice.cfg &
  • Jouer de la musique avec iTunes
  • Dans la bibliothèque Homeplayer, ajouter une radio avec le chemin suivant :
http://192.192.192.192:8000/iTunesRadio

où 192.192.192.192 est à remplacer par l'adresse du mac serveur.

  • Depuis la télévision, via Homeplayer, accédez à cette radio.