Como configuro um servidor Icecast para transmitir áudio na minha rede?

63

A transmissão da saída da placa de som como um fluxo de rádio na Internet é uma maneira confiável de transmitir áudio em uma rede. Isso pode ser muito bem usado para, por exemplo, transmitir áudio em uma LAN sem fio para outro computador ou qualquer outro dispositivo capaz de reproduzir fluxos de rádio da Internet.

No entanto, não encontrei um guia passo a passo fácil sobre como configurar isso.

Takkat
fonte

Respostas:

75

Transmita áudio com o Icecast2


1. Instale o Icecast2 Instale o icecast2


2. Edite a configuração do Icecast2

Abra o arquivo /etc/icecast2/icecast.xmlcomo raiz em um editor. Por motivos de segurança, você deve configurar as senhas na <authentication>seção:

<admin-user>admin</admin-user>
<admin-password>hackme</admin-password> 

Se você alterou <source-password>ou <relay-password>precisa fazer isso também no lado da fonte ou do relé. Isso significa deixá-lo padrão ou alterá-lo no arquivo ices2.xml (veja abaixo) também. O mesmo precisará ser feito nos arquivos de configuração do Ices ou do Darkice.

Você também precisa definir o nome do host em que seu fluxo pode ser alcançado:

<hostname>localhost</hostname>

Deixe-o como host local (não é necessário fornecer um IP resolvido) quando você quiser transmitir apenas na sua rede local. A porta padrão a ser ouvida é 8000. Altere-a somente quando necessário.


3. Editar padrões

Abra o /etc/default/icecast2arquivo como raiz em um editor. A última linha precisa ser alterada para

ENABLE=true

Isso é tudo para o Icecast2. Claro que existem muitas outras configurações com as quais você pode jogar. Nos arquivos de configuração, existem notas explicativas sobre os parâmetros.

4. Iniciar / Parar o Icecast

O servidor é iniciado e parado pelos seguintes comandos:

/etc/init.d/icecast2 start
/etc/init.d/icecast2 stop

Durante a execução, o servidor Icecast pode ser administrado a partir de qualquer navegador http://localhost:8000/admin/após inserir as credenciais de administrador definidas na etapa 1. Mais documentação está disponível no Icecast.org .

O Stream2ip é um front-end gráfico para iniciar e interromper rapidamente fluxos onde uma configuração básica para o Ices2, Ices ou Darkice já foi feita.


Ices2 Instalar o icices2 para transmitir áudio OGG Vorbis a partir de uma placa de som local

Para configurar o pulseaudio para ativar a gravação a partir da placa de som, consulte a nota do Darkice abaixo.

Crie diretórios para Ices2

mkdir /var/log/ices   # in case you need logfiles.  
mkdir /etc/ices2      # for putting ices stuff in.  

Edite o arquivo de configuração Ices2 .xml

O Ices2 será executado usando um arquivo .xml para as configurações. Exemplos verbais de configurações podem ser encontrados em /usr/share/doc/ices2/examples/. Esses arquivos precisam ser editados para atender às suas necessidades e podem ser copiados em qualquer lugar, melhor no seu diretório pessoal. Dependendo do arquivo de configuração, o Ices2 usa uma lista de reprodução no formato Ogg Vorbis ( ices-playlist.xml) ou a saída da sua placa de som ( ices-alsa.xml) como fonte de streaming para o Icecast2.

Na seção, <input>talvez seja necessário substituir o dispositivo se você configurou o sistema de som para o PulseAudio. Para fazer isso, edite a linha correspondente para:

<param name="device">pulse</param>

O nome do fluxo para o cliente receptor é definido na seção a seguir.

<mount>/example1.ogg</mount>

Iniciar transmissão

Os fluxos da sua placa de som serão iniciados executando primeiro o servidor Icecast2 e, em seguida, executando o Ices2 usando os seguintes comandos:

/etc/init.d/icecast2 start
ices2 /home/user/somewhere/ices-pulse.xml # or any other name from .xml file

Setup Receiver

