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:54]
admin [Soundcard]
raspberry:audio_stream [2020/12/14 14:35] (current)
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 ==== ==== Soundcard ====
 +
 check the soundcard: check the soundcard:
   $ cat /proc/asound/modules   $ cat /proc/asound/modules
Line 13: Line 14:
   1 [K6             ]: USB-Audio - Komplete Audio 6   1 [K6             ]: USB-Audio - Komplete Audio 6
                       Native Instruments Komplete Audio 6 at usb-3f980000.usb-1.5, high speed                       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 ==== +==== Darkice ==== 
-Install Icecast and Darkice.\\+Install Darkice.\\ 
 update: update:
-  $ sudo apt-get update +  $ sudo apt-get update  
-install icecast2 and darkice+get the files and install them: 
-  $ sudo apt-get install icecast2 darkice +  $ wget https://github.com/x20mar/darkice-with-mp3-for-raspberry-pi/blob/master/darkice_1.0.1-999~mp3+1_armhf.deb?raw=true 
-if asked type in hostname and password + 
-  hostname: localhost +  $ mv darkice_1.0.1-999~mp3+1_armhf.deb?raw=true darkice_1.0.1-999~mp3+1_armhf.deb 
-  password: ????+ 
 +  $ sudo apt-get install libmp3lame0 libtwolame0 
 + 
 +  $ sudo dpkg -i darkice_1.0.1-999~mp3+1_armhf.deb 
 + 
 + 
 change config: change config:
   $ sudo nano /etc/darkice.cfg   $ sudo nano /etc/darkice.cfg
 to: to:
  
-  # this section describes general aspects of the live streaming session [general] +  # this section describes general aspects of the live streaming session
-  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,          # 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]   [general]
-  duration        = 0      # duration in s, 0 forever +  duration      = 0                # duration of encodingin seconds. means forever 
-  bufferSecs      1      # buffer, in seconds +  bufferSecs    2                size of internal slip buffer, in seconds 
-  reconnect       = yes    # reconnect if disconnected +  reconnect     = yes              # reconnect to the server(s) if disconnected 
-  +  # this section describes the audio input that will be streamed
   [input]   [input]
-  device          = plughw:1,0 # or `pulse' for Pulseaudio +  device        = plughw:1,      Alsa soundcard device for the audio input 
-  sampleRate      22050   # sample rate 1102522050 or 44100 +  sampleRate    48000            # sample rate in Hz. try 4800096000 or 192000 
-  bitsPerSample   = 16      # bits +  bitsPerSample = 16               # bits per sample. try 16 
-  channel         = 1       # 2 = stereo +  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]   [icecast2-0]
-  bitrateMode     vbr       variable bit rate (`cbrconstant, `abr' average) +  bitrateMode   cbr              constant bit rate ('vbr' variable 'abr' average) 
-  quality         = 1.0       # 1.0 is best quality +  bitrate       = 128 
-  format          = mp3       # format. Choose `vorbis' for OGG Vorbis +  format        = mp3              # format of the stream: mp3 ('vorbis' for OGG) 
-  bitrate         = 128       # bitrate +  quality       = 0.8              quality of the stream sent to the server (1.0 ist best) 
-  server          10.10.10.11 IP address of the IceCast server +  server        localhost        host name of the server 
-  port            = 8000      # port for IceCast2 access +  port          = 8000             # port of the IceCast2 server, usually 8000 
-  password        ******    # source password to the IceCast2 server +  password      ????????         # source password to the IceCast2 server 
-  mountPoint      radio.mp3 # mount point on the IceCast2 server .mp3 or .ogg +  mountPoint    pisound.mp3      # mount point of this stream on the IceCast2 server 
-  name            radio +  name          pisound          # name of the stream 
-   +  description   = DarkIce on pisound # description of the stream 
-   +  url           = http://localhost # URL related to the stream 
-run+  genre         = hits             # genre of the stream 
-  $ darkice  +  public        = no               # advertise this stream? 
 +  #localDumpFile = recording.mp3   # Record also to a file
  
 ---- ----
-==== Link ==== +==== Icecast ==== 
-[[https://www.hackster.io/pranciskus/internet-radio-station-f0bdc1]]+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]].\\ 
 + 
 +<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>
  
 ---- ----