É o sistema que põe um canal de televisão no ar — a partir de um Mac. Carrega vídeos, monta o alinhamento do dia, e emite para NDI, YouTube, SDI e mais — sozinho, 24 horas por dia.
Emite 24/7
Reproduz playlists de MP4, MKV e mais, com cortes automáticos entre programas.
Várias saídas ao mesmo tempo
NDI, RTMP, SRT, HLS e SDI em simultâneo — todas as plataformas de uma só vez.
Grafismos ao vivo
Logo, lower thirds e templates sobre o vídeo, sem cortar a emissão.
Schedule automático
Defines o horário do dia e cada programa arranca sozinho à hora certa.
Alarmes em tempo real
Deteta imagem negra, silêncio e imagem congelada — e avisa-te logo.
Compliance automático
Grava tudo o que vai para o ar, para arquivo legal, com retenção gerida.
Para quem é este manual: para quem nunca abriu o KK Playout. Não precisas de saber de broadcast — cada passo mostra-te exatamente onde carregar. Usa o seletor Leigo / Avançado no topo: em "Leigo" vês só o essencial; em "Avançado" aparecem os detalhes técnicos.
Por baixo do capô Técnico
Camada
Tecnologia
Interface
SwiftUI · Swift 6 (strict concurrency)
Vídeo / Áudio
AVFoundation · FFmpeg 7.x · Metal · AAC
Saídas
NDI SDK 6 · DeckLink SDK · RTMP/SRT/HLS
Por canal
ChannelPipeline independente · actor isolation · OSAllocatedUnfairLock
Persistência
SwiftData (canais, biblioteca, schedule)
Escala
Single · Dual · Quad · Enterprise (22 canais) — por LicenceTier
Começar
Instalar e abrir pela primeira vez
Cinco passos. Não precisas de introduzir nenhuma chave — a app reconhece o teu Mac e arranca em modo de experiência.
1
Abre o ficheiro KKPlayout.dmg
É o ficheiro que recebeste. Clica duas vezes para o abrir.
2
Arrasta o ícone para a pasta Aplicações
A janela mostra o ícone do KK Playout e um atalho para Aplicações. Arrasta um para o outro.
3
Abre a app
Clica duas vezes no KK Playout em Aplicações. Se o macOS pedir autorização, vai a Definições do Sistema → Privacidade e Segurança e clica Abrir Mesmo Assim.
4
A licença confirma-se sozinha
A app verifica o hardware automaticamente e arranca em modo de experiência (30 dias). Não tens de fazer nada.
5
Estás dentro
A app abre na vista Air. A partir daqui, segue o passo 1 deste manual.
Arrancar com o Mac: para o KK Playout abrir sozinho sempre que ligas o computador, vai a Definições do Sistema → Geral → Itens de Início de Sessão e adiciona a app. Essencial para emissão 24/7.
Requisitos de sistema Técnico
Componente
Requisito
macOS
14.0 Sonoma ou superior
Processador
Apple Silicon M1+ (M2 Pro ou superior para 4+ canais)
RAM
16 GB mínimo · 32 GB para 4+ canais simultâneos
Disco
SSD NVMe — 512 GB+ livres para o compliance recorder
Rede
Gigabit para NDI · ~50 Mbps por canal RTMP/SRT 1080p
SDI
Placa Blackmagic DeckLink + drivers Desktop Video
Começar
O mapa da aplicação
Tudo no KK Playout vive em quatro separadores, sempre no topo. Conhece-os e nunca te perdes.
KK Playout
1234
A barra de separadores — está sempre presente, no topo da janela.
1Overview (Air) — o centro da emissão. Vês o que está no ar e controlas tudo: play, cortes, logo, alarmes. É onde passas a maior parte do tempo.
2Playlist — montas o alinhamento do dia: que programas passam, a que horas, por que ordem.
3CG — os grafismos ao vivo: logo do canal, lower thirds (faixas de nome), texto.
4Gestão — tudo o resto: biblioteca de vídeos, saídas, scheduler, alarmes, compliance, operadores e definições.
A indicação ON AIR à direita pisca a vermelho sempre que estás a emitir. Se não estiver a piscar, não está nada a ir para o ar.
01 Licença e arranque
Ativar a licença
À primeira abertura, o KK Playout verifica o hardware automaticamente e arranca em modo trial de 30 dias — não precisa de qualquer chave para começar. Este ecrã mostra a impressão digital (única para este Mac) e o campo para ativar uma licença definitiva.
KK Playout — Ativação de Licença
KK PLAYOUT
Ativação
MODO DE EXPERIÊNCIA — 27 dias restantes
Impressão digital do hardware
A1B2-C3D4-E5F6-7890
Chave de licença
1234
Ecrã de ativação à primeira abertura — o trial arranca automaticamente. Copia a impressão digital se precisares de suporte.
1Banner de trial (âmbar). Mostra que a app corre em modo de experiência com N dias restantes. Quando o trial expira, a app para de emitir até ativares uma licença.
2Impressão digital do hardware. É único para este Mac — a licença ativa-se com base nesta fingerprint. Copia-o se contactares suporte.
3Campo de chave de licença. Cola aqui a chave que recebeste por email. Formatos: XXXX-XXXX-XXXX-XXXX (chave padrão) ou * (licença master — admin).
4▶ Ativar Licença. Carrega para validar e ativar a chave. Em 1-2 segundos a app confirma sucesso ou erro.
Passo-a-passo
1
Confirma o banner de trial
À primeira abertura, a app mostra MODO DE EXPERIÊNCIA com os dias restantes. O trial não bloqueia nada — podes emitir normalmente durante estes 30 dias.
2
Copia a impressão digital (opcional)
Se mais tarde contactares suporte, copia a fingerprint carregando em Copiar. Serve para validar o Mac.
3
Cola a chave de licença (quando tiveres)
Quando receberes uma licença por email, cola a chave no campo Chave de licença. Pode estar inativa agora — quando precisares, volta aqui e ativa.
4
Carrega em ▶ Ativar Licença
A app valida a chave em 1-2 segundos. Se for válida, o banner muda para LICENÇA ATIVA (verde) e podes emitir indefinidamente.
Trial vs. Licença: o trial deixa-te emitir 30 dias sem qualquer chave. Depois de expirar, a emissão para até ativares uma licença. Durante o trial, o KK Playout tem todas as funcionalidades — é 100% funcional.
Arranque automático: para que o KK Playout inicie sozinho quando o Mac arranca, vai a Definições do Sistema → Geral → Itens de Início de Sessão e adiciona o KK Playout à lista. Assim emites 24/7 sem alguém ter de abrir a app manualmente.
Como a licença funciona Técnico
A licença é um JWT assinado com uma chave privada conhecida apenas pelo servidor de licenças. O cliente valida a assinatura localmente (sem conexão) usando uma chave pública embutida. A fingerprint do hardware é derivada do UUID do sistema (immutable entre reboots) + modelo do Mac — torna cada licença específica a um único computador.
Preview funciona, mas emissão bloqueada. Um modal avisa "licença expirada — contacta suporte".
Licença inválida
—
Um campo de erro mostra exatamente qual é o problema (chave inválida / fingerprint não corresponde / expirada).
Ativo
Conforme contrato (1 ano, unlimited, etc.)
100% funcional até ao fim da validade. 7 dias antes de expirar, aparece um aviso.
Tiers de licença: cada tier limita o número de canais simultâneos (Single=1, Dual=2, Quad=4, Enterprise=22). A app carrega a tier a partir da licença e mostra um badge no Air ("1 Canal" / "4 Canais" / etc.).
02 Importar vídeos
Importar os teus vídeos
A Biblioteca é o arquivo de todos os vídeos que podes emitir. Quando adicionas um ficheiro, a app lê automaticamente a duração, resolução, codec e áudio. Depois podes arrastar qualquer vídeo para a playlist (passo 3) ou para o ar.
KK Playout — Gestão · Biblioteca
1234
Ecrã de Gestão — Biblioteca. Os números marcam onde carregar para adicionar e gerir vídeos.
1Sub-separador Biblioteca. Estás nesta vista. Aqui vês todos os ficheiros catalogados e podes adicionar novos.
2Botão Ingerir (azul). Clica aqui para abrir um selecionador de ficheiros — escolhe um ou vários MP4, MKV ou MOV para adicionar à biblioteca.
3Pasta Watch Folder. Aponta uma pasta no teu disco — qualquer vídeo novo que coloques ali entra automaticamente na biblioteca.
4Ponto verde = ficheiro disponível. Cada linha na tabela começa com um ponto: verde significa que a app encontrou e leu o ficheiro; laranja (se aparecer) quer dizer que o ficheiro está em falta (foi movido ou apagado).
Passo-a-passo
1
Clica em Ingerir
Abre o selecionador de ficheiros do macOS. Podes escolher um ficheiro ou vários ao mesmo tempo (segura Cmd e clica).
2
Seleciona os teus vídeos (MP4, MKV ou MOV)
A app aceita qualquer formato de vídeo. Carrega em Abrir (ou Importar) quando estiveres pronto.
3
Aguarda enquanto a app analisa os ficheiros
Pode levar alguns segundos (depende do tamanho). A app lê: duração, resolução, codec, frame rate e áudio.
4
Os vídeos aparecem na lista com um ponto verde
Agora podes arrastar qualquer um para a Playlist (passo 3) ou clicar nele para ver os detalhes.
5
(Opcional) Usa Pasta Watch Folder para automação
Se preferires deixar uma pasta vigiada, clica em Pasta Watch Folder, escolhe a pasta, e novos vídeos que ali chegarem entram automaticamente na biblioteca.
Arrastar do Finder: em vez de clicar em Ingerir, podes arrastar ficheiros diretamente do Finder para a tabela da Biblioteca — a app importa-os na mesma.
Formato compatível: a app aceita MP4, MKV, MOV, WebM e quase tudo o que o teu Mac consiga ler. Se um ficheiro não funcionar, testa-o no QuickTime (Aplicações → QuickTime Player) — se lá não abre, a app também não consegue.
Análise técnica dos ficheiros Técnico
Quando importas um ficheiro, a app executa uma análise estrutural via AVAssetReader (aceleração de hardware) ou FFmpeg (fallback). Extrai média aritmética de LUFS a partir de um probe de 10s do áudio. Qualquer erro (codec não suportado, áudio corrupto) marca o ficheiro em laranja.
Campo
Significado
Exemplo
Duração
Tempo total do vídeo (HH:MM:SS)
00:30:00 (30 minutos)
Tamanho
Tamanho do ficheiro no disco
1.4 GB
Codec
Compressão de vídeo (h264, h265, ProRes, AV1, VP9)
h264 (compatível, rápido)
FPS
Frame rate (frames por segundo)
25p (padrão europeu PAL)
LUFS
Loudness (áudio) em unidades relativas ao silêncio completo
-23.1 LUFS (normal broadcast)
Quando importas um ficheiro pesado (AV1 8K, VP9): a app pode levar minutos a analisar. Nesse caso, a entrada fica acinzentada até terminar. Se preferires velocidade, converte para H.264 1080p (toma ~30 minutos num Mac mini, mas depois toca instantaneamente).
03 Montar a playlist
Montar a playlist do dia
A playlist é a lista de programas que vão para o ar, por ordem. Cada programa tem uma hora de início, um nome e um vídeo associado. Com a playlist pronta, só falta pôr no ar (passo 4). Aqui vês como adicionar, organizar e validar.
KK Playout — Playlist
12345
Vista Playlist com 4 programas — o painel mostra hora, nome, ficheiro e estado. Os números indicam os elementos principais.
1Separador "Playlist". Aqui adicionas, editas e confirmas o alinhamento do dia.
2Importar Excel / + Clip / Placeholder. "Importar Excel" carrega um CSV com o dia inteiro. "+ Clip" adiciona um vídeo manual. "Placeholder" marca um espaço vazio (a preencher depois).
3Filtros (Todos / Erros / A Confirmar). Reduzem a lista aos programas com estado específico — útil quando há muitos.
4Linha placeholder (âmbar com tracejado). Um programa criado mas sem ficheiro associado. Clicar e selecionar um vídeo da biblioteca confirma-o.
5Activar Schedule — botão cyan. Valida o dia (PRONTOS ≥ 1) e ativa a emissão. Aparece também no passo 4 · Air.
Passo-a-passo
1
Abre o separador Playlist
No topo da app, junto aos outros separadores (Overview, CG, Gestão), clica em Playlist.
2
Verifica a data
No topo vê a data do alinhamento (ex: "07 Jun 2026"). Se é outro dia, clica no seletor de data para mudar.
3
Adiciona programas de três maneiras
Opção A: Clica em + Clip → escolhe um vídeo da biblioteca → define a hora de início. Opção B: Clica em Importar Excel → abre um ficheiro CSV pronto (padrão abaixo) — a app importa tudo de uma vez. Opção C: Cria um Placeholder (espaço vazio) e associa um vídeo depois.
4
Confirma o estado de cada linha
Verde (Exacto) = ficheiro pronto; Âmbar (Aproximado) = ficheiro quase certo, confirma; Âmbar com tracejado (Placeholder) = sem ficheiro — seleciona um. Vermelho = erro na linha.
5
Verifica o rodapé: PRONTOS
No rodapé, "PRONTOS: 3" significa que 3 de 4 programas estão validados. Quando PRONTOS ≥ 1, o botão Activar Schedule fica ativo.
6
Resolve os placeholders (âmbar)
Clica na linha âmbar (Programa a Confirmar) → no painel de detalhe à direita (opcional), escolhe um vídeo da biblioteca e associa. A linha fica verde e "PRONTOS" aumenta.
7
Quando pronto, clica Activar Schedule
Valida a playlist inteira (duração total, sobreposições, gaps). Se estiver tudo bem, o alinhamento fica ativo — a app vai usar este dia para a emissão.
Importar Excel: Usa um ficheiro CSV com o padrão abaixo. A app lê automaticamente. Pode ser de um spreadsheet do Excel ou Google Sheets — basta guardar como CSV.
Arrastar da biblioteca: Se já tens a biblioteca aberta (passo 2), podes arrastar um vídeo diretamente para a playlist — poupa uns cliques.
Confirmação: Se deixares o alinhamento incompleto (com placeholders) e pressionares "Activar Schedule", a app avisa. Resolve as linhas âmbar antes de ativar.
Formato CSV para importação Técnico
Cria um ficheiro de texto (.csv) com uma linha de cabeçalho e uma linha por programa. A app lê automaticamente:
exemplo_playlist.csv
# hora,titulo,ficheiro,duracao
06:00,Bom Dia Portugal,/Users/mano/Videos/BomDiaPortugal.mp4,01:00:00
07:00,Culto de Domingo,/Users/mano/Videos/CultoDominical.mp4,01:30:00
08:30,Hinário JT,/Users/mano/Videos/HinarioJT.mp4,00:30:00
09:00,Palavra do Apóstolo,/Users/mano/Videos/PalavraApostolo.mp4,00:45:00
Salva este ficheiro e importa via Importar Excel. A duração é opcional — a app calcula automaticamente.
Modelos e tipos de conteúdo Técnico
Estado
Cor (borda)
Significa
Exacto
Verde
Ficheiro encontrado e pronto — 0 erros.
Aproximado
Âmbar
Ficheiro encontrado, mas nome ligeiramente diferente — valida antes de emitir.
Placeholder
Âmbar tracejado
Espaço criado mas sem ficheiro — obrigatório confirmar antes de ativar.
Erro
Vermelho
Ficheiro em falta ou inacessível. Verifica o caminho.
A emitir
Cyan
Este programa está no ar neste momento.
Estrutura de dados (SwiftData) Técnico
Cada playlist é um DaySchedule com N ScheduledProgram objects. Campos:
Campo
Tipo
Notas
date
Date
Data do alinhamento (ex: 07 Jun 2026, 00:00 UTC)
programs
[ScheduledProgram]
Array de programas, ordenado por startTime
startTime
TimeInterval
Segundos desde meia-noite local
asset
FileAsset?
Referência ao vídeo na biblioteca (nil = placeholder)
title
String
Nome do programa
channelID
String
Canal que emite este programa (ex: "ch1")
04 Pôr no ar
Pôr o canal no ar
Esta é a vista Air — o centro de comando da emissão. À esquerda vês e controlas o que está no ar; à direita vigias o som, as saídas e os alarmes. Com a playlist pronta (passo 3), pôr no ar é carregar num botão.
KK Playout — Air
123456
Vista Air com a emissão em curso — os números marcam onde carregar.
1Separador "Overview" (Air). É aqui que controlas a emissão. Está sempre no topo, à esquerda.
2▶ Take Next — pôr no ar / cortar para o próximo. O botão azul. Carrega para arrancar a emissão ou saltar para o programa seguinte da lista.
3Timecodes e barra de progresso.Decorrido (verde) e Restante (âmbar) dizem-te onde vai o programa atual.
4■ Parar. Corta o sinal para todas as saídas. Usa só quando queres mesmo terminar a emissão.
5Saídas Activas. Cada saída tem um ponto: verde = no ar, âmbar = à espera, vermelho = erro.
6Alarmes de canal. Negro, Áudio e Freeze devem estar todos a verde/OK. Se algum ficar vermelho, há problema no sinal.
Passo-a-passo
1
Confirma que tens a playlist montada
No separador Playlist (passo 3) deves ter pelo menos um programa. Volta a Overview quando estiver pronto.
2
Carrega em ▶ Take Next
A emissão arranca. Em 1-2 segundos o preview à esquerda mostra a imagem e o estado muda para — A EMITIR.
3
Confirma as saídas (lado direito)
Em Saídas Activas, os pontos devem ficar verdes. Se algum estiver vermelho, a saída tem um problema (vê o passo 6 · Saídas).
4
Mantém o olho nos alarmes
Negro / Áudio / Freeze a verde = tudo bem. Se ficares com um vermelho, abre o passo 8 · Alarmes.
5
Para saltar de programa, volta a carregar em ⏭ Avançar ou ▶ Take Next
O Avançar salta para o próximo clip de imediato. O Take Next faz o corte limpo para o próximo programa da lista.
Cuidado com o Parar. Clicar em ■ Parar durante a emissão corta o sinal para todas as saídas (NDI, RTMP, SDI) — os espectadores veem a ligação interrompida. Se só precisas de uma pausa breve, usa Pausar (congela o último frame) em vez de Parar.
Como o áudio e o vídeo arrancam em sincronia Técnico
Cada canal corre uma ChannelPipeline independente. No arranque, o pipeline usa um mecanismo hold-and-flush: o áudio é guardado em buffer (máx. ~60 frames ≈ 500 ms) até a primeira frame de vídeo chegar — garantindo que som e imagem começam juntos, sem o efeito de "ouvir antes de ver".
Decoder
Quando é usado
AVAssetReader
Primeira tentativa — aceleração de hardware (VideoToolbox) para H.264, HEVC, ProRes
FFmpeg / libdav1d
Fallback quando o AVAssetReader falha — AV1, VP9 e formatos exóticos
05 Logo e grafismos
Logo e grafismos ao vivo
A secção CG (Computer Graphics) permite adicionar logos, lower thirds (faixas de apresentador), grafismos e crawlers de notícias — tudo sobreposto ao vídeo, sem nunca cortar a emissão. Cada elemento controla-se pelo painel On-Air durante a transmissão.
KK Playout — CG (Editor de Grafismos)
12345
Vista CG com layers ativas — Logo (verde, ON) e Lower Third (OFF). O preview mostra um lower third de apresentador e o logo no canto superior direito.
1Separador "CG" (Computer Graphics). É aqui que configuras e controlas os grafismos. Abre-se durante a gestão da emissão.
2Rail On-Air com layers. Cada chip representa um elemento (Logo, Lower Third, Graphics, Crawl). O ponto verde = ativo, vermelho/cinzento = inativo. Alguns estão bloqueados (cadeado).
3Campo de texto ad-hoc. Permite enviar uma mensagem rápida (aviso, correcção, título) sem modelo pré-definido — carrega Enter para enviar.
4Botão TAKE (âmbar). Envia o texto ad-hoc para o ar (com um fade rápido). CLEAR remove o grafismo atual, TAKE ALL aplica todas as camadas ativas.
5Preview da saída (16:9). Mostra em tempo real como ficam os grafismos sobre a imagem — Lower Third em baixo, Logo em cima à direita, etc.
Passo-a-passo
1
Abre o separador CG durante a emissão
Já tem o vídeo a decorrer. Clica na aba CG no topo (ao lado de Overview, Playlist e Gestão).
2
Vê o Rail On-Air com os grafismos disponíveis
À esquerda tens os chips: Logo, Lower Third, Graphics e Crawl. Um ponto verde = está activo neste momento.
3
Para usar o Logo: clica no chip
Se o Logo estiver OFF, carrega para ligar (ponto fica verde). Se estiver ON, carrega novamente para desligar. O logo aparece no canto superior direito do preview.
4
Para ativar um Lower Third: seleciona um template
Clica no chip Lower Third para abrires a lista de templates. Escolhe um (p. ex. "Apresentador · Cargo") e a faixa aparece em baixo no preview.
5
Escreve o texto ad-hoc se precisares de uma mensagem rápida
No campo "Texto ad-hoc… (Enter = Take)", digita a mensagem (ex. "ÚLTIMA HORA: ..."). Carrega Enter ou TAKE para enviar para o ar.
6
Usa CLEAR para limpar um grafismo
Se quiseres remover o grafismo actual sem esperar que expire, carrega em CLEAR. Desaparece instantaneamente.
7
Confirma tudo no preview (lado direito)
O canvas mostra exatamente o que o espectador está a ver — Lower Third em baixo, Logo em cima à direita, cores, fontes, etc.
Lower thirds com template: cada template é um desenho pré-aprovado (nome · cargo, programa · hora, etc.). Preenches os campos de texto (nome, cargo) e ele aparece no ar instantaneamente — não há espera.
Designer personalizado: se quiseres criar logos ou templates customizados, qualquer designer consegue — cada grafismo é um ficheiro HTML/CSS isolado. Contacta o suporte técnico para adicionar.
Arquitectura e templates avançados Técnico
Cada camada (Logo, Lower Third, etc.) é uma instância de GFXLayer + um HTML/CSS template renderizado por WKWebView. O pipeline interno é: template renderiza → CVPixelBuffer (Metal layer) → blend no vídeo via MetalCompositor (alpha compositing). Frame rate = 60 fps, latência < 1 frame.
Componente
Função
GFXViewModel
Gestão de estado (camadas activas, timings, transições)
Cada saída leva o sinal a um destino: NDI para a rede local, RTMP para YouTube/Facebook, SDI para equipamento de broadcast. Configuras todas aqui — e todas emitem em simultâneo.
KK Playout — Gestão › Saídas & Encoder
1234
Ecrã Gestão › Saídas — configura todas as saídas de sinal aqui.
1Sub-separador Saídas. Dentro de Gestão, é aqui que vês e configuras todas as emissões — NDI, RTMP, SRT, HLS e SDI.
2+ Adicionar. Cria uma nova saída: escolhe o tipo e preenche o destino (ex.: o URL e a chave do YouTube).
3Lista de saídas. Está vazia porque ainda não configuraste nenhuma. Cada saída que adicionares aparece aqui com o seu estado (verde = no ar).
4Iniciar Todas. Arranca todas as saídas configuradas de uma só vez.
Passo-a-passo
1
Abre a vista Gestão › Saídas
No topo, clica em Gestão (separador principal), depois em Saídas (sub-separador).
2
Para RTMP (YouTube, Facebook, Twitch):
Clica + Adicionar, escolhe RTMP, cola a URL da transmissão + chave de stream, e clica Guardar. A app conecta-se e começa a enviar quando emitires.
3
Para NDI (rede local):
Clica + Adicionar, escolhe NDI, dá um nome (ex: KKPlayout-CH1), e pronto. Qualquer ferramenta NDI (vMix, OBS) na mesma rede vê o sinal automaticamente — sem configurar IPs.
4
Para SDI (placa Blackmagic):
Se tiveres uma placa DeckLink instalada, clica + Adicionar, escolhe SDI Output, seleciona o dispositivo e o formato (1080i25, 1080p50, etc.). O áudio vai embedded PCM 24-bit.
5
Confirma os estados no Air
Volta ao separador Overview (Air) e verifica que no painel direito Saídas Activas todos os pontos ficam verdes quando emitires.
NDI é o mais simples. Não precisa de URLs nem chaves — só um nome. Se estiveres numa rede 1 Gbps com 8 canais ou menos, NDI é a melhor opção para replicação interna (vMix, OBS, ProPresenter).
RTMP requer a chave exata. Se colares a chave errada ou a URL sem barra final, a ligação nega. Confirma no YouTube / Facebook que a transmissão está em estado "Em Espera" antes de emitir.
Protocolos e URLs Técnico
Protocolo
URL / Destino
Latência
Caso de uso
RTMP
rtmp://a.rtmp.youtube.com/live2/[KEY]
6–8s
YouTube, Facebook, Twitch (standard)
RTMPS
rtmps://live-api-s.facebook.com:443/rtmp/[KEY]
6–8s
Facebook (encriptado)
SRT
srt://[host]:9000?mode=caller&latency=120
120–200ms
Transmissão de baixa latência (rede de banda larga)
Instala Blackmagic Desktop Video compatível com macOS · Verifica cabo 75Ω · Escolhe formato correto (1080i25, etc.)
Áudio dessincronizado
Codec mismatch · Atraso na rede · Fonte PTS incorrecta
Usa AAC em todas as saídas · Reduz latência SRT se possível · Verifica que o ficheiro source tem áudio correcto
07 Schedule automático
Schedule automático 24/7
Cria grades de programação recorrentes — o canal emite sozinho, dia após dia. Define blocos de programas (hora, duração, ficheiro, dias da semana) e a app gera automaticamente o alinhamento de cada dia à meia-noite.
KK Playout — Gestão / Scheduler
1234
Ecrã Scheduler com a grade semanal — cada coluna é um dia, cada bloco é um programa.
1Sub-aba "Scheduler". Dentro de Gestão, é aqui que configuras a grade recorrente.
2Grade semanal (7 colunas). SEG a DOM. Cada célula mostra os programas agendados para esse dia — blocos azuis (cyan), verdes, ou âmbares conforme o estado.
3Programas na grade. Cada bloco mostra a hora de início (ex "08:00") e o título (ex "Noticiário"). Clica para editar ou carrega "+" em célula vazia para criar novo.
4Botão "Activar Scheduler". Depois de definires a grade, carrega aqui para ligar — a partir de meia-noite, o alinhamento gera-se automaticamente para cada dia.
Passo-a-passo
1
Abre Gestão → Scheduler
Vês a grade semanal com 7 colunas (SEG a DOM). Se é a primeira vez, está vazia.
2
Cria uma regra: clica "+" numa célula vazia ou num dia
Aparece um painel: escolhe a hora de início, o título do programa, a duração, o ficheiro (biblioteca), e confirma os dias da semana (checkbox para cada dia em que se repete).
3
Preenche todos os blocos do dia / semana
Exemplo: segunda a sexta, 08:00 Noticiário (30 min) + 10:00 Culto (60 min) + 20:00 Mensagem (45 min). Ao fim define sábado e domingo em separado (horário diferente).
4
Confirma que não há sobreposições ni lacunas
A app avisa se um programa entra em conflito com o anterior ou se há buracos. Ajusta as horas e durações até ficarem correctas.
5
Carrega "Activar Scheduler"
A grade fica ativa. A partir de meia-noite, o alinhamento do dia seguinte gera-se automaticamente — não precisas de fazer mais nada, o canal emite sozinho.
O que acontece quando o Scheduler está ativo: cada noite à meia-noite, o app gera o alinhamento de "Playlist" para o dia seguinte com base nas regras. O operador pode sobrepor programas nesse dia (na Playlist) se for preciso. Se um programa não encontra ficheiro na biblioteca, o alarme de canal dispara e continua o anterior.
Emissão 24/7 sem operador: com o Scheduler ativo e a Compliance ligada, o canal emite sozinho (noite, madrugadas, fins de semana). Uma notificação por email avisa de alarmes — se silêncio ou negro, reativa a playlist de emergência.
Como o Scheduler gera o alinhamento Técnico
O Scheduler corre um ScheduleTask diário (macOS background task, ~00:00). Lê as regras recorrentes (ScheduleRule com bitmask de dias) e cria ScheduledProgram para cada dia. Se um programa não encontra Asset na biblioteca, marca-o com status .placeholder — a UI avisa.
Tempo
O que acontece
T − 5 min
Pré-carrega o ficheiro do programa (I/O assíncrono, não bloqueia a emissão actual)
T (hora exacta)
Transição automática (Take Next) para o programa (crossfade 500 ms ou corte imediato conforme config)
Ficheiro não encontrado
Alarme de canal (severity HIGH); continua o programa anterior ou passa a slate/emergência conforme policy
Fim do alinhamento
Repete desde o início (loop) — útil em canais 24/7 sem marcação de fim
08 Alarmes e monitorização
Alarmes em tempo real
O KK Playout vigia o sinal 24/7 e avisa-te se algo correr mal — imagem a preto, sem som ou imagem congelada. Cada alarme aparece num modal vermelho que podes reconhecer ou usar para ativar a playlist de emergência.
KK Playout — Air com alarme
KK PLAYOUT
Overview
Playlist
CG
Gestão
ON AIR
PREVIEW · SDI CH1 · 1080i25
00:10:32:23
— A EMITIR
Culto de Domingo
culto_domingo_2026-06-07.mp4
Alarmes de Canal
NegroALERTA
ÁudioOK
FreezeOK
ALARME DE CANAL
NEGRO DETECTADO
há 5 segundos
1234
Vista Air com um alarme de negro detectado — o modal vermelho aparece sobre o conteúdo, exigindo uma ação do operador.
1Indicador "Negro" a vermelho. No painel Alarmes de Canal à direita, o ponto fica vermelho e o estado muda para ALERTA.
2Título do modal. "ALARME DE CANAL" em letras vermelhas, com ícone de aviso (triângulo).
3Botão "Reconhecer" (cyan). Carrega para descartar o alarme — o modal fecha e voltas ao ar normalmente. Podes carregar em Enter para abreviar.
4Botão "Activar Emergência" (vermelho). Se o alarme indica um problema sério, carrega para mudar para a playlist de emergência (slate + intervalo institucional + repetição do último programa).
Passo-a-passo
1
Acede ao painel de monitorização
No separador Gestão (topo), clica em Monitorização — aí podes ajustar os limiares de cada alarme.
2
Configura cada alarme
Cada alarme tem um campo Limiar e Duração. Exemplo: "Negro" dispara após a imagem estar 5% mais escura durante 3 segundos. Ajusta conforme o teu conteúdo.
3
(Opcional) Email para alertas noturnos
Se emites à noite sem operador, cola um email no campo Enviar alertas para. Recebes uma notificação quando um alarme dispara.
4
Durante a emissão: reconhece o alarme
Se um alarme dispara, aparece um modal vermelho no Air. Clica ✓ Reconhecer para descartar — a app continua a emitir.
5
Se é grave: ativa a emergência
Se o problema persiste ou o sinal desapareceu, clica ⚠ Activar Emergência. A app muda para a playlist de segurança (slate + intervalo + repetição) automaticamente.
Os três alarmes.Negro = imagem demasiado escura (ex: vídeo corrompido). Áudio = silêncio prolongado (microfone desligado). Freeze = imagem congelada (processador travou). Todas as três têm indicadores no Air (lado direito).
Conteúdo parado sem som? Slideshow ou câmara fixa podem disparar o alarme de Freeze por engano. Se é intencional, reduz o Limiar de Freeze em Monitorização para ser menos sensível.
Thresholds técnicos Técnico
Cada alarme funciona por amostragem contínua do sinal. Os defaults abaixo podem ser ajustados conforme o teu hardware e conteúdo.
Alarme
Métrica
Threshold default
Duração
Nota
Negro
Luminância média do frame
5% (muito escuro)
3 segundos
Detecta vídeo corrompido ou cabo solto. Aumenta se o teu conteúdo tem cenas naturalmente negras.
Áudio
Nível RMS em dBFS
−60 dBFS (silêncio)
5 segundos
Detecta mic desligado ou ficheiro sem áudio. −60 é "quieto demais"; aumenta para −50 se houver ruído de fundo.
Freeze
Delta de pixels entre frames
0.5% (sem mudança)
5 segundos
Detecta processador travado. Baixa para 0.2% se slides mudam devagar; aumenta para 1% se conteúdo é muito estático.
Playlist de emergência Técnico
Quando carregas em Activar Emergência, a app muda para uma playlist de segurança hardcoded: (1) slate do KK Playout (10s); (2) intervalo institucional (5s); (3) repetição indefinida do último programa em emissão. Dura até reiniciares a emissão normal.
Exportar logs de alarmes Técnico
No painel Monitorização, o botão Exportar Log gera um CSV com cada alarme disposto (timestamp, tipo, duração, reconhecido por). Útil para auditorias regulatórias (ERC).
09 Compliance (gravação legal)
Gravar tudo o que vai para o ar
O Compliance Recorder guarda automaticamente tudo o que emites — para arquivo legal. A lei exige 90 dias em Portugal (ERC). Tudo corre em segundo plano, sem afetar a emissão.
KK Playout — Gestão › Compliance
1234
Vista Compliance com a gravação ativa — cada secção marcada permite configurar arquivo legal.
1Sub-separador Compliance — o gravador legal que arquiva automaticamente tudo o que vai para o ar.
2Estado do gravador. Mostra PARADO ou A GRAVAR. A gravação liga-se em Definições → Compliance.
3Espaço e estimativa. Quanto disco está usado e quanto arquivo cabe (ex.: ~618 GB para 30 dias).
4Export Assistant. Escolhe um intervalo de datas e exporta as gravações em ZIP (com o as-run log).
Passo-a-passo
1
Escolhe uma pasta segura (disco externo ou NAS)
Abre Gestão › Compliance. Carrega em Alterar Pasta e escolhe um disco de arquivo — recomendado: disco externo (USB 3.0+) ou NAS na rede. Não uses o disco principal da máquina — é arriscado.
2
Confirma a retenção (dias)
O campo mostra 90 dias por defeito. Se a lei local exige mais ou menos, ajusta com − e +. A app elimina automaticamente as gravações mais velhas que este limite — sem pedir confirmação.
3
Liga "Gravação Activa"
O botão de toggle fica verde. Pronto: a app começa a gravar tudo o que for emitido, em ficheiros de 1 hora cada. Nada mais é preciso fazer — corre sozinha em background.
4
Vigia o espaço em disco
O indicador Espaço em Disco mostra quantos dias de gravação cabem ainda. Se cair abaixo de 10%, a app avisa com um alarme. Aumenta o disco ou reduz a retenção.
Espaço crítico: 90 dias de gravação HD a 4 Mbps ≈ 380 GB por canal. Se tens 4 canais, multiplica por 4. Certifica-te de que tens espaço suficiente — a app avisa quando ficam <10% livres, mas é tarde demais para agir.
Organização automática: as gravações ficam organizadas por ano/mês/dia: `~/Pasta/2026/06/07/CH1_2026-06-07_08-00-00.mp4`. Podes procurar ficheiros por data — nada é baralhadado.
Configuração avançada Técnico
O Compliance Recorder corre num ChannelPipeline independente, com um tap de áudio/vídeo no ponto de saída final. Os parâmetros de gravação (codec, bitrate, duração de segmento) podem ser ajustados em Definições › Compliance.
Parâmetro
Valores
Padrão
Nota
Codec
H.264 / H.265 / ProRes
H.264
H.264 é universal; H.265 poupa ~30% de espaço
Bitrate
2–20 Mbps
4 Mbps
4 Mbps = qualidade "arquivo" suficiente para ERC
Segmentação
15 min / 30 min / 60 min
60 min
Ficheiros de 1 hora são 1.8–2.0 GB; facilita busca por hora
Contentor
MP4
MP4
Compatível com qualquer leitor; metadados embebidos
Retenção
7–365 dias
90 dias
Lei portuguesa (ERC): mínimo 90 dias
10 Definições
Configuração global do KK Playout
Aqui configuras a resolução de saída, frame rate, informações do canal, e as secções especializadas: Licença, Áudio, GFX, Alarmes, Compliance, Backups e mais. Tudo num só lugar.
KK Playout — Gestão · Definições
1234
Vista Gestão → Definições com a secção BACKUPS selecionada — os números marcam os pontos-chave.
1Barra de secções (à esquerda): Licença, Schedulação, Áudio, GFX, Alarmes, Compliance, Playback, SDI, NDI, API, Automação e Backups. Clica para abrir cada uma.
2Secção aberta. Aqui está a Schedulação — modo de schedule (Automático), fuzzy match e auto-save.
3Watch Folder. Uma pasta vigiada: vídeos novos entram na biblioteca automaticamente.
4Cópia Nocturna e Retenção. Backup automático da base de dados todas as noites e quantos dias guardar os schedules.
Passo-a-passo
1
Abre Gestão → Configurações
No topo, carrega no separador Gestão. Na linha de sub-abas, escolhe Configurações.
2
Escolhe uma secção na barra lateral esquerda
Clica em LICENÇA, ÁUDIO, COMPLIANCE, etc. Cada uma contém campos específicos. Para começar, deixa as predefinições — são ajustes para operadores experientes.
3
Ativa Backup Noturno (recomendado)
Na secção BACKUPS, liga o toggle. Define a hora (ex. 03:00) e escolhe uma pasta de destino (recomendado: disco externo ou NAS). Todos os dias a base de dados é guardada sozinha.
4
Altera Resolução e Frame Rate (opcional, pré-emissão)
Na secção principal, encontras Resolução de Saída (def. 1920×1080) e Frame Rate (def. 25). Só muda se souber o que faz — alterar durante emissão exige reiniciar o canal.
5
Guarda alterações (automático)
Qualquer mudança é guardada imediatamente. Sem botão de "Guardar" — o KK Playout aplica logo.
Alterações de Resolução e Frame Rate. Se mudares a resolução ou o frame rate durante a emissão, tens de parar e reiniciar o canal. Faz estas mudanças antes de emitir, ou numa pausa comprida entre programas.
Backup Noturno — dorme descansado. Ativa o backup automático: todas as noites a base de dados é copiada. Se algo correr mal, recuperas de um backup anterior sem perder a configuração.
Se algo corre mal (corrupção SwiftData, configurações perdidas, schedule deletado), abre Definições → BACKUPS e carrega em Restaurar de Backup. A app apresenta uma lista com data/hora de cada backup. Escolhe o mais recente antes do problema e confirma. A restauração é instantânea — a app recarrega com os dados do backup.
Espaço em disco. 90 dias de backup + compliance gravação ≈ 380 GB por canal. Confirma que tens espaço no disco externo ou NAS. A app avisa quando fica abaixo de 10% livre.
Avançado · Como funciona
O caminho do sinal
Do ficheiro até ao espectador, o vídeo percorre uma cadeia. Cada canal corre a sua, isolada das outras. Arrasta o diagrama para rodar.
Fluxo de sinal — 1 canal
Fonte → pipeline → encoder → todas as saídas em simultâneo. Arrasta para rodar.
1Fonte. O ficheiro de vídeo (ou um sinal ao vivo SDI/NDI) entra no pipeline. O decoder usa hardware (VideoToolbox) e, se falhar, FFmpeg.
2ChannelPipeline. O coração de cada canal: descodifica, mistura o áudio, compõe os grafismos (Metal) e sincroniza A/V.
3Encoder. O frame final é codificado (H.264/HEVC, AAC) uma só vez e distribuído.
4Saídas. NDI, SDI, RTMP, SRT e HLS recebem o sinal ao mesmo tempo — uma fonte, muitos destinos.
Etapa
O que faz
ChannelPipeline
Ciclo de vida do decoder, AudioMixer, compositor GFX (Metal) e distribuição às saídas — um por canal, isolado.
A/V Sync (arranque)
Hold-and-flush: o áudio é guardado em buffer (≈500 ms) até à 1.ª frame de vídeo, para começarem juntos.
O KK Playout foi otimizado para Apple Silicon. O Mac que escolhes determina quantos canais corres em simultâneo.
Mac
Canais HD
Canais 4K
Observação
Mac mini M2
1–2
1
Mínimo para emissão profissional
Mac mini M4 Pro
4
2
Ideal para TV regional (principal + backup)
Mac Studio M3 Ultra
8–10
4
Produção de média dimensão
Mac Pro M4 Ultra
22
8
MCR completo Grupo Maná
Rede: cada canal NDI ativo consome ≈125 Mbps. Um switch Gigabit aguenta ~8 canais NDI; para 22 canais usa 10GbE.
Configurar o Mac para emissão sem paragens
1
Desativa o repouso
Definições do Sistema → Bateria/Energia → impede o disco e o ecrã de adormecer.
2
Arranca após corte de energia
Definições do Sistema → Geral → ativa "Ligar automaticamente após falha de energia".
3
Desativa atualizações automáticas
Atualiza só em janelas de manutenção planeadas — nunca a meio de uma emissão.
4
KK Playout nos Itens de Início de Sessão
Arranca a app automaticamente em cada boot.
Terminal · servidor 24/7
# Desativa sleep do sistema e do disco
sudo pmset -a sleep 0
sudo pmset -a disksleep 0
sudo pmset -a displaysleep 0
# Auto-restart após falha de energia ou kernel panic
sudo pmset -a autorestart 1
sudo pmset -a restartpowerloss 1
Ajuda
FAQ e resolução de problemas
Os problemas mais comuns e como os resolver — sem precisares de um técnico ao lado.
O vídeo não aparece no preview
Causa provável
Solução
Formato não suportado
Verifica se o ficheiro abre no QuickTime. Se não abrir, converte-o.
AV1 / VP9 em 8K
Demasiado pesado para descodificar em tempo real. Converte para H.264 1080p ou HEVC 4K.
Preview congelado mas NDI a funcionar
Reinicia a app. Se persistir, verifica se há GFX ativo.
O áudio começa antes da imagem
O KK Playout sincroniza A/V automaticamente no arranque. Se acontecer, verifica se o ficheiro tem um delay de vídeo intencionalmente codificado — em ficheiros normais não acontece.
Alarme de Freeze falso em conteúdo parado
Apresentações, slideshows ou câmara fixa podem disparar o Freeze por engano. Vai a Gestão → Monitorização e baixa o threshold de Freeze (ex.: de 0,5% para 0,1%).
O RTMP não liga ao YouTube
Verifica
Como
Stream key correta
YouTube Studio → Transmissão ao vivo → copia a chave de novo.
URL correto
Deve ser rtmp://a.rtmp.youtube.com/live2/ (com barra final).
Transmissão criada
O YouTube precisa de uma transmissão "Em espera" antes de ligares o RTMP.
Porta 1935 bloqueada
Firewalls corporativos bloqueiam a porta RTMP. Usa SRT como alternativa.
O SDI não aparece na lista
Verifica se o Blackmagic Desktop Video está instalado e compatível com o teu macOS (Definições do Sistema → Blackmagic Desktop Video). Se não estiver lá, os drivers não estão instalados.
"Pipeline já ativa" ao iniciar
O sistema tentou iniciar uma segunda emissão com a primeira ainda ativa. Carrega em Parar e aguarda 2-3 segundos antes de reiniciar.
O NDI não é visto noutros dispositivos
Causa
Solução
Firewall do macOS
Definições do Sistema → Rede → Firewall → adiciona o KK Playout como exceção.
Subnets diferentes
O auto-discovery só funciona na mesma subnet. Para subnets diferentes, configura um NDI Discovery Server.
Emissão não iniciada
O nome NDI só é anunciado depois de iniciares a emissão — nunca em standby.