Codec leve para streaming de 1080p 60 FPS em tempo real

0

Especificando o Problema

Eu quero transmitir meu desktop para outro computador com Ethernet de 1 Gbps, com os seguintes requisitos:

  • Resolução: 1920 x 1080
  • FPS: 60
  • Dados de entrada: cor verdadeira de 24 bits bruta (3Gbps)
  • Taxa de bits de saída máxima: 800 Mbps
  • Latência: < 50 ms (latência de rede é inferior a 1 ms)
  • CPU: use menos de 20% de Intel Core2 Quad Q9300
  • Não depende de aceleração de hardware específica

Suponha que eu esteja jogando um jogo pelo stream (que eu não sou), então a taxa de quadros e a latência são o problema mais crítico.

Pergunta

Estou procurando uma solução em que possa compactar os dados brutos de vídeo com velocidade de 10x a 20x em tempo real. Eu não me importo com o bitrate.

Software testado

  • RDP : Usa menos de 40Mbps na mais alta qualidade e não há opção para definir a taxa de quadros para 60FPS.
  • TightVNC : Permite especificar a qualidade e o algoritmo de codificação. Usando o parâmetro "raw tight" as encoding com AVB 80Mbps 60FPS atingido em 4GHz Intel Core i7-6700K , mas na máquina de extremidade inferior, alguns começam a travar. Usando o raw encoder, o lag desapareceu, mas a largura de banda necessária passou de 3Gbps para que o fps seja limitado e alguns quadros sejam rasgados
  • GamingAnywhere : Este software usa o H264 para codificar dados brutos e enviá-los pela rede, mas o codificador impede que ele alcance 60FPS (a largura de banda usada é < 60 Mbps)

Codificadores testados

Testado na entrada de dados brutos - thread único:

  • H264: corre a 1,33x (1x significa 60FPS)

    ffmpeg -i raw.avi -vcodec libx264 -crf 0 -preset ultrafast -threads 1 out.mp4

  • MJPEG: executado a 0,33x

  • PNG: O PNG é mais complexo do ponto de vista computacional do que o MJPEG, por isso não o testei.
por user41209 22.03.2018 / 15:57

1 resposta

0

A resposta é VC2, que é especificamente projetado para Ethernet e streaming de vídeo 1080p 60FPS. da página do codec no site ffmpeg

SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed at professional broadcasting but since it supports yuv420, yuv422 and yuv444 at 8 (limited range or full range), 10 or 12 bits, this makes it suitable for other tasks which require low overhead and low compression (like screen recording).

target video bitrate Usually that’s around 1:6 of the uncompressed video bitrate (e.g. for 1920x1080 50fps yuv422p10 that’s around 400Mbps). Higher values (close to the uncompressed bitrate) turn on lossless compression mode.

    
por 22.03.2018 / 18:13