Version

© Copyright 2025

Local Time

Lets create smth new together
Lets create smth new together
Lets create smth new together
Lets create smth new together
Lets create smth new together
Lets create smth new together
Lets create smth new together
Lets create smth new together
Visual Portfolio, Posts & Image Gallery for WordPress
Go back

Utilizando o Zoom para transmissões – Configurações básicas

2025, 5 anos do início da pandemia, e ainda temos pessoas que erram o básico na configuração de um zoom para transmissão. Sabe aquela reclamação “tá quadriculado!” ou “áudio tá baixo!” ou “cadê a música?”, eu vou te ensinar a nunca mais ter. E de bonus vai uma dica de ouro pro VMix pra parar de ter reclamações de eco.

Vamos começar pela qualidade de imagem e vamos da configuração básica até a mitigação de quando não tem o que fazer.

A primeira coisa importantíssima para o zoom é: saiba quem é o dono da reunião e se possível, seja o dono da conta.

Sendo o dono da conta ou tendo acesso como administrador, basta seguir as instruções desse link, o mundo ideal, você está numa conta business e vai conseguir habilitar o Full HD, se esse for seu caso eu te garanto que nunca mais terá problemas de qualidade caso o resto dos requisitos seja atendido. Se você conseguir habilitar o HD apenas, suas dores de cabeça vão diminuir, mas, nem tanto. Caso tenha interesse entre em contato que eu loco contas para eventos com o Full HD habilitado e você pode pagar só pelos addons necessários (big meeting e webinar).

Tendo a conta configurada corretamente e no caso de meeting a política de grupo criada e pros webinars a opção de HD ou Full HD habilitada, agora vamos pro client. É importante lembrar que existem configurações mínimas de hardware que são listadas no link que passei anteriormente.

Nas configurações de câmera do Zoom essas duas opções devem estar ativadas.

Agora, vamos pra situação “deu merda”, que é raro, mas, acontece muito. A melhor saída é iniciar um compartilhamento de tela com o PGM.

Iniciado esse compartilhamento você vai ter que alternar manualmente essa opção listada, “optimize for video sharing”, com isso você alterna entre a fluidez de 30 fps numa resolução mais baixa para horas de apenas movimento e quando desabilita a opção fica com maior resolução, mas, com algo em torno de 5 a 10 fps, que da uma imagem que fica travando.

A minha experiência com eventos corporativos é que essa solução não gera nem feedback depois, contanto que seja aplicada assim que a primeira reclamação de qualidade vier.

Agora vamos pro áudio:

Aqui devemos deixar a opção “Automatically adjust microphone volume” desabilitada, é comum o zoom alterar o volume, deixar ele lá em baixo e você fica que nem louco tentando descobrir o motivo.

No audio profile marcamos o “Original sound for musicians”, habilitamos o “High fidelity music mode” pra que a qualidade do áudio seja maior, deixamos o “Echo cancellation” marcado pro zoom dar uma ajudada a eliminar o eco de retorno e marcamos “Stereo audio”, pra enviar o áudio estéreo.

Depois disso, na reunião, você tem que manter esse botão marcado como “on”:

Eu não identifiquei o que faz isso, mas, é bom ficar de olho pois além de, por padrão, ele iniciar a reunião em off, ele também desliga aleatoriamente conforme algumas ações no Zoom em si, então, se está operando o Zoom da máquina encoder, lembre-se de tempos em tempos verificar se tá ok.

E agora vamos pra dica do VMix final. O grande lance da junção zoom + vmix que fazemos é que o vmix adiciona em torno de 120 a 180ms de delay no áudio, isso faz com que o filtro de eco do Zoom não seja efetivo e o ideal seria ter um sidechain compressor ou ducking. Infelizmente o vmix não oferece isso diretamente, mas, tempos o famoso scripting:

— Obrigado ao Kirill Kudryavtsev @ kin0shkin de https://sbtg.ru/ pelo script!

‘— Inicio script

