Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
raspberry:audio_stream [2018/10/07 21:32]
admin
raspberry:audio_stream [2020/12/14 14:35]
admin [Links]
Line 1: Line 1:
 ===== Audio Stream ===== ===== Audio Stream =====
-Streaming audio over internet using icecast and darkice on RaspbianStretch.\\+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:
 +  subdevices_avail:
 +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:
 +  subdevices_avail:
 +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,      # 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: update:
   $ sudo apt-get update   $ sudo apt-get update
-install icecast2 and darkice+install icecast2: 
-  $ sudo apt-get install icecast2 darkice+  $ sudo apt-get install icecast2
 if asked type in hostname and password if asked type in hostname and password
   hostname: localhost   hostname: localhost
   password: ????   password: ????
-change config+start icecast2
-  $ sudo nano /etc/darkice.cfg +  $ sudo service icecast2 start 
-to: +
-# this section describes general aspects of the live streaming session [general]                 +
-# duration of encoding, in seconds. 0 means forever +
-duration      = 0  +
-   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,           +
-  # 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 +
 ---- ----
-[general] +==== Stream ==== 
-duration        0      # duration in s, 0 forever +just run: 
-bufferSecs      1      # buffer, in seconds +  $ darkice  
-reconnect       = yes    # reconnect if disconnected+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
  
-[input] +---- 
-device          plughw:1,0 # or `pulse' for Pulseaudio +==== Links ===
-sampleRate      22050   # sample rate 11025, 22050 or 44100 +[[https://www.instructables.com/id/Test-Sound-Card-and-Speakers-in-Raspberry-Pi/]]\\ 
-bitsPerSample   16      # bits +[[https://www.hackster.io/pranciskus/internet-radio-station-f0bdc1]]\\ 
-channel         1       # 2 stereo +[[https://technicalustad.com/live-streaming-of-mp3-using-darkice-and-icecast2-on-raspberry-pi/]]\\ 
- +[[https://w7apk.com/streaming-radio]]\\ 
-[icecast2-0+[[http://rabarar.github.io/blog/2015/07/02/darkice-and-icecast/]]\\
-bitrateMode     = vbr       # variable bit rate (`cbr' constant, `abr' average) +
-quality         = 1.0       # 1.0 is best quality +
-format          = mp3       # formatChoose `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  +
  
 ---- ----
-==== Link ==== +==== License ==== 
-[[https://www.hackster.io/pranciskus/internet-radio-station-f0bdc1]]+ 
 +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]].\\ 
 + 
 +<html> 
 +<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>  
 +</html>
  
 ---- ----