Difference between revisions of "Linux Audio Streaming / Icecast"

From Hackerspace ACKspace
Jump to: navigation, search
m (fixed TOC transclusion)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Omdat linux en audio nog steeds ZUIGT en de documentatie OOK heb ik hier zelf maar een info dump plek&nbsp;:-)<br>
+
Omdat linux en audio nog steeds ZUIGT en de documentatie OOK heb ik hier zelf maar een info dumpplek :-)
  
VLC&nbsp;en streaming faalt ook hard omdat je geen deugelijke info kunt achterhalen/instellen.<br>
+
VLC en streaming faalt ook hard omdat je geen deugelijke info kunt achterhalen/instellen.
  
Korte versie&nbsp;:<br>
+
Dit gaat alleen over LIVE streamen vanaf een line-in.
  
ICECAST - Server<br>  
+
Korte versie:
 +
<noinclude>__TOC__</noinclude>
  
DARKICE - Client <br>
+
== info ==
 +
In deze braindump ben ik uitgegaan van het gebruik van ALSA.
 +
ALSA is verantwoordelijk voor het aansturen van geluidsdevices onder linux.
 +
Er zijn er nog andere, maar deze shit werkt op de meeste recentere linux distros :)
  
ALSAMIXER - Instellen input<br>
+
== input ==
  
<br>
+
We moeten eerst weten welke opname apparaten er onder linux worden herkend.
 +
Dit kun je vinden door gebruik te maken van het arecord commando.
  
<br>  
+
<pre>root@ACK:/etc/icecast2# arecord --list-devices
 +
**** List of CAPTURE Hardware Devices ****
 +
card 0: SB [HDA ATI SB], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
 +
Subdevices: 1/1
 +
Subdevice #0: subdevice #0
 +
card 0: SB [HDA ATI SB], device 2: ALC662 rev1 Analog [ALC662 rev1 Analog]
 +
Subdevices: 1/1
 +
Subdevice #0: subdevice #0
 +
card 1: Live [SB Live! Value [CT4832]], device 0: emu10k1 [ADC Capture/Standard PCM Playback]
 +
Subdevices: 1/1
 +
Subdevice #0: subdevice #0
 +
card 1: Live [SB Live! Value [CT4832]], device 1: emu10k1 mic [Mic Capture]
 +
Subdevices: 1/1
 +
Subdevice #0: subdevice #0
 +
card 1: Live [SB Live! Value [CT4832]], device 2: emu10k1 efx [Multichannel Capture/PT Playback]
 +
Subdevices: 1/1
 +
Subdevice #0: subdevice #0
 +
root@ACK:/etc/icecast2#
  
INPUT&nbsp;:<br>  
+
</pre>
 +
Als je de line in van de SBLive wil hebben, kies je in dit voorbeeld hw1:0 (Card 1 , device 0), de rest gaat uit van dit device.
  
root@ACK:/etc/icecast2# arecord --list-devices<br>**** List of CAPTURE Hardware Devices ****<br>card 0: SB [HDA ATI SB], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]<br> Subdevices: 1/1<br> Subdevice #0: subdevice #0<br>card 0: SB [HDA ATI SB], device 2: ALC662 rev1 Analog [ALC662 rev1 Analog]<br> Subdevices: 1/1<br> Subdevice #0: subdevice #0<br>card 1: Live [SB Live! Value [CT4832]], device 0: emu10k1 [ADC Capture/Standard PCM Playback]<br> Subdevices: 1/1<br> Subdevice #0: subdevice #0<br>card 1: Live [SB Live! Value [CT4832]], device 1: emu10k1 mic [Mic Capture]<br> Subdevices: 1/1<br> Subdevice #0: subdevice #0<br>card 1: Live [SB Live! Value [CT4832]], device 2: emu10k1 efx [Multichannel Capture/PT Playback]<br> Subdevices: 1/1<br> Subdevice #0: subdevice #0<br>root@ACK:/etc/icecast2# <br><br>
+
Met alsamixer kun je record devices en niveau instellen
 
+
<pre>root@ACK:/etc/icecast2# alsamixer -c 1 -V capture
Als je de line in van de SBLive wil hebben, kies je in dit voorbeeld hw1:0, de rest gaat uit van dit device.<br>
 
 
 
Met alsamixer kun je record devices en niveau instellen<br>  
 
 
 
root@ACK:/etc/icecast2# alsamixer -c 1 -V capture<br><br>
 
  
 +
</pre>
 
Met spatie kun&nbsp; je device kiezen en met pijltjes volume instellen  
 
Met spatie kun&nbsp; je device kiezen en met pijltjes volume instellen  
  
<br>
+
== icecast ==
 
 
<br>
 
 
 
