Como construir um receptor AirPlay usando um Raspberry Pi

A forma como consumimos mídia evoluiu muito na última década, com o advento do 4K, das smart TVs, do AirPlay, do Chromecast, do HDR e de muitas outras novas tecnologias, todas desempenhando um papel importante. Mas para muitos de nós, nossos LCDs 1080p de cerca de 2012 estão em sua maioria bons e ainda em uso em nossas residências. Quando algo funciona perfeitamente bem, o custo adicional para adicionar funcionalidade inteligente a um produto muitas vezes idêntico e perfeitamente funcional simplesmente não vale a pena.

Construir um servidor AirPlay baseado em Raspberry-Pi pode ser uma solução, adicionando funcionalidade de streaming de música aos seus receptores ou amplificadores antigos, alto-falantes clássicos ou TVs mais antigas. Infelizmente, você não poderá transmitir vídeo para seu Raspberry-Pi – mas com uso mínimo de energia, suporte HDMI, fácil configuração e integração com seus dispositivos habilitados para AirPlay, é uma ótima maneira de aprimorar seu jogo de áudio em casa sem gastar dinheiro em novos dispositivos.

O que você precisará

Estaremos usando um projeto de código aberto chamado Shairport-Sync, um reprodutor de áudio Linux e FreeBSD que originalmente começou a suportar AirPlay 1 e agora suporta AirPlay 2. Estamos usando um Raspberry Pi 3b de tamanho normal aqui, mas deve rodar bem, mesmo em um Raspberry Pi 2 mais antigo ou Raspberry Pi Zero 2 W com uma placa USB ou I2S adequada. Usaremos HDMI para conectar a uma TV, mas se você planeja conectar a um alto-falante ou receptor sem HDMI, considere um DAC externo, já que o áudio embutido no Pi não é particularmente bom. O desempenho da rede para AirPlay não é particularmente importante, por isso estamos nos conectando ao nosso Pi 3 usando o Wi-Fi integrado.

Aqui está uma lista completa do que estamos usando:

  • Framboesa Pi 3 Modelo B
  • Adaptador MicroSD e SD de 16 GB
  • Conexão wifi
  • Adaptador de energia Raspberry Pi
  • Uma TV habilitada para HDMI.

Shairport-sync tem alguns requisitos mais complexos, exigindo que as portas 319 e 320 estejam disponíveis para uso. Isso pode causar problemas se você estiver transformando um Mac antigo em um servidor shairport-sync, pois essas portas já são usadas pelo macOS. Você também não pode hospedar vários servidores shairport-sync no mesmo endereço IP, pois isso causa problemas para o AirPlay.

Instalando o sistema operacional Raspberry Pi

Estaremos atualizando o Raspberry Pi OS (anteriormente conhecido como Raspian) em seu Raspberry Pi. Você precisará de um adaptador microUSB para conectar ao seu PC. Esteja ciente de que, ao atualizar o Pi OS, seu cartão SD será apagado, portanto, faça backup de todos os arquivos primeiro. Anteriormente, você precisava usar ferramentas de terceiros, como Etcher ou o perene Rufus, para enviar imagens para seus cartões SD, mas o Raspberry Pi Imager tornou esse processo muito mais fácil. Siga as etapas abaixo para começar:

  1. Baixe e instale o Raspberry Pi Imager para sua plataforma. Se estiver usando Linux, você pode instalá-lo através do gerenciador de pacotes.
  2. Insira seu cartão MicroSD. Dependendo do sistema de arquivos e da plataforma que você está usando, pode ser necessário atualizar o cartão SD para que seu sistema operacional o reconheça corretamente.
  3. Abra o Raspberry Pi Imager e selecione seu modelo. Estamos usando o Pi 3, mas você vai querer escolher o que possui.
  4. Bater Escolha o sistema operacional e selecione a opção superior (padrão) do seu Pi. No nosso caso, é uma versão de 32 bits do PiOS.
  5. Bater Armazenar e selecione seu cartão SD.
  6. Verifique novamente suas configurações.

