Cast to TV, uma extensão GNOME Shell para transmitir arquivos e mais para dispositivos Chromecast (e mais), foi atualizada recentemente com suporte para transmissão de seu desktop, com som, que funciona com Wayland e X11. Isso é feito com a ajuda de um complemento auxiliar chamado Cast to TV - Desktop Stream Add-on, que recentemente teve seu primeiro lançamento no site de extensões GNOME.
Para que o streaming da área de trabalho funcione, você precisa do Cast to TV versão 14 ou mais recente, que suporta apenas GNOME Shell 3.36 e 3.34 (Ubuntu 20.04 e 19.10, e Fedora 31 e 32, por exemplo). Isso significa que não está disponível para distribuições Linux mais antigas que usam versões mais antigas do GNOME Shell, como Ubuntu 18.04 ou Fedora 30.
Este artigo explica como usar o Cast to TV (e seu complemento auxiliar) para transmitir sua área de trabalho GNOME Shell para um dispositivo Chromecast, com som, que funciona tanto com o X11 quanto com o Wayland. As instruções passo a passo são para Debian/Ubuntu/Pop!_OS, Fedora e Arch Linux/Manjaro (as etapas devem ser as mesmas em qualquer distribuição Linux baseada em GNOME Shell, mas os pacotes podem ter nomes diferentes).
Oficialmente, você pode transmitir sua área de trabalho Linux para um Chromecast usando o Google Chrome. Transmitir para TV tem algumas vantagens sobre o Google Chrome para streaming de desktop Chromecast, embora:
O Google Chrome também tem algumas vantagens sobre o Cast to TV: tem um atraso de transmissão menor (Cast to TV atualmente tem um atraso de cerca de 3 segundos) e funciona com ambientes de desktop diferentes do GNOME Shell. Portanto, use a solução que melhor atende às suas necessidades.
Transmitir para a TV pode fazer muito mais do que transmitir sua área de trabalho para um Chromecast. Ele também pode transmitir imagens locais, arquivos de vídeo e áudio com transcodificação opcional, codificação de vídeo acelerada por GPU para baixo uso de CPU, legendas e muito mais. Verifique a página do projeto para obter detalhes.
Você também pode gostar: Extensão Chromecast para Firefox fx_cast 0.0.5 adiciona suporte para YouTube, legendas para mídia local.
Para usar o Cast to TV para transmitir seu desktop GNOME Shell (versão 3.34 ou 3.36 apenas!) para um Chromecast, você precisará instalar o Cast to TV versão 14 (ou mais recente) e o complemento Cast to TV Desktop, instale alguns plug-ins do GStreamer e ajuste algumas configurações do PulseAudio. Isso é o que você precisa fazer em detalhes, no Debian/Ubuntu, Fedora ou Arch Linux/Manjaro.
Usando essas etapas, toda a funcionalidade Transmitir para TV será ativada, então você não terá apenas a capacidade de transmitir sua área de trabalho, mas também transmitir vídeos, músicas e imagens de sua área de trabalho GNOME Shell.
Mais maneiras de fazer streaming para um Chromecast do Linux: CATT, um player de linha de comando do Chromecast, Transmitindo vídeos para Chromecast no Linux com Gnomecast
A extensão Cast to TV requer npm
e Node.js para alguns módulos e FFmpeg para transcodificação. Cast to TV, o complemento Desktop Stream também tem algumas dependências: a base do GStreamer, plug-ins good, bad e ugly.
O PulseAudio (e o pacmd) também são necessários, mas já devem estar instalados na maioria dos casos.
Instale as dependências usando:
sudo apt install ffmpeg npm nodejs gstreamer1.0-plugins-{base,good,bad,ugly}
Você precisa habilitar o repositório RPM Fusion para instalar o FFmpeg e alguns plug-ins GStreamer (caso ainda não tenha habilitado este repositório) e, em seguida, instale os pacotes:
sudo dnf install
https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install ffmpeg gstreamer1-plugins{base,good,bad-free,ugly}
sudo pacman -S ffmpeg npm nodejs gst-plugins-{base,good,bad,ugly}
Existem algumas dependências opcionais também. Embora para usar gravação acelerada por hardware com drivers Nvidia (NVENC), você não precisa instalar nenhum pacote extra porque já está disponível no pacote GStreamer1-plugins-bad (depende se suas distribuições Linux permitem isso, pode não estar disponível), para VAAPI (Intel/AMD), você precisa instalar o pacote GSttreamer1-vaapi:
sudo apt install gstreamer1.0-vaapi
sudo dnf install gstreamer1-vaapi
sudo pacman -S gstreamer-vaapi
É muito importante levar em consideração que a implementação do GStreamer de aceleração de hardware (VAAPI e NVENC) é "meio experimental", observa o wiki do complemento Cast to TV Desktop, e usá-lo pode travar o GNOME Shell. Não tentei usar aceleração de hardware em meu teste de streaming de meu desktop GNOME Shell 3.36 para um Chromecast, porque meus gráficos Nvidia não suportam NVENC.
Portanto, se sua área de trabalho travar ou você não conseguir transmiti-la para um Chromecast ao usar a aceleração de hardware, desative-a (Preferências de transmissão para TV -> Complementos> Área de trabalho -> Aceleração de hardware: Nenhuma).
No Debian/Ubuntu, há mais uma dependência opcional. Os plug-ins do GStreamer não têm os codificadores de áudio fdkaac e faac AAC habilitados por padrão, com apenas voaacenc disponível, que é bastante antigo. Para melhor streaming de áudio no Debian/Ubuntu você pode usar o plugin FFmpeg GStreamer (que nas versões recentes do Debian/Ubuntu usa FFmpeg, apesar de libav estar no nome do pacote), que fornece suporte para codificação de áudio avenc_aac AAC. Instale este pacote:
sudo apt install gstreamer1.0-libav
As extensões estão disponíveis no site de extensões GNOME Shell. Você pode instalar o Cast to TV, seguido pelo complemento Cast to TV Desktop Stream, usando o software GNOME, se ele permitir a instalação de extensões GNOME Shell em suas distribuições Linux.
Ou você pode seguir as instruções do wiki do GNOME para integrar GNOME Shell com Google Chrome e Firefox, e então você será capaz de instalar GNOME Shell extensões usando estes 2 navegadores da web. Depois de seguir essas instruções, visite a página da extensão Cast to TV do site de extensões GNOME Shell e clique no botão OFF na parte superior canto direito da página da web para instalá-lo. Em seguida, faça o mesmo para o Cast para TV - Complemento Desktop Stream.
A instalação das extensões não é feita neste ponto, pois você precisa instalar alguns módulos npm. Você precisará abrir as preferências de transmissão para TV.
Eu preciso fazer uma observação importante aqui. As notas de lançamento do Cast to TV v14 mencionam que um bug no GNOME Shell 3.36.1 impede a abertura das preferências de extensão do menu do sistema GNOME ("Configurações do Cast"). No entanto, isso não acontece comigo no Ubuntu 20.04 com GNOME Shell 3.36.1, provavelmente graças a algum patch que faz isso funcionar, mas se você se deparar com esse problema em outra distribuição Linux, abra as preferências do Cast para TV usando o novo aplicativo GNOME Extensions (introduzido com GNOME 3.36).
Nas preferências de transmissão para TV, mude para a guia Módulos e clique em Instalar módulos npm na parte inferior da janela (captura de tela acima). Faça isso após instalar o complemento Cast to TV e Cast to TV Desktop, pois ambos exigem a instalação de alguns módulos npm.
Existem dois requisitos para fazer com que o streaming da área de trabalho do GNOME Shell para dispositivos Chromecast funcione com áudio.
O primeiro é selecionar um plug-in AAC disponível em seu sistema, nas preferências da extensão Transmitir para TV. Para ver quais plug-ins AAC GStreamer estão disponíveis em seu sistema, use (você não precisa de todos, basta um):
gst-inspect-1.0 fdkaac gst-inspect-1.0 faac gst-inspect-1.0 avenc_aac gst-inspect-1.0 voaacenc
Se você receber "Nenhum elemento ou plug-in" como saída, por exemplo, no Ubuntu:
$ gst-inspect-1.0 faac
No such element or plugin 'faac'
Isso significa que o plug-in não está disponível, então você não pode usá-lo nas configurações de Transmitir para TV para transmitir seu desktop com áudio para um Chromecast.
Se, em vez disso, você obtiver alguma saída, como esta:
$ gst-inspect-1.0 avenc_aac
Factory Details:
Rank none (0)
Long-name libav AAC (Advanced Audio Coding) encoder
Klass Codec/Encoder/Audio
Description libav aac encoder
Author Wim Taymans <[email protected]>, Ronald Bultje <[email protected]>
Plugin Details:
Name libav
Description All libav codecs and formats (system install)
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstlibav.so
Version 1.16.2
License LGPL
Source module gst-libav
Binary package GStreamer libav Plugins (Ubuntu)
Origin URL https://launchpad.net/distros/ubuntu/+source/gst-libav1.0
........
Isso significa que um plug-in específico está disponível em seu sistema e você pode selecioná-lo nas preferências da extensão Transmitir para TV (Complementos -> Área de trabalho -> Codificador de áudio). Ative também o Stream com áudio para transmitir áudio para seu desktop:
No Debian e no Ubuntu, fdkaac
e faac
não estão disponíveis no GStreamer, é por isso que eu recomendei instalar o gstreamer1.0-libav
, para poder usar avenc_aac
. No Arch Linux/Manjaro, fdkaac
e faac
devem estar disponíveis após a instalação da base do GStreamer, plugins good, bad e ugly, então use um deles. No Fedora, após instalar os plug-ins do GStreamer, você deve ter o fdkaac
disponível, então use-o.
Se você não escolher um codificador AAC disponível nas preferências de transmissão para TV, a transmissão de sua área de trabalho para um Chromecast falhará (você nem conseguirá transmissão de vídeo). Se por algum motivo você não tiver nenhum codificador AAC disponível em seu sistema, desative o streaming de áudio (disponível nas preferências Transmitir para TV) para pelo menos fazer o streaming de desktop funcionar.
E o segundo requisito necessário para transmitir sua área de trabalho GNOME Shell para um Chromecast com áudio é alterar a configuração do PulseAudio /etc/pulse/default.pa
com qualquer editor de texto como root, por exemplo Gedit (Editor de Texto), o editor de texto GNOME padrão:
gedit admin: ///etc/pulse/default.pa
e altere a linha que contém:
load-module module-stream-restore
para:
load-module module-stream-restore restore_device=false
Salve o arquivo e reinicie o PulseAudio:
pulseaudio -k
A seleção de coletor de áudio nativo no GJS está planejada para um futuro complemento Cast to TV Desktop, mas até então você precisa usar este ajuste manual do arquivo de configuração do PulseAudio.
Agora você pode transmitir sua área de trabalho do Linux GNOME Shell para um Chromecast. No menu do sistema GNOME Shell, expanda o item Cast Media e clique em Desktop.
Assim que você começar a transmitir sua área de trabalho para o dispositivo Chromecast, verá um ponto amarelo-laranja (significa que o gravador de tela integrado do GNOME Shell está ativo), bem como o controle remoto Cast to TV no painel superior - de lá, você pode pare de transmitir sua área de trabalho pressionando o botão parar (isso não é mostrado até que você comece a transmitir).
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Cast Your GNOME Shell Desktop To A Chromecast (With Audio, Wayland / X11 Support) Using Cast to TV