O Remio é construído em público por uma equipe pequena. Este é o diário de trabalho — caminhos de captura que desmontamos, ajustes de codificador que nos surpreenderam, orçamentos de latência que estouramos e reconstruímos. As entradas mais novas ficam no topo; as mais antigas ficam como foram escritas, mesmo quando já mudamos de ideia.
Última atualização em 2026-05-197 entradasCronológico, da mais recente para a mais antiga
✦Notas de pesquisa
O diário de engenharia, em ordem.
Cada entrada é datada, tem um status e é autossuficiente. Lançado significa que a mudança está no ar na versão mais recente, experimento significa que ainda estamos medindo e arquivado significa que seguimos em frente.
Lançado
A tela virtual agora acompanha a janela do cliente.
Por semanas, o host macOS manteve a tela virtual fixa na resolução da tela do cliente, o que fazia o cursor do host e o do cliente discordarem sobre o tamanho no instante em que qualquer um dos dois mudava. Reescrevemos o gerenciador de telas virtuais para que o espaço de trabalho do host acompanhe em tempo real a área da janela do cliente. Agora os tamanhos do cursor combinam através da fronteira em qualquer tamanho de janela, do jeito que o Compartilhamento de Tela da Apple sempre se comportou.
pontos lógicos da tela virtual ≡ pontos da área da janela do cliente · limite de pixels 3840 · Retina 1× ou 2× escolhido por envelope de pixels nativo da janela
Experimento
Por que limitamos o envelope da tela virtual a 3840 pixels.
O framework interno do macOS que monta os modos de tela das telas virtuais tem um comportamento silenciosamente destrutivo: quando recebe uma dimensão máxima de 4096 ou mais, ele inventa um modo Retina 2× fantasma no máximo e rouba o indicador de ativo. A contagem de pixels solicitada dobra. Confirmamos isso empiricamente em quatro noites de sondagem e registro. Três mil oitocentos e quarenta cabem em todo MacBook Retina em tela cheia mais um monitor 4K externo, e o framework para de sintetizar. Ainda estamos observando a cauda longa.
quebra empírica em ≥ 4096 · limite = 3840 · cobre o MacBook Pro 16″ Retina (3456 × 2234) e o monitor 4K externo (3840 × 2160)
Lançado
Voltando à versão anterior do mecanismo de streaming após um experimento de uma semana.
Reconstruímos o nosso mecanismo de streaming sobre um branch mais novo, esperando que a lógica de cadência atualizada liberasse alguns milissegundos no caminho de rede local. Em vez disso, o buffer de recepção piorou em toda sessão remota que medimos: a mediana de ponta a ponta subiu 18 ms e a variância aumentou. Voltamos à versão estável em iOS, macOS, Android e Windows. Os patches do novo branch estão arquivados, caso o comportamento do upstream mude.
latência mediana da nova versão · 64 ms remoto · mediana da versão anterior · 46 ms remoto · flags de ajuste inalteradas
Lançado
Detecção adaptativa de bitrate para rede local vs remoto a partir da primeira amostra de ida e volta.
O host agora espera a primeira medição do tempo de ida e volta depois que a conexão sobe e então escolhe um de dois envelopes de bitrate. Abaixo de 15 ms, a conexão é tratada como direta na rede local: início de 8 Mbps, mínimo de 8 Mbps, máximo de 30 Mbps. Acima de 15 ms, é tratada como retransmitida ou distante: início de 2 Mbps, mínimo de 300 Kbps, máximo de 15 Mbps. O limite fica entre o Wi-Fi na mesma rede e qualquer relay móvel ou entre regiões plausível, então os falsos positivos têm sido raros na telemetria do beta.
direta na rede local · 1 – 5 ms · Wi-Fi na mesma rede · 5 – 10 ms · relay regional · 30 – 80 ms · 4G · 40 – 100 ms
Lançado
H.265 por hardware na AMD como o codificador principal do host Windows.
Depois de uma longa disputa contra codificadores concorrentes, o H.265 por hardware na AMD venceu todos os benchmarks de host Windows que nos importavam: menor tempo mediano de codificação, menor pico de quadro-chave, e a predefinição de bitrate constante de latência ultrabaixa se comporta de forma previsível sob pressão de buffer. O H.264 permanece como alternativa quando a GPU discorda. B-frames desligados. Flag de baixo atraso ligada. O codificador sempre emite exatamente um quadro por tick de captura.
Por que paramos de armazenar quadros em buffer de vez.
Uma área de trabalho remota não é uma chamada de vídeo. Cada quadro é o estado mais recente da tela. Um quadro antigo é, por definição, uma mentira. Reconstruímos o caminho de recepção para que não haja buffer de reprodução: um quadro chega, é decodificado, é renderizado, nessa ordem, no mesmo intervalo de quadro. Quadros perdidos pedem um quadro-chave novo em vez da retransmissão do antigo. Aceitamos o congelamento breve ocasional. Não aceitamos o imposto constante de milissegundos de uma fila.
atraso de reprodução forçado · mín. 0 / máx. 0 · atraso mínimo de reprodução · 0 · pedido de quadro-chave na perda · sem retransmissão de pacotes
Arquivado
O orçamento de latência, escrito pela primeira vez.
Sentamos em uma sala e trabalhamos de trás para a frente a partir do número que queríamos que os usuários sentissem — menos de vinte milissegundos, de vidro a vidro, em uma sessão típica de rede local. Captura, codificação, cadência, envio, buffer de recepção, decodificação, renderização. Escrevemos cada uma e demos a ela um orçamento em milissegundos que podíamos medir. A maioria das entradas deste diário vem de defender esses números no tráfego de produção.
captura · 1 ms · codificação · 3 ms · rajada de cadência · ≤ 10 ms · buffer de recepção · 0 ms · decodificação · 2 ms · renderização · 1 ms
✦Envelope de sinal
O que medimos, sessão após sessão.
Esses quatro números vão em toda nota de versão porque descrevem como a conexão realmente é — e não o que ela afirma em uma ficha técnica.
Resolução do streaming
Até 6Kenvelope de pixels nativo, Retina 1× ou 2× escolhido por janela
Taxa de quadros
Até 120 fpscadência fixa, B-frames desativados, um tick de captura por quadro
Latência de processamento, rede local
~8 msmedida internamente em uma conexão direta de dispositivo para dispositivo — o resto é a própria cadência de atualização de 60 Hz da sua tela
Criptografia de transporte
Ponta a pontacriptografia de ponta a ponta com uma chave de sessão nova a cada vez
O lab é atualizado quando algo chega ou algo quebra. Se isso parece mais útil do que uma newsletter trimestral, o link de download está a um clique — e o whitepaper de segurança também, para a versão longa.