Linux Audio Streaming / Icecast
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