===== Audio Stream ===== Streaming audio over internet using Icecast and Darkice on a Raspberry Pi 3 and 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 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 ---- ==== Darkice ==== Install Darkice.\\ update: $ sudo apt-get update get the files and install them: $ wget https://github.com/x20mar/darkice-with-mp3-for-raspberry-pi/blob/master/darkice_1.0.1-999~mp3+1_armhf.deb?raw=true $ mv darkice_1.0.1-999~mp3+1_armhf.deb?raw=true darkice_1.0.1-999~mp3+1_armhf.deb $ sudo apt-get install libmp3lame0 libtwolame0 $ sudo dpkg -i darkice_1.0.1-999~mp3+1_armhf.deb 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 = plughw: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 # constant bit rate ('vbr' variable 'abr' average) bitrate = 128 format = mp3 # format of the stream: mp3 ('vorbis' for OGG) quality = 0.8 # quality of the stream sent to the server (1.0 ist best) server = localhost # host name of the server port = 8000 # port of the IceCast2 server, usually 8000 password = ???????? # source password to the IceCast2 server mountPoint = pisound.mp3 # 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 = hits # genre of the stream public = no # advertise this stream? #localDumpFile = recording.mp3 # Record also to a file ---- ==== Icecast ==== Install Icecast.\\ update: $ sudo apt-get update install icecast2: $ sudo apt-get install icecast2 if asked type in hostname and password hostname: localhost password: ???? start icecast2: $ sudo service icecast2 start ---- ==== Stream ==== just run: $ darkice and then open in your browser: http://192.168.178.112:8000/pisound.mp3 Icecast2 Status one will find here: http://192.168.178.112:8000 ---- ==== Links ==== [[https://www.instructables.com/id/Test-Sound-Card-and-Speakers-in-Raspberry-Pi/]]\\ [[https://www.hackster.io/pranciskus/internet-radio-station-f0bdc1]]\\ [[https://technicalustad.com/live-streaming-of-mp3-using-darkice-and-icecast2-on-raspberry-pi/]]\\ [[https://w7apk.com/streaming-radio]]\\ [[http://rabarar.github.io/blog/2015/07/02/darkice-and-icecast/]]\\ ---- ==== License ==== This manuals is made by **Wolfgang Spahn** 2018-20.\\ Except where otherwise noted, content on this wiki is licensed under the following license: [[http://creativecommons.org/licenses/by-nc-sa/4.0/"|Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License]].\\ Creative Commons License ----