Agora você está livre para acertar Próximo e continue o processo de instalação. Neste ponto, vale a pena conhecer alguns detalhes que podem lhe poupar tempo posteriormente. O gerador de imagens perguntará se você deseja usar Personalização do sistema operacionalque permite pré-configurar alguns aspectos do seu sistema operacional na fase de flash. Isso é extremamente útil, pois permite predefinir itens como nomes de host, usuários e configurações de SSH. Recomendamos que você pressione Editar Configurações e explore algumas opções disponíveis. A maioria das configurações é autoexplicativa: sugerimos definir um nome de host – o meu é chamado raspberrypi – criar um usuário e uma senha e configurar o Wi-Fi se você não pretende se conectar via Ethernet. Observe que o Shairport-sync usará automaticamente o nome do host do seu dispositivo como o nome do seu dispositivo AirPlay, por isso é bom escolher algo útil aqui.

Também sugerimos ir ao Serviços guia e habilitando o SSH, o que lhe poupará o trabalho de conectar um mouse e teclado ao seu Pi.

Depois de terminar de definir suas configurações, feche a janela de configurações e clique em Sim na caixa de diálogo original. Seu cartão SD começará a piscar. Assim que o cartão SD estiver atualizado, insira-o no Raspberry Pi e conecte-o a uma fonte de alimentação. Ele deve inicializar rapidamente na área de trabalho do Raspberry Pi OS.

Fonte

Como transformar seu Raspberry Pi em um servidor de mídia

Com apenas alguns ajustes, um Raspberry Pi pode ser adicionado à configuração do seu home theater como um servidor de mídia completo

Instalando Shairport-Sync em seu Pi

