O VNC não é comparável ao streaming de vídeo. Na transmissão de vídeo, você normalmente transfere uma transmissão de vídeo pré-compactada pela rede. Para fluxos HD, geralmente é codificado em H.264. Se você usa o VNC, o computador host precisa tirar instantâneos da tela e compactá-los antes de enviá-los à rede. Existem várias restrições aqui:
- A compactação forte precisa de muita energia da CPU. Por exemplo, a codificação de um filme de 90 minutos em H.264 em alta qualidade geralmente leva mais de 4 horas de tempo de compactação no meu servidor Athlon X2 4450e. Geralmente, essa compactação forte é inadequada para aplicativos em tempo real, como controle remoto.
- Uma compressão menos forte, por sua vez, exigirá mais largura de banda da rede, o que pode se tornar um problema em conexões de baixa largura de banda, como a Internet.
Bem, existem alguns "truques" aplicados por codecs de vídeo e utilitários de controle remoto e compartilhamento de tela. Primeiro, eles tentam detectar as alterações na tela e transferir apenas a imagem (compactada) das alterações. Isso geralmente economiza MUITA largura de banda e poder de processamento. No entanto, para transferência de vídeo em tela cheia, não ajuda muito, pois a tela inteira precisa ser transferida com muita frequência. Conforme escrito acima, as máquinas atuais provavelmente não poderão codificar em tempo real o conteúdo da tela em Full-HD e transmiti-lo para um aplicativo de controle remoto, pois o host precisará decodificar o conteúdo do vídeo e recodificar as imagens brutas antes de enviar para a rede. Algumas máquinas Dual-Core mais antigas estão no limite ao decodificar o conteúdo de vídeo em Full HD.
Para melhorar a velocidade do controle remoto do VNC, faça o seguinte:
- A maioria dos servidores / clientes VNC suporta múltiplos algoritmos de compactação. Alguns deles são otimizados para largura de banda pequena, outros para boa qualidade de imagem e outros para baixa latência. Isso toca outro aspecto do controle remoto. Como o serviço é um assunto interativo de latência (você não deseja ver a reação a um clique do mouse logo após 5 minutos de codificação).
- Tente reduzir a quantidade de alterações na tela em sua máquina host. Por exemplo, tente desativar os efeitos da área de trabalho do Windows, animações etc. Isso economiza largura de banda, pois apenas partes alteradas da tela são transferidas pela rede.
- Tente desativar outros efeitos visuais no host, como transparência. Janelas transparentes usadas pelo Vista / Win7 reduzem a "compressibilidade" das imagens. Áreas uni-coloridas / "planas" são muito mais eficientes para compactar do que cores vibrantes e detalhes sofisticados. Desabilitar os efeitos de transparência e área de trabalho do Aero realmente acelera a experiência do controle remoto. A maioria das ferramentas de controle remoto ainda permite desativar esses efeitos automaticamente na conexão (por exemplo, Microsoft RDP e algumas implementações de VNC).
- O mesmo se aplica às imagens de fundo. Tente usar a configuração de fundo colorido em vez de imagens em HD.
Outro problema para o VNC é que ele precisa detectar as alterações na tela. Algumas implementações de VNC fazem capturas de tela "burras" e as comparam com a captura de tela anterior para detectar alterações. Isso já está tomando muito poder. Algumas implementações mais avançadas funcionam com drivers de vídeo especiais (verifique UltraVNC), que são mais eficientes aqui, mas exigem a instalação de drivers especiais.
Claro que tudo isso não ajuda se você estiver reproduzindo um vídeo em sua máquina host. Nesse caso, o VNC terá que recodificar ~ 30 imagens em tela cheia por segundo e enviá-las via rede. Na maioria das compressões que podem ser executadas em tempo real pelas CPUs atuais, esse fluxo levaria> 8Mbps de largura de banda. Portanto, é inadequado para a maioria das conexões à Internet (pense especialmente em conexões DSL assimétricas com velocidade de upload tipicamente menor que 1 Mbps e, sim, é a velocidade de upload que importa no lado do host).
Pode ser adequado para uso em LAN, mas aqui você provavelmente deve pensar mais sobre a configuração de um servidor de mídia ou compartilhar sua mídia usando o servidor de mídia DLNA / UPnP (até o reprodutor de mídia Win7 pode fazer isso). Em seguida, use um cliente DLNA para reproduzir a mídia compartilhada.