Blog Linux Avante

Papel de parede de transmissão de vídeo ao vivo para seu desktop GNOME, Xfce ou bspwm

15 de janeiro de 2020

Live wallpaper Linux

Este artigo explica como usar uma transmissão ao vivo como papel de parede da área de trabalho no GNOME, Xfce ou bspwm com o X11 (não funciona com o Wayland). A transmissão de vídeo ao vivo pode ser qualquer transmissão de sua preferência (uma câmera ao vivo da cidade ou o Feed ao vivo do ISS, por exemplo), desde que seja suportado pelo Streamlink.

É importante observar que você perderá a funcionalidade dos ícones da área de trabalho usando este papel de parede de transmissão ao vivo. Isso ocorre porque os ícones da área de trabalho serão mostrados atrás do papel de parede do vídeo da transmissão ao vivo. Este é o caso do Xfce e de ambos os desktops GNOME nos quais o Nautilus desenha o desktop e usando a extensão Desktop Icons GNOME Shell. Isso não é um problema se você usar vários monitores, pois você poderia ter os ícones da área de trabalho em um monitor diferente do papel de parede de vídeo da transmissão ao vivo.

Você provavelmente está pensando que isso usa muita CPU. No meu desktop Ubuntu 19.04, com mpv configurado para usar decodificação de vídeo acelerada por hardware, um feed de vídeo ao vivo 1080p usado como papel de parede da minha área de trabalho usa apenas 2-3% da CPU de acordo com htop (então 2-3% de single core), então é basicamente insignificante. Sem decodificação de vídeo por hardware, porém, mpv usado entre 30 e 35% de acordo com o htop, então sim, isso é um pouco demais. Portanto, certifique-se de usar o mpv com aceleração de hardware para isso.

Este é um breve vídeo mostrando o papel de parede da transmissão ao vivo na minha área de trabalho Ubuntu 19.04 (GNOME), usando um feed de vídeo ao vivo de Nova York:

O que você precisará:

  • Use GNOME, Xfce ou bspwm com o X11 (outras áreas de trabalho podem funcionar, mas nas minhas tentativas não funcionou como deveria com o KDE Plasma ou MATE; não tentei outras)
  • Uma transmissão de vídeo ao vivo, seja uma transmissão ao vivo de vídeo do YouTube, uma transmissão ao vivo do ISS, alguma webcam ao vivo de uma cidade e assim por diante
  • Streamlink para extrair o stream e reproduzi-lo com mpv
  • mpv 0.29.1 ou mais recente para reproduzir o vídeo ao vivo (pode funcionar com algumas versões mais antigas, mas ao testar isso com mpv 0.27.2, as bordas da janela não desapareceram, portanto, caso você encontre isso problema, você provavelmente precisará de uma versão mais recente do mpv)
  • Xwinwrap fork (o link aponta para um fork do Xwinwrap com algumas melhorias, outras versões podem não funcionar corretamente), que é necessário para manter o mpv no fundo da área de trabalho

Estes são alguns exemplos de feed de vídeo ao vivo que você pode usar como papel de parede do desktop GNOME ou bspwm:

Instale os programas necessários para usar um feed de vídeo ao vivo como papel de parede da área de trabalho

1. Instale mpv

Debian buster & sid/Ubuntu 19.04, 19.10 ou 20.04

Devido à necessidade do mpv mais recente; para um PPA para Ubuntu 18.04, veja um pouco abaixo.

Comandos para usar no terminal

sudo apt install mpv

Fedora

Ative o repositório RPMFusion se 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

sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

E instale o mpv:

Comandos para usar no terminal

sudo dnf install mpv jack-audio-connection-kit

Eu adicionei jack-audio-connection-kit ao comando de instalação do mpv porque o mpv não depende deste pacote no Fedora 30 e ainda assim ele falha ao iniciar sem ele (mostrando um erro: mpv: error while loading shared libraries: libjack.so.0: cannot open shared object file: No such file or directory).

Arch Linux

Comandos para usar no terminal

