Darkice avec toutes les librairies sur Raspberry Pi

Dans ce tutoriel, nous allons compiler Darkice pour qu’il puisse diffuser en  AAC, AACplus, MP3 et OGG. L’installation se fera sur un Raspberry Pi 3 avec Raspbian Jessie Lite. Je n’ai pas réussi à diffuser en OPUS, probablement à cause de la configuration de mon serveur Icecast. Et en AAC+, vous ne pourrez régler le bitrate que jusqu’à 64kbps, Darkice n’en prend malheureusement pas en charge le codec Fraunhofer FDK AAC.

Préparation

$ sudo nano /etc/apt/sources.list

Et supprimer le # devant deb-src (Ctrl+O pour enregistrer et Ctrl+X pour quitter)

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install dh-autoreconf libtool libtool-bin libasound2-dev libfftw3-dev build-essential devscripts autotools-dev fakeroot dpkg-dev debhelper autotools-dev dh-make quilt ccache libsamplerate0-dev libpulse-dev libaudio-dev lame libjack-jackd2-dev libasound2-dev libtwolame-dev libfaad-dev libflac-dev libmp4v2-dev libshout3-dev libmp3lame-dev libopus-dev

Compilation de libfaac

$ mkdir /tmp/build && cd /tmp/build
$ apt-get -b source libfaac0 faac
$ sudo dpkg -i libfaac0_1.28-6_armhf.deb libfaac-dev_1.28-6_armhf.deb faac_1.28-6_armhf.deb
$ cd

Compilation de Libaacplus

$ mkdir src && cd src
$ wget http://tipok.org.ua/downloads/media/aacplus/libaacplus/libaacplus-2.0.2.tar.gz
$ tar -xzf libaacplus-2.0.2.tar.gz
$ cd libaacplus-2.0.2
$ ./autogen.sh --host=arm-unknown-linux-gnueabi --enable-static --enable-shared
$ make
$ sudo make install
$ sudo ldconfig
$ sudo reboot

Compilation et installation de Darkice

$ cd src
$ apt-get source darkice
$ cd darkice-1.2
$ ./configure --with-faac --with-faac-prefix=/usr/lib/arm-linux-gnueabihf --with-opus --with-opus-prefix=/usr/lib/arm-linux-gnueabihf --with-pulseaudio --with-pulseaudio-prefix=/usr/lib/arm-linux-gnueabihf --with-lame --with-lame-prefix=/usr/lib/arm-linux-gnueabihf --with-alsa --with-alsa-prefix=/usr/lib/arm-linux-gnueabihf --with-jack --with-jack-prefix=/usr/lib/arm-linux-gnueabihf --with-aacplus --with-aacplus-prefix=/usr/local --with-samplerate --with-samplerate-prefix=/usr/lib/arm-linux-gnueabihf --with-vorbis --with-vorbis-prefix=/usr/lib/arm-linux-gnueabihf
$ make
$ sudo make install

Configuration de Darkice

$ cd 
$ sudo nano /etc/darkice.cfg

Ajoutez et modifiez le texte suivant, pour l’adapter à votre serveur icecast :

# this section describes general aspects of the live streaming session
[general]
duration         = 0            # duration of encoding, in seconds. 0 means forev$
bufferSecs      = 5            # 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         = /dev/dsp     # OSS DSP soundcard device for the audio input
device            = plughw:1,0  # OSS DSP soundcard device for the audio input
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 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          = aac               # format of the stream: ogg vorbis
bitrate         = 128                # bitrate of the stream sent to the server
server          = xx.xx.xxx.xxx   # host name of the server
port            = 8000               # port of the IceCast2 server, usually 8000
password        = xxxx            # source password to the IceCast2 server
mountPoint      = xxxx           # mount point of this stream on the IceCast2 server
name            = Darkice AAC   # name of the stream
description     = Darkice AAC   # description of the stream
url             = https://technic2radio.fr # URL related to the stream
genre           = my own        # genre of the stream
public          = yes           # advertise this stream?

[icecast2-1]
bitrateMode     = cbr           # average bit rate
format          = mp3           # format of the stream: ogg vorbis
bitrate         = 128           # bitrate of the stream sent to the server
server          = xx.xx.xxx.xxx # host name of the server
port            = 8000          # port of the IceCast2 server, usually 8000
password        = xxxx          # source password to the IceCast2 server
mountPoint      = xxxx.mp3      # mount point of this stream on the IceCast2 s$
name            = Darkice MP3   # name of the stream
description     = Darkice MP3   # description of the stream
url             = https://technic2radio.fr # URL related to the stream
genre           = my own        # genre of the stream
public          = yes           # advertise this stream?

Enregistrez et quittez l’éditeur (Ctrl+O puis Ctrl+X)
Vous pouvez maintenant lancer Darkice avec la commande suivante :

$ darkice

Auto start

$ sudo apt-get install daemontools daemontools-run
$ sudo mkdir /etc/service/darkice
$ sudo chmod 2775 /etc/service/darkice
$ sudo touch /etc/service/darkice/run
$ sudo nano /etc/service/darkice/run

Et ajoutez le texte suivant

#!/bin/sh
echo Running service
exec darkice

IP fixe

$ sudo nano  /etc/dhcpcd.conf

Et ajoutez le texte suivant

interface eth0
static ip_address=192.168.1.234/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

Notes et liens

2 réflexions au sujet de “Darkice avec toutes les librairies sur Raspberry Pi”

  1. Bonjour,
    j’ai vu qu’on ne pouvait pas aller plus haut que 64 kbps en AAC+
    Est ce que c’est quand même techniquement possible dans le cadre ou l’on dispose d’un serveur distant ?

    Merci d’avance pour la réponse

    Répondre

Laisser un commentaire