Eu gostaria de pegar uma parte de alguma janela (por exemplo, o vídeo em uma página do YouTube ou a barra de progresso de algum programa) e "transmitir" apenas essa parte para uma janela flutuante separada para que eu possa ver apenas essa parte em outra área de trabalho.
Eu sei que softwares de streaming como o OBS podem fazer algo assim, e sei que ffmpeg/ffplay pode fazer isso em teoria (não consegui fazer nenhum exemplo funcionar). Eu também sinto que deveria ser possível para o compositor fazer isso (como visualizações ao vivo de alt-tab), mas não consegui encontrar um plugin de compiz adequado.
Como posso obter uma segunda visualização separada de um programa de desktop (de preferência com dimensionamento)?
(Estou em uma instalação padrão do Ubuntu Bionic.)
Responder1
Dê uma olhada nos aplicativos xmag
ou xmagnify
X; eles leem parte do framebuffer, ampliam-no e exibem-no em uma janela separada.
Isso não funcionará para vídeos exibidos na sobreposição de vídeo (que raramente é usada hoje, já que as sobreposições agora usam principalmente a GPU para renderizar a superfície).
Observe também que esses aplicativos são puros X e compositores anteriores, não tenho ideia de como eles interagiriam com um compositor.
Além disso, visualizar a janela "em outra área de trabalho" pode não funcionar, pois as janelas que não estão na área de trabalho atual não são mapeadas e não serão atualizadas.
Provavelmente seria possível modificar a fonte para ler diretamente do armazenamento de janela do aplicativo no qual você está interessado.