Transcodificação¶
O transcodificador do Sapsan (baseado em FFmpeg) recodifica o stream de entrada: muda codecs, taxa de bits e resolução, e prepara uma escada de qualidades multibitrate (MBR) a partir de uma única fonte.
Configuração¶
A seção transcoder.output descreve as trilhas de saída. Cada trilha toma uma fonte (!content video ou !content audio) e define um codec:
streams:
- name: tv1
inputs:
- udp: {host: 239.0.0.1, port: 5000}
transcoder:
output:
- source: !content video # 1080p — o topo da escada
codec: !set h264
bitrate: 2800000
params: !video
gop_size: 28
gop_structure: ibbbp
- source: !content video # 720p
codec: !set h264
bitrate: 1200000
params: !video
gop_size: 28
gop_structure: ibbbp
resize: !fit
height: 720
- source: !content audio
codec: !set aac
Seleção da trilha de origem¶
source |
O que toma |
|---|---|
!content video / !content audio |
uma trilha por tipo de conteúdo |
!exact v1 |
uma trilha específica por identificador |
!best_quality video |
a melhor qualidade disponível |
!language_codec [eng, aac] |
uma trilha por idioma e codec |
O parâmetro if_missing define o comportamento quando a trilha não existe: drop (padrão — a saída não é criada), blank (sinal vazio) ou substitute.
Codecs e parâmetros¶
codec: !set <name>— recodificar (h264, hevc, av1, aac, opus);codec: same— passar sem recodificar (por exemplo, apenas reempacotar o áudio).- Saídas de codecs diferentes a partir de uma mesma fonte mantêm alinhados os timestamps e os quadros-chave — uma escada h264/hevc/av1 permanece consistente.
gop_size,gop_structure(ip,ibp,ibbp,ibbbp,ibbbbp) — controle da estrutura do GOP, importante para segmentos MBR alinhados.- Áudio: recodificação G.711 → AAC/Opus 48 kHz com preservação da linha do tempo — o caso típico de câmera IP.
- As trilhas JPEG de capturas atravessam o transcodificador intactas.
Redimensionamento¶
resize |
O que faz |
|---|---|
!scale |
escala exata para as dimensões indicadas |
!fit |
encaixar preservando a proporção de aspecto (com preenchimento, cor de fundo configurável) |
!crop |
recortar para as dimensões indicadas |
Note
TODO: aceleração por hardware (Nvenc/Vulkan), desentrelaçamento, overlays/logotipos, referência de parâmetros de áudio.
Verificação¶
Abra a playlist mestra http://server/streaming/v/tv1/index.m3u8 — nela devem aparecer todas as qualidades de saída.