Como criar sua própria estação de rádio na Internet usando Icecast e Mixxx rodando em Ubuntu / Debian ou Fedora

26 de setembro de 2019

Mixxx Icecast2 no Ubuntu Linux

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.

Instalando e configurando Icecast e Mixxx para criar sua própria estação de rádio na Internet

1. Instale o 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

Baixe o Icecast.

Instale o Icecast2 dos repositórios:

Instale o Icecast2 no Debian, Ubuntu, Linux Mint, Pop!_OS e outras distribuições Linux baseadas em Debian/Ubuntu

Comandos para usar no terminal

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):

Icecast2 debian configuration

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).

Instale o Icecast no Fedora

Comandos para usar no terminal

sudo dnf install icecast

2. Configure o 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):

Debian, Ubuntu, Fedora, Linux Mint, Pop!_OS

Comandos para usar no terminal

sudo nano /etc/icecast2/icecast.xml

Fedora

Comandos para usar no terminal

sudo nano /etc/icecast.xml

Neste arquivo você pode alterar (entre outros):

  • localização e administração
    <!-- 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).

  • autenticação
    <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).

  • nome do host, porta de soquete de escuta, endereço de ligação e fluxo
    <!-- 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.

3. Ative e inicie o servidor Icecast2

Ative e inicie o serviço Icecast2 no Debian/Ubuntu

Comandos para usar no terminal

sudo systemctl --now enable icecast2

Ative e inicie o serviço Icecast no Fedora

Comandos para usar no terminal

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:

Página de status do Icecast2

Página de informações do ponto de montagem do administrador Icecast2

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:

  • Debian/Ubuntu:

Comandos para usar no terminal

sudo systemctl restart icecast2

  • Fedora:

Comandos para usar no terminal

sudo systemctl restart icecast

Verifique o status do serviço Icecast usando:

  • Debian/Ubuntu:

Comandos para usar no terminal

systemctl status icecast2

  • Fedora:

Comandos para usar no terminal

systemctl status icecast

4. Instale o Mixxx

Mixxx para Linux (fonte, pacotes Ubuntu e Fedora), Windows ou macOS:

Baixe o Mixxx

Instale o Mixxx a partir dos repositórios:

No Debian/Ubuntu, Linux Mint, Pop!_OS e assim por diante

Você pode instalar o Mixxx a partir dos repositórios (e libmp3lame0 para suportar fluxos de MP3).

Comandos para usar no terminal

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.

No Fedora

Habilite o repositório RPMFusion free (non-free não obrigatório) se você ainda não o fez:

Comandos para usar no terminal

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):

Comandos para usar no terminal

sudo dnf install mixxx lame

5. Ao vivo com a sua rádio da Internet!

Configure Mixxx para alimentar o stream de áudio para o servidor de streaming Icecast2.

Preferências de transmissão ao vivo Mixxx icecast2

No menu Mixxx Options, inicie Preferences e, em seguida, mude para a guia Live Broadcasting. Aqui, procure em Server connection e defina:

  • Tipo: Icecast2
  • Host: o nome do host definido nas configurações do Icecast2 (com "localhost" como padrão)
  • Login: source
  • Senha: a senha que você definiu para o nome de usuário "source" no arquivo de configuração Icecast2 (na seção de autenticação)
  • Monte:/stream
  • Porta: 8000 (esta é a porta padrão, use sua própria porta personalizada se a alterou)

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:

Mixxx play track

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:

Mixxx habilitar 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:

  • Debian/Ubuntu:

Comandos para usar no terminal

sudo apt install jackd

  • Fedora:

Comandos para usar no terminal

sudo dnf install jack-audio-connection-kit

Em seguida, execute o JACK com um driver de saída fictício:

Comandos para usar no terminal

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.

Linux Uprising Blog
Propaganda
Propaganda