Transmissão de rádio no FreeBSD 10 com IceCast e Ices

O tutorial a seguir explica como configurar um servidor de streaming de rádio IceCast e reproduzir arquivos de áudio (músicas ou podcasts) na plataforma FreeBSD. Este tutorial pressupõe que você esteja executando o FreeBSD 10.0 ou superior e que esteja logado como usuário root. Também assumiu que você possui um editor de texto para editar arquivos de configuração.

Antes de começarmos, é importante entender as três partes de um servidor de streaming de áudio. Primeiro, temos o próprio software de servidor, IceCast. O IceCast age como um hub central onde os fluxos de áudio entram e são enviados. O serviço IceCast recebe fluxos de áudio de clientes de origem. Os clientes de origem são programas que lêem arquivos de áudio ou outras fontes de áudio, como microfones. Em nosso exemplo, o cliente de origem é o Ices e fornece um fluxo de áudio ao servidor IceCast. O terceiro componente é um cliente de escuta. Os fluxos de áudio viajam do servidor IceCast para os ouvintes que ouvem o áudio. Normalmente, um cliente de escuta é um aplicativo de desktop, como um navegador da Web, o VLC multimedia player ou o WinAMP. Visualmente, o arranjo é assim:

 Source client (Ices) --> IceCast server --> Listening client (browser)

Para configurar um servidor de streaming IceCast no FreeBSD, primeiro instalamos o software do servidor. Isso pode ser feito executando o seguinte comando.

 pkg install icecast2

Em seguida, abrimos o /etc/rc.confarquivo e ativamos o serviço de segundo plano IceCast. Isso é feito anexando o texto a seguir na parte inferior do /etc/rc.confarquivo.

 icecast_enable="YES"

Nosso próximo passo é configurar o serviço IceCast. O pacote IceCast é enviado com um arquivo de configuração de amostra que podemos modificar. Este arquivo de amostra está localizado no /usr/local/etcdiretório Vamos fazer uma cópia desse arquivo de amostra antes de editá-lo.

 cd /usr/local/etc
 cp icecast.xml.sample icecast.xml

Agora, queremos editar alguns campos-chave do icecast.xmlarquivo. A maior parte do arquivo pode ser deixada com as configurações padrão, mas devemos alterar as informações de login. Podemos fazer isso, visitando a autenticação seção (na linha cerca de 30) e alterar a senha-fonte e retransmitir-senha para algo apropriado. Essas senhas nos permitem transmitir dados para o servidor IceCast a partir de um cliente de origem. Também devemos alterar as variáveis admin-user e admin-password para algo único em nosso sistema. Essas duas credenciais protegem a interface baseada na Web do servidor IceCast. Então, por volta da linha 150, devemos alterar as variáveis mount-name , username esenha . Essas três variáveis ​​protegem o ponto de montagem do servidor IceCast. Finalmente, na parte inferior do icecast.xmlarquivo, devemos ver uma seção de segurança que foi comentada. Devemos remover os símbolos de abertura <- e fechamento -> ao redor do parágrafo de segurança . Depois que o icecast.xmlarquivo for alterado, salve o arquivo.

Depois que o arquivo de configuração foi editado, queremos ativar o log. Para fazer isso, execute os seguintes comandos.

 mkdir /var/log/icecast
 chown nobody:nogroup /var/log/icecast

Finalmente, iniciamos o servidor IceCast. Isso faz com que o servidor escute as conexões de entrada e entrada do cliente.

 service icecast2 start

O servidor IceCast está em funcionamento e, agora, precisamos fornecer algo para jogar. Nosso próximo passo é instalar o cliente de origem Ices. O FreeBSD atualmente não oferece um pacote binário para o Ices, portanto, precisamos construí-lo a partir do ports. Isso pode ser feito executando os seguintes comandos.

 portsnap fetch
 portsnap extract
 cd /usr/ports/audio/ices
 make install
 make clean

O cliente de origem do Ices precisará de uma conta de usuário e log. Para criar um usuário para o software Ices e definir uma senha na conta, execute estes comandos.

 pw groupadd ice
 pw useradd ices -g ice -m
 passwd ices

Com o usuário criado, agora podemos ativar o log para o Ices.

 mkdir /var/log/ices
 chown ices:ice /var/log/ices