<br>
 
 
 
ICECAST<br>
 
  
Als je zelf streaming server wil draaien<br>
+
Als je zelf streaming server wil draaien
 
+
apt-get install icecast2
apt-get install icecast2<br>
 
 
 
<br>
 
  
 
info/handleiding volg  
 
info/handleiding volg  
  
((standaard config /etc/icecast.xml))
+
(standaard config /etc/icecast.xml)
 
 
<br><br>
 
 
 
<br>
 
 
 
DARKICE<br>
 
 
 
Streaming Client<br>
 
 
 
Nodig om line in door te zetten naar icecast server.<br>
 
 
 
apt-get install darkice<br>
 
 
 
Er is een gui-iets genaamd darksnow, maar die is oud en geeft geen juiste config.<br>
 
 
 
Gebruik man darkice.cfg voor de commandos/opties<br>
 
 
 
<br>
 
 
 
Starten&nbsp;:<br>
 
 
 
darkice -v 10 -c &lt;config&gt;<br>
 
 
 
<br>
 
  
 +
== darkice ==
  
 +
Streaming Client
  
<br>
+
Nodig om line in door te zetten naar icecast server.
 +
apt-get install darkice
  
<br>
+
Er is een gui-iets genaamd darksnow, maar die is oud en geeft geen juiste config.
  
Voorbeeld config&nbsp;:<br>
+
Gebruik man darkice.cfg voor de commandos/opties
  
<br>
+
Starten:
 +
darkice -v 10 -c &lt;config&gt;
  
[general]<br>duration = 0 # duration of encoding, in seconds. 0 means forever<br>bufferSecs = 20 # size of internal slip buffer, in seconds<br>reconnect = yes # reconnect to the server(s) if disconnected
+
Voorbeeld config:
  
<br>  
+
<pre>[general]
 +
duration = 0 # duration of encoding, in seconds. 0 means forever
 +
bufferSecs = 20 # 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
 
  
<br>[input]<br>device = hw:1,0 # Alsa soundcard device for the audio input<br>sampleRate = 44100 # sample rate in Hz. try 11025, 22050 or 44100<br>bitsPerSample = 16 # bits per sample. try 16<br>channel = 2 # channels. 1 = mono, 2 = stereo
+
# this section describes the audio input that will be streamed
  
this section describes a streaming connection to an IceCast2 server<br># there may be up to 8 of these sections, named [icecast2-0] ... [icecast2-7]<br># these can be mixed with [icecast-x] and [shoutcast-x] sections
+
[input]
 +
device = hw:1,0 # Alsa soundcard device for the audio input
 +
sampleRate = 44100 # sample rate in Hz. try 11025, 22050 or 44100
 +
bitsPerSample = 16 # bits per sample. try 16
 +
channel = 2 # channels. 1 = mono, 2 = stereo
  
<br>[icecast2-0]<br>bitrateMode = cbr # constant bit rate<br>bitrate = 192 # bitrate<br>format = mp3 # format of the stream: mp3<br>quality = 1.0 # quality of the stream sent to the server<br>server = ............. # host name of the server<br>port = 8000 # port of the IceCast2 server, usually 8000<br>password = .................&nbsp; # source password to the IceCast2 server<br>mountPoint = test.mp3 # mount point of this stream on the IceCast2 server<br>name = Test # name of the stream<br>description = Test # description of the stream<br>url = http://test.com # URL related to the stream<br>genre = Test # genre of the stream<br>public = no # advertise this stream?<br>localDumpFile = test.mp3 # Record also to a file
+
# 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-1]<br>bitrateMode = cbr # constant bit rate<br>bitrate = 192 # bitrate<br>format = vorbis # format of the stream: mp3<br>quality = 1.0 # quality of the stream sent to the server<br>server = ...........&nbsp; # host name of the server<br>port = 8000 # port of the IceCast2 server, usually 8000<br>password = ....................&nbsp; # source password to the IceCast2 server<br>mountPoint = test.ogg # mount point of this stream on the IceCast2 server<br>name = Test # name of the stream<br>description = Test # description of the stream<br>url = http://test.com # URL related to the stream<br>genre = Test # genre of the stream<br>public = no # advertise this stream?<br>localDumpFile = test.ogg # Record also to a file  
+
[icecast2-0]
 +
bitrateMode = cbr # constant bit rate
 +
bitrate = 192 # bitrate
 +
format = mp3 # format of the stream: mp3
 +
quality = 1.0 # quality of the stream sent to the server
 +
server = ............. # host name of the server
 +
port = 8000 # port of the IceCast2 server, usually 8000
 +
password = ................. # source password to the IceCast2 server
 +
mountPoint = test.mp3 # mount point of this stream on the IceCast2 server
 +
