Transcodificación¶
El transcodificador de Sapsan (basado en FFmpeg) recodifica el stream de entrada: cambia códecs, bitrate y resolución, y prepara una escalera de calidades multibitrate (MBR) a partir de una sola fuente.
Configuración¶
La sección transcoder.output describe las pistas de salida. Cada pista toma una fuente (!content video o !content audio) y define un códec:
streams:
- name: tv1
inputs:
- udp: {host: 239.0.0.1, port: 5000}
transcoder:
output:
- source: !content video # 1080p — la cima de la escalera
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
Selección de la pista de origen¶
source |
Qué toma |
|---|---|
!content video / !content audio |
una pista según el tipo de contenido |
!exact v1 |
una pista concreta por identificador |
!best_quality video |
la mejor calidad disponible |
!language_codec [eng, aac] |
una pista por idioma y códec |
El parámetro if_missing define el comportamiento cuando la pista no existe: drop (por defecto — la salida no se crea), blank (señal vacía) o substitute.
Códecs y parámetros¶
codec: !set <name>— recodificar (h264, hevc, av1, aac, opus);codec: same— pasar sin recodificar (por ejemplo, solo reempaquetar el audio).- Las salidas de códecs diferentes a partir de una misma fuente mantienen alineados los timestamps y los fotogramas clave — una escalera h264/hevc/av1 se mantiene coherente.
gop_size,gop_structure(ip,ibp,ibbp,ibbbp,ibbbbp) — control de la estructura del GOP, importante para los segmentos MBR alineados.- Audio: recodificación G.711 → AAC/Opus 48 kHz con conservación de la línea de tiempo — el caso típico de una cámara IP.
- Las pistas JPEG de capturas pasan por el transcodificador intactas.
Cambio de tamaño¶
resize |
Qué hace |
|---|---|
!scale |
escalado exacto a las dimensiones indicadas |
!fit |
encajar conservando la proporción de aspecto (con relleno, color de fondo configurable) |
!crop |
recortar a las dimensiones indicadas |
Note
TODO: aceleración por hardware (Nvenc/Vulkan), desentrelazado, overlays/logotipos, referencia de parámetros de audio.
Comprobación¶
Abra el playlist maestro http://server/streaming/v/tv1/index.m3u8 — en él deben aparecer todas las calidades de salida.