Repository navigation
feat: formato Compatível de tela no desktop e correções do Firefox na web - #887
Merged
Merged
Conversation
lucastaonline
marked this pull request as draft
November 5, 2026 21:03
lucastaonline
force-pushed
the
lucastaonline-web-firefox-tela
branch
from
November 5, 2026 21:35
46e988e to
8f9137a
Compare
lucastaonline
marked this pull request as ready for review
November 5, 2026 21:35
lucastaonline
force-pushed
the
lucastaonline-web-firefox-tela
branch
from
November 5, 2026 22:27
8f9137a to
9c27fd9
Compare
… web
O app desktop ganha o formato Compatível (H.264 Constrained Baseline), que o Firefox
e o Safari assistem, ao lado de Melhor qualidade (H.264 Main ou AV1). Na web, o Firefox
volta a compartilhar tela (o id {uuid} do MediaStream era recusado), falhas de codec
deixam de virar falha de conexão e as mensagens ficam em linguagem simples.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
lucastaonline
force-pushed
the
lucastaonline-web-firefox-tela
branch
from
November 5, 2026 22:27
9c27fd9 to
293c72e
Compare
Closed
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O que muda
Quatro pedidos do desenvolvedor, a partir do teste no Firefox na v41.5.4-beta.
1. O Firefox não conseguia iniciar o compartilhamento ("erro inesperado")
Causa raiz: o id de cada tela vem do
MediaStreamlocal (stream.id). O Firefox dá a todoMediaStreamum id no formato{uuid}, com chaves, e a regrascreenShareIdSchema(^[A-Za-z0-9_.-]{1,64}$) recusa as chaves. Osource-addcaía num ZodError.Correção:
core/screenShareStream.tsdá ao stream um UUID próprio quando o id do navegador não serve. No Chromium e no Electron, nada muda. Não há mudança de protocolo. Reproduzido no Firefox: antes vinha o ZodError; agora a tela entra no ar.2. AV1 do desktop no Firefox mostrava "Não foi possível estabelecer ou manter"
succeeded), mas sem nenhum pacote de vídeo num navegador que não reproduz o formato, o fim do prazo de início agora viraunsupported, e não falha de rede.RemoteScreenPresentations.browserFailedgravavaconnection-failedfixo para qualquer erro. Agora a razão sai debrowserScreenFailureReason, a mesma regra que a assinatura usa.consumedo SFU só deixa de classificar como codec umAbortError(aposentadoria), e não qualquerDOMException.3. Textos em linguagem simples
4. Formato Compatível no app desktop
Fica em Configurações → Qualidade e compartilhamento, num novo grupo "Formato do vídeo". Ele usa os mesmos cards e a mesma configuração (
screenFormat) do diálogo da web, ou seja, uma regra só.browserScreenFormatcontinua valendo.h264Only, com AV1 nunca entre os candidatos). O perfil chega à sonda da fonte e ao publicador.--h264-profile=constrained-baseline. x264, NVENC e AMF usam o perfilbaselineda lista do OBS, que é o único "baseline" oferecido.NormalizeConstrainedBaselinemarca oconstraint_set1de um SPS Baseline sem a marca. Isso é Constrained Baseline, pela H.264 A.2.1. O SPS é validado como perfil 66, e a configuração informada pelo host (profile) é conferida.videoInput: 'encoded-h264-cb', pela export novamonky_rtc_engine_create_encoded_compatible.42e01fdo roteador, sem mudança no servidor.H264Bitstreamaceita CB e recusa PPS com grupos de slices, predição ponderada ou imagens redundantes.H264_ConstrainedBaseline_AutoLevel(macOS 12+; nos anteriores, "perfil não suportado"). O probe exige perfil 66 com oconstraint_set1.compatibleScreenProfile, regra única para web e desktop). Não foi preciso limitar a 720p30.Os encoders de hardware no formato Compatível (NVENC e AMF; o QSV não é usado pelo Monky) não têm validação no CI, que não tem GPU. O CI compila e testa:
Se um driver recusar o perfil
baseline, o compartilhamento no Compatível falha com erro de encoder, e o app tenta outro candidato ou o software, como hoje.Testes de regressão
Todos falham sem a correção; conferi revertendo cada uma.
{uuid};unsupported, Chromiumconnection-failed);browserScreenRefusal.h264Only, nas duas estratégias;encoded-h264-cb;H264Bitstream.O que falta validar fora do CI