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
Next revision Both sides next revision
raspberry:audio_stream [2018/10/07 21:25]
admin
raspberry:audio_stream [2018/10/08 00:58]
admin [Icecast]
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 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      = 0                 +---- 
-  # duration of encoding, in seconds. 0 means forever bufferSecs    +==== Stream ==== 
-  # size of internal slip buffer, in seconds reconnect     yes +just run: 
-  # reconnect to the server(s) if disconnected   +  $ darkice  
-  # this section describes the audio input that will be streamed [input] device        hw:1,           +and then open in your browser: 
-  # Alsa soundcard device for the audio input sampleRate    48000             +  http://192.168.178.112:8000/pisound.mp3 
-  # sample rate in Hz. try 48000, 96000 or 192000 bitsPerSample 16                +Icecast2 Status one will find here: 
-  # bits per sample. try 16 channel       2                 +  http://192.168.178.112:8000
-  # 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 streammp3 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  +
-   +
-run: +
-  $ darkice  +
  
 ---- ----
-==== Link ==== +==== Links ==== 
-[[https://www.hackster.io/pranciskus/internet-radio-station-f0bdc1]]+[[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/]]\\
  
 ---- ----