Daqui em diante, não precisaremos mais de acesso de usuário root e poderemos operar como o usuário do ICE . Em seguida, precisamos criar dois diretórios. Um diretório music,, conterá os arquivos de áudio que vamos transmitir. O segundo diretório conf,, conterá nossos arquivos de configuração.

 su ices
 cd /home/ices
 mkdir music conf
 cp /usr/local/share/ices/ices-playlist.xml conf/configuration.xml

Agora temos um exemplo de arquivo de configuração. É hora de editar o conf/configuration.xmlarquivo para se adequar ao nosso ambiente. As únicas partes do arquivo que precisamos alterar estão na linha 60. Aqui, precisamos fornecer a senha e o local de montagem que definimos no icecast.xmlarquivo. Por exemplo, se definirmos o nome da montagem no icecast.xmlarquivo como /radio.ogg, devemos alterar também o parâmetro de montagemconfiguration.xml do arquivo . Nosso campo de senha em deve corresponder à senha de origem que criamos no arquivo. Depois que nosso arquivo for editado, precisaremos salvar nossas alterações./radio.oggconfiguration.xmlicecast.xmlconfiguration.xml

Com o arquivo de configuração, o próximo passo deve ser copiar os arquivos de áudio que desejamos transmitir para o musicdiretório. Os arquivos de áudio devem estar todos no .oggformato, pois o IceCast não manipula os .mp3arquivos com suas configurações padrão. Uma vez que todos os arquivos de áudio que desejamos transmitir estejam no musicdiretório, precisamos criar uma lista de reprodução. Uma lista de reprodução é um arquivo de texto sem formatação com uma lista das músicas que queremos transmitir. Podemos criar facilmente uma lista de reprodução com os seguintes comandos.

 cd /home/ices/conf
 ls -d ../music/*.ogg > playlist.txt

Os arquivos de áudio serão reproduzidos na ordem em que aparecem no playlist.txtarquivo. O arquivo pode ser editado em qualquer editor de texto para ajustar a ordem do áudio transmitido.

Tudo o que precisamos fazer para começar a transmitir nossos arquivos de áudio é executar este comando.

 ices configuration.xml

Nota lateral: Geralmente, podemos querer executar o cliente de origem do Ices e, em seguida, sair e fazer outra coisa. Nesse caso, eu gosto de executar o Ices em uma sessão de tela . Aqui está um exemplo de como executar o ICE com tela.

 screen
 cd /home/ices/conf
 ices configuration.xml

Em seguida, pressione Ctrl + A e toque na tecla D. Isso interromperá a sessão da tela e permitirá que você efetue logout enquanto o Ices reproduz áudio em segundo plano. Posteriormente, podemos interromper o Ices efetuando login e executando:

 screen -r
 killall ices
 exit

Agora podemos conectar ao nosso servidor na porta 8000 em um navegador da web para ouvir nosso fluxo de áudio. O URL será semelhante http://myservername:8000. Esse endereço pode ser disponibilizado publicamente se você quiser permitir que outras pessoas ouçam o fluxo.

Mencionei anteriormente que o IceCast reproduz .oggarquivos e não .mp3. Isso é bastante fácil de superar no FreeBSD. Como usuário root, podemos instalar uma ferramenta de conversão, chamada sox , que converterá nossos .mp3arquivos em .oggarquivos. Supondo que todos os nossos .mp3arquivos estejam no /home/ices/musicdiretório, podemos instalar o sox e realizar uma conversão da seguinte maneira:

 pkg install sox
 cd /home/ices/music
 for i in *.mp3; do sox ./"$i" ./"$i".ogg; done

Em seguida, podemos atualizar nossa playlist usando:

 cd ../conf
 ls -d ../music/*.ogg > playlist.txt

Lembre-se de que o streaming de áudio pode consumir muita largura de banda. Um ou dois clientes ouvindo nossa estação de rádio não exigirão muita largura de banda, mas 50 ou mais clientes podem enviar um servidor à sua largura de banda mensal alocada. É uma boa idéia habilitar o limite de largura de banda no servidor de streaming para evitar custos financeiros inesperados.



Leave a Comment

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.