This is an old revision of the document!


Audio Stream

Streaming audio over internet using Icecast and Darkice on RaspbianStretch.


Soundcard

check the soundcard:

$ cat /proc/asound/modules

and

$ cat /proc/asound/cards

that could look like that:

0 [ALSA           ]: bcm2835_alsa - bcm2835 ALSA
                    bcm2835 ALSA
1 [K6             ]: USB-Audio - Komplete Audio 6
                    Native Instruments Komplete Audio 6 at usb-3f980000.usb-1.5, high speed

Icecast & Darkice

Install Icecast and Darkice.
update:

$ sudo apt-get update

install icecast2 and darkice:

$ sudo apt-get install icecast2 darkice

if asked type in hostname and password

hostname: localhost
password: ????

change config:

$ sudo nano /etc/darkice.cfg

to:

# 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        = hw:1,0           # Alsa soundcard device for the audio input 
sampleRate    = 48000            # sample rate in Hz. try 48000, 96000 or 192000 
bitsPerSample = 16               # bits per sample. try 16 
channel       = 2                # channels. 1 = mono, 2 = stereo.  
                                   # Only stereo mode is supported by pisound.  
# 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   = cbr              # variable bit rate 
bitrate       = 128 
format        = mp3              # format of the stream: mp3 
quality       = 0.8              # quality of the stream sent to the server 
server        = localhost        # host name of the server 
port          = 8000             # port of the IceCast2 server, usually 8000 
password      = hackme           # source password to the IceCast2 server 
mountPoint    = pisound          # mount point of this stream on the IceCast2 server 
name          = pisound          # name of the stream 
description   = DarkIce on pisound # description of the stream 
url           = http://localhost # URL related to the stream 
genre         = my genre         # genre of the stream 
public        = no               # advertise this stream? 
#localDumpFile = recording.mp3   # Record also to a file

or:

[general]
duration        = 0      # duration in s, 0 forever
bufferSecs      = 1      # buffer, in seconds
reconnect       = yes    # reconnect if disconnected

[input]
device          = plughw:1,0 # or `pulse' for Pulseaudio
sampleRate      = 22050   # sample rate 11025, 22050 or 44100
bitsPerSample   = 16      # bits
channel         = 1       # 2 = stereo

[icecast2-0]
bitrateMode     = vbr       # variable bit rate (`cbr' constant, `abr' average)
quality         = 1.0       # 1.0 is best quality
format          = mp3       # format. Choose `vorbis' for OGG Vorbis
bitrate         = 128       # bitrate
server          = 10.10.10.11 # IP address of the IceCast server
port            = 8000      # port for IceCast2 access
password        = ******    # source password to the IceCast2 server
mountPoint      = radio.mp3 # mount point on the IceCast2 server .mp3 or .ogg
name            = radio

run:

$ darkice