No lado do receptor, sua "estação" de rádio sintoniza: <serverIP>:8000/example1.oggonde <serverIP>está o IP do seu servidor de streaming seguido pela porta que você definiu no arquivo icecast.xml (padrão 8000).

Terminar transmissão

Os fluxos são encerrados eliminando o Ices2 e / ou parando de executar o servidor Icecast2:

killall ices2
/etc/init.d/icecast2 stop

Ices para transmissão de listas de reprodução mp3

A transmissão de uma lista de reprodução contendo arquivos mp3 não pode ser feita com o Ices2. Precisamos instalar o IceS , que precisamos instalar a partir do código-fonte .

Depois de configurar o arquivo de configuração com endereço do servidor, senha e propriedades de streaming (exemplo bem documentado será encontrado em /usr/share/doc/ices/examples), podemos transmitir arquivos de áudio mp3 de listas de reprodução (por exemplo, no formato .m3u) em um servidor Icecast2:

/etc/init.d/icecast2 start
ices -c <path_to_config_file> -F <path_to_playlist>

Para mais opções, leia a documentação na página de manual bastante elaborada de man ices.


Darkice Instalar darkice para transmissão ao vivo

Podemos transmitir a saída da placa de som local como OGG Vorbis ou como mp3 usando o Darkice . Para ativar o streaming da placa de som local, talvez seja necessário definir primeiro o dispositivo de gravação do Darkice no pulseaudio. Isso pode ser feito com o pavucontrol Instalar pavucontrol . Na guia Gravação, escolha Monitor of <your soundcard>o "plug-in ALSA [darkice]" .

O arquivo de configuração (exemplo bem documentado fornecido em /usr/share/doc/darkice/examples) precisa ser adaptado ao servidor Icecast e ao ambiente de som local:

[general]
duration        = 0      # duration in s, 0 forever
bufferSecs      = 1      # buffer, in seconds
reconnect       = yes    # reconnect if disconnected

[input]
device          = default # or `pulse' for Pulseaudio
sampleRate      = 44100   # sample rate 11025, 22050 or 44100
bitsPerSample   = 16      # bits
channel         = 2       # 2 = stereo

[icecast2-0]
bitrateMode     = vbr       # variable bit rate (`cbr' constant, `abr' average)
quality         = 1.0       # 1.0 is best quality
format          = mp3       # format. Choose `vorbis' for OGG Vorbis
bitrate         = 256       # bitrate
server          = localhost # or IP
port            = 8000      # port for IceCast2 access
password        = hackme    # source password to the IceCast2 server
mountPoint      = mystream.mp3  # mount point on the IceCast2 server .mp3 or .ogg
name            = mystream

Depois de salvar essa configuração (por exemplo, em ~/music/darkice.cfg), primeiro executamos o servidor Icecast e, em seguida, conseguimos transmitir a saída de áudio pulsado da placa de som local, invocando:

/etc/init.d/icecast2 start
darkice -c ~/music/darkice.cfg

No receptor, sintonizamos http://<localhost>:8000/mystream.mp3para ouvir. <localhost>é o IP do servidor Icecast.

Takkat
fonte
3
Em relação à parte "Deixe-o como host local quando você deseja transmitir apenas em sua rede local", isso não precisa ser um IP ou interface acessível pela rede para que outros dispositivos possam se conectar?
Oli
o usuário administrador e a senha admin estão relacionados ao usuário / senha da máquina?
Charbel
11
@Charbel: não, eles não estão relacionados. Escolha qualquer senha que desejar. Você, por exemplo, precisa deles para acessar a interface da web de administração do icecast ( localhost: 8000 / admin ).
Takkat
Esta é uma ótima resposta, obrigado. Em muitos tutoriais, vejo icecast e mpd mencionados juntos, trabalhando juntos. Não entendo a relação entre icecast e mpd - você poderia esclarecer? Qual é o papel de cada um?
precisa saber é o seguinte
11
Observe que as senhas do Icecast2 são armazenadas (e usadas no Darkice) como texto não criptografado. Não reutilize suas senhas muito secretas aqui.
Elomage