Skip to content

Vcall 3.17.3

Choose a tag to compare

@github-actions github-actions released this 31 Oct 06:36
4b03bfd

Vcall

Vcall 3.17.3: vídeo e jogo compartilhados passam de 50 quadros por segundo, e o som da tela chega junto com a imagem.

Mais de 50 quadros no vídeo compartilhado

Um vídeo a 60 quadros por segundo compartilhado pelo aplicativo de mesa travava em ~45. O motivo era uma regra do Chromium: a captura de tela só pode ocupar metade do tempo de um núcleo do processador. O Vcall pedia a imagem já reduzida (para 720p ou 1080p), e reduzir dentro da captura custava ~6 ms por quadro. Cada quadro levava ~11 ms, e a próxima captura só vinha 22 ms depois.

Agora, na Fluidez, a janela é capturada no tamanho dela (até 1440p) e quem reduz a imagem é o codificador, em outro núcleo. Cada captura caiu para 6 a 9 ms.

Medido no notebook de teste, com o vídeo codificado pelo processador e quem assiste na mesma máquina:

O que foi compartilhado Antes 3.17.3
Gameplay do YouTube a 1080p60, em tela cheia, com o Vcall atrás 43 a 45 qps 53 a 57 qps
Animação a 60 qps, com o Vcall minimizado 41 a 46 qps 52 a 55 qps
Animação a 60 qps, com o navegador em tela cheia 42 a 47 qps 52 a 56 qps

Pela internet (rede simulada com 3, 6 e 10 Mbps de envio e 1% a 2% de perda), a tela chegou a 59 quadros por segundo nas três. Com pouca banda, a imagem diminui para caber e os quadros continuam.

O som da tela junto com a imagem

O som do computador e a imagem da tela iam como duas transmissões soltas, e quem assistia tocava cada uma no seu ritmo. Agora vão juntas, e quem recebe segura a imagem para casar com o som.

Medido com uma tela que pisca e apita no mesmo instante, a diferença entre o som e a imagem para quem assiste caiu de ~95 ms para ~70 ms. O que sobra é o tempo que o Windows leva para entregar o som do computador ao Vcall.

Linux

A captura de tela não pede mais de 60 quadros por segundo no Linux. O PipeWire não entrega mais que isso, e no X11 pedir 120 só capturava e mandava quadros repetidos.

O Vcall abre mesmo com a porta ocupada

Se outro programa, ou outra cópia do Vcall, já usava a porta 7718, o aplicativo mostrava "A JavaScript error occurred in the main process" e ficava sem janela. Agora ele usa a porta seguinte, como já deveria.