dim translateInput as string = “Input Audio Zoom” ‘Nome do input com o audio da traducao
dim origInput as string = “Audio Estudio” ‘Nome do input com o audio do estudio

dim volumeStandart as string = “100” ‘Volume padrao do input estudio
dim fadeTimeStandart as string = “1200” ‘duracao do fade de audio pra quando silencio eh detectado na traducao

dim volumeSpeaking as string = “60” ‘Volume que o input do estudio fica quando algum remoto fala
dim fadeTimeSpeaking as string = “200” ‘duracao do fade pra quando o remoto inicia a fala

dim voicethreshold as string = “0.05”

dim checkingIter as integer = 10
dim checkingIterTime as integer = 200 ‘intervalo de duracao do loop, ideal entre 100 e 200

‘—- End of settings —-

dim voicemeter as string = “”
dim speaking as boolean = false
dim silence as boolean = false
dim silencechecking as integer = 0
dim muted as boolean = false

do while true

dim xml as string = API.XML()
dim x as new system.xml.xmldocument
x.loadxml(xml)

voicemeter = (x.SelectSingleNode(“//input[@title='”& translateInput &”‘]/@meterF1”).Value)
if (x.SelectSingleNode(“//input[@title='”& translateInput &”‘]/@meterF2”).Value) > voicemeter
voicemeter = (x.SelectSingleNode(“//input[@title='”& translateInput &”‘]/@meterF2”).Value)
end if
muted = (x.SelectSingleNode(“//input[@title='”& translateInput &”‘]/@muted”).Value)

‘API.Function(“SetText”,Input:=”TextInput”,SelectedName:=”Timer.Text” ,Value:=voicemeter)
‘console.writeline(voicemeter)

if voicemeter > voicethreshold And voicemeter.IndexOfAny(“[E]”.ToCharArray) = -1 And Not muted

if silencechecking >= checkingIter ‘<> 0 ‘!=

‘console.writeline(“Speaking”)
silencechecking = 0
‘API.Function(“SetTextColour”,Input:=”TextInput”,SelectedName:=”Timer.Text”,Value:=”yellow”)
‘API.Function(“SetText”,Input:=”TextInput”,SelectedName:=”Timer.Text” ,Value:=”Перевод говорит! ” + voicemeter)
Input.Find(origInput).Function(“SetVolumeFade”, volumeSpeaking + “,” + fadeTimeSpeaking)

end if

‘console.writeline(silencechecking)

else

if silencechecking < checkingIter

silencechecking += 1

end if
if silencechecking = checkingIter

‘console.writeline(“Silence”)
‘API.Function(“SetTextColour”,Input:=”TextInput”,SelectedName:=”Timer.Text”,Value:=”white”)
‘API.Function(“SetText”,Input:=”TextInput”,SelectedName:=”Timer.Text” ,Value:=”Перевод молчит! ” + voicemeter)
Input.Find(origInput).Function(“SetVolumeFade”, volumeStandart + “,” + fadeTimeStandart)
silencechecking = checkingIter + 1

end if

‘console.writeline(silencechecking)

end if

sleep(checkingIterTime)

Loop

‘— End Script

As principais linhas pra editar nesse script são:

dim translateInput as string = "Input Audio Zoom" ‘Nome do input com o audio da colaboracao remota

Coloque o nome do input que vem a colaboração remota.

dim origInput as string = "Audio Estudio" 'Nome do input com o audio do estudio

Coloque o nome do input com o áudio vindo do estúdio.

dim volumeSpeaking as string = "60" 'Volume que o input do estudio fica quando algum remoto fala

Configure conforme seu gosto, quão baixo o volume do estúdio deve ir quando alguém remoto fala.

O que esse script faz é, sempre que a pessoa remota fala algo, o áudio do estúdio é diminuído automáticamente, assim, a captação que ocorre do som atrasado dessa pessoa remota não sai no sinal de ida pro colaborador remoto e o problema de eco acaba.

Share this

No comments

Be the first to comment.

Leave a comment: