This is an old revision of the document!
Table of Contents
Audio Stream
Streaming audio over internet using Icecast and Darkice on RaspbianStretch.
Soundcard
from: https://www.instructables.com/id/Test-Sound-Card-and-Speakers-in-Raspberry-Pi/
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
The ALSA Card ID is 0 and the USB-Audio Card ID is 1
Identify the Soundcard Chip's Device ID
$ ls /proc/asound
gives:
ALSA card0 card1 cards devices hwdep K6 modules pcm seq timers version
means there are two sound cards 0 and 1
$ ls /proc/asound/card1
gives:
id midi0 pcm0c pcm0p stream0 usbbus usbid usbmixer
Identify the device id:
$ cat /proc/asound/card1/pcm0c/info
give:
card: 1 device: 0 subdevice: 0 stream: CAPTURE id: USB Audio name: USB Audio subname: subdevice #0 class: 0 subclass: 0 subdevices_count: 1 subdevices_avail: 1
and:
$ cat /proc/asound/card1/pcm0p/info
gives:
card: 1 device: 0 subdevice: 0 stream: PLAYBACK id: USB Audio name: USB Audio subname: subdevice #0 class: 0 subclass: 0 subdevices_count: 1 subdevices_avail: 1
therefore in both cases the ID is 0.
Install ALSA utilities:
$ sudo apt-get update $ sudo apt-get install alsa-utils
open ALSO mixer:
$ alsamixer
with F6 select the soundcard.
Test the Sound Card Output:
$ speaker-test -Dplughw:1,0 -c2 -tsine $ speaker-test -Dplughw:1,0 -c2 -twav
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