Uma solução de software inerentemente conterá muito atraso devido ao seguinte:
- A leitura dos dados do buffer de estrutura da GPU é muito lenta.
- Mesmo com uma taxa de bits de destino em torno de 80% da Ethernet de gigabit (você não deseja 100% de utilização devido às deficiências resultantes da saturação), a maioria dos codecs de vídeo utiliza uma quantidade enorme de CPU para codificar 1080p em tempo real. Mesmo se você tivesse a codificação assistida por GPU, estaria consumindo o poder de processamento do próprio dispositivo que está processando o seu jogo, provavelmente diminuindo muito a taxa de quadros do jogo, devido à fraca capacidade de multitarefa da maioria das GPUs entre programas separados.
- A própria E / S Ethernet Gigabit sustentada - apenas enviando os dados finalizados pelo fio - consome uma CPU significativa devido a interrupções. À custa de alguma latência, você pode usar a moderação de interrupção, um recurso dos chipsets ethernet de servidor mais recentes, para reduzir o uso da CPU.
Se você quiser que ele seja suave e agradável, use um cartão de captura.
Aqui está um exemplo de um desses dispositivos: http://www.epiphan.com/products/frame-grabbers/vga2ethernet/
Este dispositivo tem o conceito geral de:
- Você conecta o dispositivo à sua placa gráfica
- Você conecta seu monitor ao dispositivo
- Você conecta a saída Ethernet do dispositivo a um computador ou roteador
- Você acessa a interface da Web do dispositivo através de Ethernet e, em seguida, possui streaming de vídeo, sem perdas, em tela cheia, se desejar
Como o dispositivo usa hardware dedicado para codificar os quadros e transmiti-los pela Ethernet, ele será muito suave, com FPS alto e confiável. Também simplifica bastante a configuração do software, eliminando a necessidade de soluções caras de pipeline no seu equipamento de jogo.
Se você não deseja gastar dinheiro e pode viver com um atraso extremo e um FPS muito baixo, pode tentar algo como escrever um pipeline no Gstreamer ou no VideoLAN (VLC) para capturar o buffer de quadros local, codificá-lo em algum codec de vídeo, e transmita-o via Shout ou RTP ou RTSP ou protocolo de streaming semelhante e faça o download / transmita-o do seu computador mais lento. Mas como eu avisei, isso será lento.