Este artigo explica como criar sua própria estação de rádio na Internet. Para conseguir isso, usaremos os programas de código aberto Icecast e Mixxx em execução no Fedora ou Debian, Ubuntu, Linux Mint, Pop!_OS e outras distribuições Linux baseadas em Debian/Ubuntu.
Icecast (Icecast 2) é um servidor de streaming de mídia que permitirá aos usuários transmitir nossa estação de rádio na Internet, e Mixxx é um aplicativo de mixagem de DJ (que você também pode usar como um reprodutor de música simples neste caso, se for o que você precisa) que usaremos para alimentar o fluxo de áudio para o servidor de streaming Icecast2, graças ao seu recurso de transmissão ao vivo.
É importante notar que você pode criar sua própria estação de rádio na Internet usando Icecast2 e Mixxx em qualquer outra distribuição Linux (bem como Windows e macOS), mas os nomes dos pacotes e caminho podem ser diferentes, e alguns ajustes extras podem ser necessários dependendo do Distribuição Linux que você usa, é por isso que este artigo se concentra apenas no Fedora e Debian/Ubuntu.
Antes de começarmos, deixe-me falar um pouco mais sobre o Icecast e o Mixxx.
Icecast é um servidor de streaming multiplataforma gratuito e de código aberto que suporta streams Ogg Vorbis e Theora, MP3, Opus e WebM, com suporte para vários streams de áudio simultâneos (cada stream sendo chamado de "ponto de montagem"). O software pode ser usado para criar uma estação de rádio pública na Internet, transmitida em particular pela rede local e muito mais. Existem diferentes tipos de clientes que podem se conectar a um servidor Icecast, seja para fornecer um "ponto de montagem" de streaming de música, como Mixxx, ou para ouvir o áudio transmitido.
Mixxx é um software de DJ gratuito e de código aberto disponível para Windows, Mac e Linux, que inclui a maioria dos recursos comuns do software DJS, bem como recursos exclusivos como suporte para controladores MIDI avançados e HID DJs. Ele é projetado para DJs profissionais e amadores, apresentando BPM, detecção e sincronização de teclas, efeitos, controle de registro de vinil, DJ automático e gravação, entre muitos outros recursos. A partir da versão 1.9, Mixxx permite a transmissão ao vivo, com suporte para servidores de streaming Shoutcast e Icecast.
O Icecast pode ser instalado em um servidor separado ou no mesmo computador que executará o Mixxx para transmissão.
Icecast para Linux/Unix e Windows
Instale o Icecast2 dos repositórios:
sudo apt install icecast2
Ao instalar o Icecast2 no Debian ou Ubuntu, você verá algumas opções de configuração pop-up (este não é o caso do Fedora):
Substitua a senha padrão em cada caso por sua própria senha. Caso você tenha pulado a configuração inicial, você pode executá-la novamente usando sudo dpkg-reconfigure icecast2
. Você também pode alterar essas configurações iniciais e muito mais, editando o arquivo de configuração Icecast2 (veremos isso na próxima etapa).
sudo dnf install icecast
O caminho do arquivo de configuração do Icecast no Debian/Ubuntu (instalado a partir de um gerenciador de pacotes) é /etc/icecast2/icecast.xml
, enquanto no Fedora é /etc/icecast.xml
. Você pode editar este arquivo para alterar as informações da estação de rádio da Internet Icecast2, definir limites (limitar o número de clientes/ouvintes), altere a senha dos usuários 'source', 'relay' e 'admin' e muito mais.
No Debian/Ubuntu, a configuração inicial do Icecast2 mostrada na primeira instalação do Icecast2 deve cuidar da maior parte dessa configuração. Você ainda pode editar o arquivo de configuração Icecast2.
Abra este arquivo de configuração Icecast como root com um editor de texto, como o Nano no exemplo abaixo (use Ctrl + O
, então Enter
para salvar o arquivo usando Nano; para sair do editor Nano depois de salvar o arquivo, pressione Ctrl + X
):
sudo nano /etc/icecast2/icecast.xml
sudo nano /etc/icecast.xml
Neste arquivo você pode alterar (entre outros):
<!-- location and admin are two arbitrary strings that are e.g. visible
on the server info page of the icecast web interface
(server_version.xsl). -->
<location>Earth</location>
<admin>localhost</admin>
Conforme mencionado nos comentários de localização e configurações de administrador, essas informações são mostradas na página de informações do servidor de rádio da Internet da interface da web do Icecast, portanto, são apenas para fins de exibição.
Esta seção não existe por padrão no Fedora no arquivo de configuração Icecast (embora esteja lá no topo do arquivo de configuração no Debian/Ubuntu).
<authentication>
<!-- Sources log in with username \'source\' -->
<source-password>hackme</source-password>
<!-- Relays log in with username \'relay\' -->
<relay-password>hackme</relay-password>
<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>
Aqui, certifique-se de substituir a senha padrão hackme
por sua (s) própria (s) senha (s).
<!-- This is the hostname other people will use to connect to your server.
It affects mainly the urls generated by Icecast for playlists and yp
listings. You MUST configure it properly for YP listings to work!
-->
<hostname>localhost</hostname>
<!-- You may have multiple <listen-socket> elements -->
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
<!-- <shoutcast-mount>/stream</shoutcast-mount> -->
</listen-socket>
<!--
<listen-socket>
<port>8080</port>
</listen-socket>
Você pode escolher usar esses valores padrão, o que significa que você só fará o streaming no host local, usando 8000 como a porta. Nesse caso, você poderá acessar a página da web do servidor Icecast 2 em seu navegador visitando http://localhost:8000
e a página de administração visitando http://localhost:8000/admin
. Ainda não, pois precisaremos ativar e iniciar (ou reiniciar) o serviço Icecast2 na próxima etapa.
Mas você pode querer alterar algumas dessas configurações. Substitua o valor hostname
pelo nome do host/domínio ou endereço IP que será usado para o fluxo. bind-address
permite limitar quais endereços o Icecast escutará; se um endereço de ligação não for especificado (esta é a configuração padrão) para um determinado soquete de escuta, o soquete será vinculado a todas as interfaces (incluindo IPv6, se disponível). A porta 8000 é comumente usada por padrão por muitos projetos, então ela pode já estar em uso, caso em que você vai querer mudar isso.
Existem muitas outras configurações neste arquivo Icecast2, mas os padrões devem ser suficientes na maioria dos casos.
sudo systemctl --now enable icecast2
sudo systemctl --now enable icecast
Agora você pode acessar a página da web do servidor Icecast em seu navegador visitando http://localhost:8000
(isso está usando os padrões, você pode ter alterado isso), e a página de administração visitando http://localhost:8000/admin
.
O status do Icecast2 e a página de administração (mostrando as informações do ponto de montagem) após habilitar a transmissão ao vivo no Mixxx:
Além disso, você precisará reiniciar o serviço Icecast2 systemd cada vez que fizer alterações em seu arquivo de configuração. Isso pode ser feito usando:
sudo systemctl restart icecast2
sudo systemctl restart icecast
Verifique o status do serviço Icecast usando:
systemctl status icecast2
systemctl status icecast
Mixxx para Linux (fonte, pacotes Ubuntu e Fedora), Windows ou macOS:
Instale o Mixxx a partir dos repositórios:
Você pode instalar o Mixxx a partir dos repositórios (e libmp3lame0 para suportar fluxos de MP3).
sudo apt install mixxx libmp3lame0
Você também pode instalar uma versão mais recente do Mixxx no Ubuntu ou Linux Mint usando o PPA mencionado na página de download do Mixxx.
Habilite o repositório RPMFusion free (non-free não obrigatório) se você ainda não o fez:
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
E instale o Mixxx e o lame (para streaming de MP3):
sudo dnf install mixxx lame
Configure Mixxx para alimentar o stream de áudio para o servidor de streaming Icecast2.
No menu Mixxx Options
, inicie Preferences
e, em seguida, mude para a guia Live Broadcasting
. Aqui, procure em Server connection
e defina:
Isso é tudo que você precisa definir para fazer as coisas funcionarem. Você também pode alterar a codificação (escolha transmitir para uma taxa de bits mais alta ou alterar o formato de MP3 para Ogg Vorbis), metadados (as informações mostradas quando um aplicativo de música reproduz sua estação de rádio na Internet) e habilitar "Transmissão pública" que adiciona seu Estação de rádio da Internet para o diretório público do Icecast para que possa ser descoberto por outras pessoas.
Depois de concluir essas configurações, clique em Apply
e feche a janela Preferences
.
É hora de adicionar um pouco de música ao Mixx. Clique duas vezes em uma faixa de música para adicioná-la ao deck 1 e, em seguida, clique no botão play desse deck para iniciar a reprodução da música:
Agora você pode iniciar a transmissão usando o Mixxx acessando Options -> Enable Live Broadcasting
. Depois de fazer isso, sua estação de rádio da Internet estará ao vivo. Há também um ícone no qual você pode clicar para ativar/desativar a transmissão ao vivo, no lado superior direito de a janela Mixxx; este ícone também é usado para indicar o status da transmissão ao vivo:
Use um reprodutor de áudio, como VLC, Audacious e assim por diante, e abra seu URL de rádio da Internet: http://localhost:8000/stream.m3u
ou http://localhost:8000/stream.xspf
(com localhost
e 8000
sendo o nome de host e a porta padrão, que você pode ter alterado nas configurações!). Você também pode encontrar esses links visitando a página de status do servidor Icecast2 em seu navegador: http://localhost:8000/status.xsl
(novamente, substituindo localhost:8000
por seu nome de host e porta).
Extra (opcional): deseja transmitir para o Icecast usando Mixxx, mas fazer com que o Mixxx permaneça em silêncio em seu sistema e apenas os ouvintes de rádio da Internet ouçam o áudio (isso também faz com que todo som de seu sistema não passe para Fluxo Icecast, então apenas a saída de som do Mixxx é reproduzida no fluxo Icecast)? Você pode executar o JACK com uma saída fictícia para isso. Instale o JACK:
sudo apt install jackd
sudo dnf install jack-audio-connection-kit
Em seguida, execute o JACK com um driver de saída fictício:
jackd -d dummy
Depois disso, no Mixxx vá para Preferences -> Sound Hardware
e defina a opção Sound API
para JACK Audio Connection Kit
(a saída Master
mais abaixo nesta página pode ser definida para None
ou system
). Se você não estiver vendo JACK entre as opções da API de som, reinicie o Mixxx.
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Create Your Own Internet Radio Station Using Icecast And Mixxx Running On Ubuntu/Debian Or Fedora