sudo pacman -S mpv

Como mencionei no início do artigo, você provavelmente precisará do mpv 0.29.1 ou mais recente. Pode funcionar com algumas versões mais antigas, mas ao testar isso com o mpv 0.27.2, as bordas da janela não desapareceram, portanto, caso você tenha esse problema, provavelmente precisará de uma versão mais recente do mpv. Ubuntu 19.04 tem mpv 0.29.1 ef ou versões mais antigas do Ubuntu, como Ubuntu 18.04 você pode usar um PPA.

2. Instale o Xwinwrap

Ubuntu/Debian

Você pode encontrar instruções de instalação passo a passo (da fonte) no fork do Xwinwrap página inicial do projeto GitHub. Há também um pacote DEB disponível aqui (funciona em versões mais recentes do Ubuntu, incluindo Ubuntu 18.04 e 19.04, 19.10 ou 20.04).

Arch Linux

Há um pacote AUR para Xwinwrap (fork)

Se você usar alguma outra distribuição Linux

Você precisará descobrir quais dependências você precisa instalar a partir dos nomes de pacotes listados para Debian/Ubuntu na página do projeto Xwinwrap GitHub e, em seguida, compilá-lo usando as instruções de lá.

3. Instale o Streamlink

Debian/Ubuntu

Comandos para usar no terminal

sudo apt install streamlink

Fedora

Comandos para usar no terminal

sudo dnf install python3-streamlink

Arch Linux

Comandos para usar no terminal

sudo pacman -S streamlink

Em outras distribuições do Linux, consulte a página de instalação do Streamlink.

No Ubuntu 18.04 (e mais antigo), o Streamlink pode ser muito antigo para reproduzir alguns streams. Por exemplo, no meu laptop Ubuntu 18.04, ele não conseguiu reproduzir um stream do YouTube. Neste caso, você pode baixar um Streamlink mais recente do Ubuntu 19.04 que funciona em versões mais antigas do Ubuntu (pelo menos no Ubuntu 18.04). Você precisará baixar e instalar 2 pacotes (clique em qualquer espelho nessa página para baixar o DEB):

Se você estiver instalando os pacotes DEB usando uma GUI, comece com python3-streamlink e instale o pacote streamlink DEB.

Crie os 2 scripts necessários para usar uma transmissão ao vivo como papel de parede

Como um lembrete, para usar isso, é necessário executar o Xorg. O Fedora, por exemplo, usa o Wayland por padrão, então se você quiser usar isso no Fedora, saia e na tela de login escolha Gnome on Xorg e faça login.

1. Crie 2 scripts que serão usados para buscar a transmissão ao vivo e defina-a como plano de fundo da área de trabalho

Para usar uma transmissão ao vivo de sua escolha como plano de fundo da área de trabalho, você precisa criar 2 scripts. Crie 2 arquivos, chamados livebackground.sh e livestream.sh em uma pasta chamada scripts em seu diretório inicial (de forma que os caminhos dos scripts sejam ~/scripts/livebackground.sh e ~/scripts/livestream.sh). Você pode usar outros caminhos e nomes de script, mas precisará substituir qualquer menção aos scripts de minhas instruções por seus nomes e caminhos personalizados!

Adicione o seguinte ao script livebackground.sh e salve o arquivo:

Comandos para usar no terminal

#!/usr/bin/env sh

xwinwrap -fs -fdt -ni -b -nf -- ~/scripts/livestream.sh WID

Isso é o que cada opção Xwinwrap usada neste código significa:

  • -fs: tela inteira
  • -fdt: foce janela WID em janela do tipo desktop
  • -ni: ignora a entrada (para que os controles do player não apareçam ao passar o mouse, etc.)
  • -b: abaixo (para que a janela da transmissão ao vivo seja mostrada abaixo das outras janelas)
  • -nf: sem foco

Aqueles que desejam especificar a resolução, remova -fs (tela inteira) e adicione -g WxH (L = largura, A = altura), por exemplo, -g 1920x1080.