name = Test # name of the stream
 +
description = Test # description of the stream
 +
url = http://test.com # URL related to the stream
 +
genre = Test # genre of the stream
 +
public = no # advertise this stream?
 +
localDumpFile = test.mp3 # Record also to a file
  
<br>  
+
[icecast2-1]
 +
bitrateMode = cbr # constant bit rate
 +
bitrate = 192 # bitrate
 +
format = vorbis # format of the stream: mp3
 +
quality = 1.0 # quality of the stream sent to the server
 +
server = ...........  # host name of the server
 +
port = 8000 # port of the IceCast2 server, usually 8000
 +
password = ....................  # source password to the IceCast2 server
 +
mountPoint = test.ogg # mount point of this stream on the IceCast2 server
 +
name = Test # name of the stream
 +
description = Test # description of the stream
 +
url = http://test.com # URL related to the stream
 +
genre = Test # genre of the stream
 +
public = no # advertise this stream?
 +
localDumpFile = test.ogg # Record also to a file </pre>  
  
<br><br>
+
[[Category:Information]]

Latest revision as of 17:35, 22 April 2023

Omdat linux en audio nog steeds ZUIGT en de documentatie OOK heb ik hier zelf maar een info dumpplek :-)

VLC en streaming faalt ook hard omdat je geen deugelijke info kunt achterhalen/instellen.

Dit gaat alleen over LIVE streamen vanaf een line-in.

Korte versie:

info

In deze braindump ben ik uitgegaan van het gebruik van ALSA. ALSA is verantwoordelijk voor het aansturen van geluidsdevices onder linux. Er zijn er nog andere, maar deze shit werkt op de meeste recentere linux distros :)

input

We moeten eerst weten welke opname apparaten er onder linux worden herkend. Dit kun je vinden door gebruik te maken van het arecord commando.

root@ACK:/etc/icecast2# arecord --list-devices
**** List of CAPTURE Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 2: ALC662 rev1 Analog [ALC662 rev1 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Live [SB Live! Value [CT4832]], device 0: emu10k1 [ADC Capture/Standard PCM Playback]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Live [SB Live! Value [CT4832]], device 1: emu10k1 mic [Mic Capture]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Live [SB Live! Value [CT4832]], device 2: emu10k1 efx [Multichannel Capture/PT Playback]
Subdevices: 1/1
Subdevice #0: subdevice #0
root@ACK:/etc/icecast2# 

Als je de line in van de SBLive wil hebben, kies je in dit voorbeeld hw1:0 (Card 1 , device 0), de rest gaat uit van dit device.

Met alsamixer kun je record devices en niveau instellen

root@ACK:/etc/icecast2# alsamixer -c 1 -V capture

Met spatie kun  je device kiezen en met pijltjes volume instellen

icecast

Als je zelf streaming server wil draaien

apt-get install icecast2

info/handleiding volg

(standaard config /etc/icecast.xml)

darkice

Streaming Client

Nodig om line in door te zetten naar icecast server.

apt-get install darkice

Er is een gui-iets genaamd darksnow, maar die is oud en geeft geen juiste config.

Gebruik man darkice.cfg voor de commandos/opties

Starten:

darkice -v 10 -c <config>

Voorbeeld config:

[general]
duration = 0 # duration of encoding, in seconds. 0 means forever
bufferSecs = 20 # 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 = 44100 # sample rate in Hz. try 11025, 22050 or 44100
bitsPerSample = 16 # bits per sample. try 16
channel = 2 # channels. 1 = mono, 2 = stereo

# 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
bitrate = 192 # bitrate
format = mp3 # format of the stream: mp3
quality = 1.0 # quality of the stream sent to the server
server = ............. # host name of the server
port = 8000 # port of the IceCast2 server, usually 8000
password = .................  # source password to the IceCast2 server
mountPoint = test.mp3 # mount point of this stream on the IceCast2 server
name = Test # name of the stream
description = Test # description of the stream
url = http://test.com # URL related to the stream
genre = Test # genre of the stream
public = no # advertise this stream?
localDumpFile = test.mp3 # Record also to a file

[icecast2-1]
bitrateMode = cbr # constant bit rate
bitrate = 192 # bitrate
format = vorbis # format of the stream: mp3
quality = 1.0 # quality of the stream sent to the server
server = ...........  # host name of the server
port = 8000 # port of the IceCast2 server, usually 8000
password = ....................  # source password to the IceCast2 server
mountPoint = test.ogg # mount point of this stream on the IceCast2 server
name = Test # name of the stream
description = Test # description of the stream
url = http://test.com # URL related to the stream
genre = Test # genre of the stream
public = no # advertise this stream?
localDumpFile = test.ogg # Record also to a file