Instalar o Shairport-Sync tornou-se muito mais fácil nos últimos anos. Eu testei a instalação por meio das imagens Docker fornecidas e a compilação a partir do código-fonte, mas se você não precisar de nenhum sinalizador de compilação específico (como ativar o Pulse-Audio), o pacote fornecido é perfeitamente utilizável. Também tive mais facilidade para depurar problemas e encontrar documentação para versões instaladas localmente em comparação com a execução no Docker, mas sua milhagem pode variar. Para começar, faça login no terminal do seu Pi, via SSH ou conectando um mouse e teclado e abrindo o Terminal – você pode fazer isso apenas com um teclado pressionando CTRL + ALT + F2 na sua área de trabalho Pi. Quando estiver no prompt do terminal, siga estas etapas.

  1. Comece garantindo que seu Raspberry Pi esteja atualizado.
    sudo apt-get update && sudo apt-get upgrade
  2. Depois de concluído, instale o shairport-sync
    sudo apt-get install shairport-sync
  3. Depois de instalado, inicie o shairport-sync com o seguinte:
    sudo systemctl start shairport sync
  4. Verifique o status do processo de sincronização do shairport com
    sudo systemctl status shairport-sync

    Você deverá ver uma saída semelhante à abaixo.

    Enquanto estivermos aqui, também habilitaremos o serviço, para que ele seja reiniciado automaticamente quando o Pi for ligado ou desligado. Faça isso com o seguinte:

    sudo systemctl enable shairport-sync
  5. Assim que o serviço estiver instalado e funcionando, precisaremos alterar alguns valores de configuração padrão. É aqui que as coisas ficam mais complexas. Comece listando seus dispositivos de áudio disponíveis usando:
    aplay -l

    Aplay é um gravador e reprodutor de som de linha de comando projetado para ALSA, uma parte do Kernel Linux projetada para facilitar a interface com placas de som. O sinalizador -l imprime os dispositivos disponíveis. A saída que você verá dependerá do seu Pi e de quais dispositivos de áudio estão conectados. Para nosso Raspberry Pi 3b, temos dois dispositivos: o áudio interno fones de ouvido e nossa saída HDMI vc4-hdmi. Anote o nome do dispositivo de áudio que você usará – você precisará dele na próxima etapa. Recomendamos que você use o conector HDMI do Pi (pelo menos para começar). O DAC padrão do Pi não é particularmente bom e fazer com que DACs USB externos funcionem pode ser uma dor.

  6. Estaremos usando a saída vchdmi para reproduzir áudio. Para fazer isso, abra /etc/shairport-sync.conf usando um editor de texto com o qual você se sinta confortável. Estamos usando Vi. Lembre-se de abrir o arquivo como root.
    sudo vi /etc/shairport-sync.conf
  7. Depois de aberto, role para baixo em shairport-sync.conf arquivo para a seção chamada também. Lá você encontrará uma opção chamada dispositivo de saída. Remova os dois comentários do início da linha (//) e substitua o valor padrão com como:. Você pode colocar qualquer hífen no nome, ou seja
    output_device = "hw:vc4hdmi"

    E então salve e saia do arquivo.

    As instruções acima parecem ser amplamente aceitas, mas não funcionariam no meu Pi-3b. Seguindo conselhos sobre esse problema do GitHub, consegui colocar meu Pi em execução usando output_device = "hdmi:CARD=vc4hdmi,DEV=0″. Sua milhagem pode variar aqui.

  8. Feito isso, reinicie o processo shairport-sync usando:
    sudo systemctl restart shairport-sync

    Você vai querer verificar se há erros nos logs. Você pode fazer isso usando o comando abaixo, que imprimirá as últimas 100 linhas dos logs.

    sudo journalctl -u shairport-sync --no-pager | tail -n 100
  9. Você Terminou! Pegue um dispositivo habilitado para AirPlay e verifique seus dispositivos disponíveis. Você deverá ver seu Raspberry Pi disponível no menu AirPlay. O Shairport-Sync assumirá automaticamente o nome do host do seu Raspberry Pi – embora você possa alterar isso no em geral seção do mesmo arquivo de configuração que modificamos anteriormente. Ligue sua TV e você poderá transmitir áudio para ela.

Como aumentar o áudio no seu Raspberry Pi

Agora que o streaming está funcionando – você pode notar que o áudio está extremamente silencioso. Isso ocorre porque o nível padrão de áudio no Pi está definido como muito baixo. Recomendamos que você defina o volume para 100% e deixe o controle remoto de áudio do seu telefone ou os alto-falantes da TV controlarem os níveis. Execute este comando para aumentar o áudio do seu Pi para 100%.

sudo amixer sset PCM,0 100%

Limitações do Shairport-Sync

Nem tudo está implementado

Shairport-sync é uma versão incompleta do AirPlay-2 e tem algumas limitações. Principalmente – você não poderá transmitir vídeo para o seu Pi nem compartilhar fotos. Shairport-sync funciona como um servidor AirPlay somente de áudio, tornando-o ideal para atualizar alto-falantes ou smart TVs para transmitir áudio para sua sala de estar, mas sem vídeo. Em meus testes, consegui transmitir áudio de um vídeoou seja, assistir a um vídeo em outro dispositivo e reproduzir áudio através do meu Pi, o que é um bom truque – mas nenhum vídeo real aparecerá na TV. Existem algumas outras limitações, conforme documentado na página ‘O que funciona’ do projeto:

Fonte: Github/Shairport-Sync

Shairport-Sync é ótimo para receptores, alto-falantes ou TVs antigos

Shairport-sync não é perfeito – idealmente, seríamos capazes de transmitir vídeo também – mas é muito fácil de executar (para que possa ser executado junto com outro software em um Pi mais recente), confiável depois de configurado e rápido de configurar . Quando conectado a uma TV, ele também tem a vantagem de ser um serviço em segundo plano que não impede que você use seu Pi normalmente – então você pode usar o mesmo Pi que está usando para um Steam Link ou até mesmo um pequeno NAS. O Raspberry Pi tem infinitas opções para projetos domésticos interessantes, e achamos que esta poderia ser outra ótima adição DIY a um conjunto de serviços auto-hospedados em sua casa – sem as etiquetas de preço da Sonos.

Fuente