Se você usar dois monitores, será necessário especificar a geometria completa: substitua -fs por -g WxH+X+Y (W = largura, H = altura, X = coordenadas x, Y = coordenadas y). Por exemplo, se você tiver dois monitores, ambos usando resoluções de tela 1920x1080, e quiser mostrar o papel de parede da transmissão ao vivo no segundo monitor (o da direita), use: -g 1920x1080+1920+0. Outro exemplo: se o monitor da esquerda usar uma resolução de tela de 2560x1080, e o da direita usa 1920x1080, e você deseja que o papel de parede da transmissão ao vivo seja exibido no monitor à direita, use -g 1920x1080+2560+0.

Essas opções foram suficientes para obter um fundo de transmissão ao vivo em meu desktop Ubuntu 19.04 Gnome, mas caso você esteja tendo problemas, existem mais algumas opções que você pode usar, que você pode encontrar na página Xwinwrap.

No script livestream.sh, use este código e salve o arquivo:

#!/usr/bin/env sh
streamlink -p "mpv --no-audio --wid=$1" https://www.youtube.com/watch?v=-M8u4jaCCJs best

Neste script, estou usando um feed de vídeo ao vivo de Amsterdã do YouTube, mas você pode usar qualquer transmissão ao vivo que desejar, desde que seja compatível com o Streamlink. Tudo o que você precisa fazer é substituir o link do YouTube neste script pelo feed de vídeo ao vivo que deseja usar. Eu teria gostado de usar a câmera ISS Earth View como meu exemplo, mas ela fica preta quando a Estação Espacial Internacional está no lado noturno da Terra, então você deve ter pensado que não está funcionando se testá-la quando está preta.

Além disso, best após o URL significa usar a melhor qualidade disponível. Você pode executar streamlink URL para ver todas as qualidades disponíveis.

É muito importante mencionar que o mpv suporta decodificação de hardware, portanto, pode ter um uso de CPU muito baixo. Consulte os links este e este para obter informações.

Por exemplo, com os pacotes necessários instalados, você pode habilitar a decodificação de vídeo de hardware VA-API usando --hwdec=vaapi --vo=vaapi (para que a linha streamlink no script se torne streamlink -p "mpv hwdec=vaapi --vo=vaapi --no-audio --wid=$1" https://www.youtube.com/watch?v=-M8u4jaCCJs best) ou VDPAU usando --hwdec=vdpau --vo=vdpau.

2. Torne os scripts executáveis

Comandos para usar no terminal

chmod +x ~/scripts/livestream.sh chmod +x ~/scripts/livebackground.sh

3. Defina uma transmissão ao vivo como papel de parede

Agora é hora de definir uma transmissão ao vivo como seu papel de parede. Para alterar o plano de fundo da sua área de trabalho para um vídeo ao vivo, você precisa executar o script livebackground.sh - abra um terminal e execute-o:

Comandos para usar no terminal

~/scripts/livebackground.sh

4. Opcionalmente, execute o papel de parede da transmissão ao vivo na inicialização

Se sua área de trabalho tiver a opção de adicionar um script para inicialização (como o aplicativo Startup Applications no Ubuntu), use-o para adicionar sh -c "~/live-background.sh" (digite na caixa Comando) para que seja executado após o login.

Se você não tem uma GUI para adicionar aplicativos e scripts de inicialização, pode adicioná-lo para inicializar manualmente, criando um arquivo chamado livestream-wallpaper.desktop em ~/.config/autostart/ (crie esta pasta se ela ainda não existir) com o seguinte conteúdo:

[Desktop Entry]
Type=Application
Exec=sh -c "~/scripts/livebackground.sh"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Livestream wallpaper

Remova o arquivo ~/.config/autostart/livestream-wallpaper.desktop se você não quiser mais que o papel de parede da transmissão ao vivo seja iniciado automaticamente quando você entrar.

Idéia e os dois scripts via Reddit (r/unixporn - agradecimentos especiais a u/lukedoomer e u/Invayder)

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.