Transcodificadores¶
Los transcodificadores recodifican el vídeo y el audio de un flujo: reducen la tasa de bits para OTT o para un multiplex, cambian el códec y la resolución y preparan las variantes de los conjuntos adaptativos. Cada transcodificador funciona como un proceso independiente del nodo; se admite el esquema «uno a muchos»: a partir de un único decodificador se pueden obtener varios flujos de salida con distintos ajustes de codificación. La transcodificación solo está disponible para los flujos SPTS; el flujo de origen debe contener tanto vídeo como audio.
Arquitectura del transcodificador: un decodificador (común) y N ramas independientes «procesamiento + codificador»; las pistas de audio se procesan por separado del vídeo, y los subtítulos y el teletexto pasan de forma transparente.¶
Conexión¶
El transcodificador conecta dos o más flujos:
En el flujo de origen se añade una salida de tipo transcoder: es el decodificador. En sus ajustes se selecciona el backend de transcodificación (véase más abajo).
En el flujo resultante se añade una entrada de tipo transcoder: es el codificador. En sus ajustes se selecciona el decodificador de origen en funcionamiento (campo Decoder).
El paso 2 se repite para cada variante adicional: todas ellas utilizan el decodificador común.
A partir de ahí, el flujo resultante funciona como un flujo SPTS ordinario: puede distribuirse por OTT, grabarse en DVR o enviarse al multiplexor.
Backends y códecs¶
El backend se selecciona en el decodificador (campo Transcoder backend; los valores se indican tal como aparecen en la interfaz):
- Video pass-through
El vídeo pasa sin recodificación; solo se transcodifica el audio. Este modo lo ejecuta el transcodificador por software, por lo que el paquete de transcodificación por software debe estar instalado (Transcodificadores).
- Software (CPU)
Transcodificación por software en la CPU.
- NVidia (GPU)
Transcodificación por hardware en procesadores gráficos NVIDIA.
- Intel VPL (GPU)
Transcodificación por hardware en procesadores gráficos Intel.
Para los backends de GPU, el dispositivo se selecciona en el campo GPU device selector (ajuste adicional). Esto es necesario en servidores con varias tarjetas. Los paquetes de los transcodificadores se instalan por separado (Transcodificadores); los backends instalados, sus versiones y los dispositivos detectados se muestran en la pantalla «Acerca del sistema» (Acerca del sistema).
El decodificador admite vídeo MPEG-2, H.264, HEVC y audio MPEG (Layer 1–3), AAC, AC-3. El codificador produce vídeo H.264 y HEVC (el codificador NVIDIA no admite MPEG-2; MPEG-2 lo codifican los backends Software e Intel VPL) y audio en MPEG Layer II y AAC.
Particularidades del decodificador:
los flujos entrelazados (interlace) se admiten tanto en la entrada como en la salida; para H.264 y HEVC, el formato interlace alternate (campos separados) se convierte a interleaved;
para HEVC se admite el perfil Main10 con BT.709 (SDR) y BT.2020 (HDR); el codificador HEVC utiliza siempre el perfil Main con BT.709;
la frecuencia de fotogramas variable (VFR) se convierte en constante;
se admiten los flujos sin fotogramas IDR.
Ajustes del decodificador¶
Se definen en la salida de tipo transcoder del flujo de origen (los nombres se indican tal como aparecen en la interfaz; todos los ajustes que se enumeran a continuación son adicionales):
- Fix PAR (N/D), Fix frame rate (N/D)
Indicaciones para corregir los datos del flujo de entrada: no transforman el flujo, sino que corrigen los parámetros cuando la fuente no los comunica o los comunica de forma incorrecta. Fix PAR — la relación de aspecto del píxel expresada como fracción (por ejemplo, 16/9 para Wide SD); Fix frame rate — la frecuencia de fotogramas como fracción, si está ausente en el flujo (PAL — 25/1, NTSC — 30000/1001, cine — 24/1).
- Convert to BT.709
Conversión de los formatos de color SD (BT.470-2 PAL, SMPTE 170M NTSC) a BT.709.
- Watchdog timeout
Tiempo de espera tras el cual el watchdog reinicia el proceso del transcodificador.
El proceso del transcodificador mantiene siempre un registro detallado; no hace falta un ajuste de trazado aparte (Supervisión del funcionamiento). El registro se guarda solo en la memoria del nodo; cómo conservarlo para el análisis se describe en Registros del transcodificador.
Ajustes del codificador¶
Se definen en la entrada de tipo transcoder del flujo resultante:
- Encoder
Códec de vídeo: MPEG-2, H.264 (por defecto) o HEVC.
- Video profile (H.264)
Perfil de codificación H.264: Main o High.
- Video rate control
El modo de control del bitrate de vídeo: velocidad constante — CBR (constant); variable con bitrate medio — VBR (average bitrate); variable con techo — VBR (maximum bitrate). Por defecto, velocidad constante.
En ambos modos variables el codificador deja de rellenar su propio flujo elemental, de modo que el ahorro de banda solo se obtiene allí donde el flujo receptor no vuelve a nivelar el bitrate: el relleno lo define el campo «Modo de bitrate» de la pestaña «MPEG-TS» de ese flujo (Control de la tasa de bits). No confundir estos dos campos: «Modo de bitrate» se refiere al flujo de transporte en su conjunto; Video rate control, solo al codificador de vídeo.
El modo apareció en la 2.0.2.334. En un nodo de una compilación anterior el campo no existe, y un transcodificador de una compilación anterior no lo lee y codifica siempre a velocidad constante.
- Video bitrate (kbps)
El bitrate de vídeo es un solo número para los tres modos; lo que significa lo define Video rate control, y la etiqueta del campo cambia con el modo. A velocidad constante, el número es a la vez el objetivo y el techo del búfer. Con bitrate medio, el número es la velocidad media, y los picos llegan a una vez y media ese valor. Con techo, el número es el límite superior que el vídeo no rebasa, y la velocidad media resulta dos tercios de él. En todos los casos el codificador deduce él mismo el segundo límite de una relación fija pico/media de 1,5, por lo que el máximo no se define con un campo aparte. El bitrate total del flujo será mayor a causa de las pistas de audio.
- Resize
Cambio de tamaño de la imagen: reducción proporcional por un factor de 2 o de 4; conversión a SD — las variantes SD, SD PAL y SD NTSC, todas con la relación de aspecto panorámica 16:9; escalado de SD a HD; definición de la anchura o de la altura (el otro lado se recalcula proporcionalmente). No se admite un tamaño arbitrario: distorsionaría las proporciones.
- Deinterlace
Conversión del vídeo entrelazado en progresivo (activada por defecto; al escalar de SD a HD se aplica automáticamente).
Ajustes de calidad y de estructura del flujo (ajustes adicionales):
- GOP interval
Intervalo de fotogramas clave, en fotogramas. Por defecto 25, es decir, un segundo para 25p. Este intervalo se recomienda cuando los reproductores se conectan al flujo en un momento arbitrario.
- B-frames, Lookahead
Mejoran la calidad de la codificación; los valores recomendados son 3 y 20–50 fotogramas respectivamente.
- Speed preset
Preajuste de la velocidad de codificación, de 1 a 7; cuanto menor es el valor, mayor es la calidad y mayor la carga. Por defecto 4.
- Frame rate resample
Diezmado de la frecuencia de fotogramas por un factor de 2 o de 4.
- Encoder PMT PID, PAT/PMT interval (90kHz)
El PID de la tabla PMT y el intervalo de repetición de las tablas PAT/PMT en el flujo de salida; se definen cuando el flujo debe ajustarse al plan de la red.
Guardar cualquier ajuste del codificador reinicia el proceso del transcodificador. De ello advierte un texto sobre la lista de campos. El reinicio vuelve a abrir cada entrada que recibe datos de esta instancia de transcodificador, incluidas las entradas de otros flujos: en cada salida transcodificada habrá un corte breve, y un flujo con entradas de reserva puede pasar durante ese tiempo a la reserva (Redundancia de fuentes y distribución).
Se puede definir una combinación incompatible de parámetros; los errores se ven en el registro del transcodificador (Supervisión del funcionamiento).
Logotipo en la imagen¶
Desde la versión 2.0.2.413 se puede superponer a la imagen del flujo de salida un logotipo desde un archivo PNG. El logotipo lo dibujan el backend NVidia (GPU) y, desde la versión 2.0.2.415, el backend por software (CPU); el backend Intel no tiene logotipo, y en la versión de demostración esta función tampoco está disponible. El backend por software necesita el transcodificador por software (paquete tcsw) versión 1.2.0.126 o posterior. El nodo determina la versión del transcodificador al arrancar el servicio; por eso, tras actualizar tcsw, reinicie el servicio y solo después defina el logotipo. El ajuste se define en la entrada de tipo transcoder del flujo resultante, en el bloque «Logotipo», situado después del campo Deinterlace, por separado para cada codificador: cada variante puede tener su propio logotipo con su propia posición, o no tener ninguno. Las variantes sin logotipo no cambian.
El logotipo se dibuja en su propio tamaño, sin escalarse ni recortarse: debe caber entero en el fotograma de salida. Para una variante de menor resolución se prepara un logotipo más pequeño.
- Archivos de logotipo
El botón «Cargar PNG…» carga el archivo en el nodo y lo selecciona de inmediato en el campo «Archivo de logotipo»; los archivos cargados antes se eligen en la lista de ese mismo campo, junto con su tamaño. Se acepta cualquier PNG de hasta 4096×4096 píxeles y 16 MB; se tiene en cuenta la transparencia. Volver a cargar el mismo archivo no crea un registro nuevo. La ventana «Archivos de logotipo…» muestra todos los archivos del nodo con su tamaño y los flujos que los usan; el botón «Eliminar» solo aparece en los archivos que no se usan.
- Posición
«X desde el borde izquierdo (px)» y «Y desde el borde superior (px)» definen la esquina superior izquierda del logotipo en el fotograma de salida, es decir, después del cambio de tamaño. Ambos números deben ser pares.
- Opacidad
«Opacidad (%)»: de 0 a 100, por defecto 100. El valor se multiplica por la transparencia propia del PNG.
- Desenfoque del fondo
«Desenfoque del fondo (px)» desenfoca la imagen bajo el logotipo; el número define el radio, de 0 a 50, y 0 significa desactivado (por defecto). «Área de desenfoque» elige qué desenfocar: «Todo el rectángulo del logotipo» (por defecto) o «Solo bajo la forma del logotipo», es decir, bajo sus píxeles no transparentes.
El fotograma en el que debe caber el logotipo se obtiene después del ajuste Resize:
sin cambio de tamaño — el fotograma de la fuente;
SD y SD PAL — 720×576, SD NTSC — 720×480;
SD->HD — 1920×1080 si la altura de la fuente no supera 720; con una fuente de más de 720 líneas, el tamaño no cambia;
/2 y /4, así como la anchura o la altura indicadas — un tamaño recalculado a partir del fotograma de la fuente. Con el backend NVidia, la anchura se redondea hacia arriba a un múltiplo de 32 y la altura, a un múltiplo de 4; con el backend por software, ambos lados se redondean a valores pares. Así, una altura de 720 con una fuente de 1920×1080 da un fotograma de 1280×720 con ambos backends, y una anchura de 1000, un fotograma de 1024×564 con NVidia y de 1000×562 con el backend por software.
Por eso, con los mismos ajustes de tamaño, el fotograma de los dos backends puede diferir en unos pocos píxeles. La ventana y la comprobación al guardar calculan el fotograma del backend seleccionado.
Bajo los campos, la ventana indica de inmediato si el logotipo cabe en el fotograma y, si no cabe, por qué lado y cuánto sobresale del borde. El botón «Vista previa» muestra el fotograma y el logotipo como rectángulos a escala, sin la imagen, con cifras: el tamaño del fotograma y de dónde se ha tomado, el tamaño del logotipo, la posición y las distancias a los bordes derecho e inferior. Si el tamaño del fotograma depende de la fuente y la fuente no funciona en ese momento, la ventana indica que el tamaño se conocerá después de arrancar el transcodificador. En ese caso, la comprobación la hace el propio transcodificador al arrancar: si el logotipo no cabe, el transcodificador no arranca y notifica un error con las mismas cifras (Supervisión del funcionamiento).
El nodo no permite guardar el logotipo si:
el decodificador funciona en modo Video pass-through: el vídeo no se decodifica y no hay sobre qué dibujar;
el backend del decodificador es Intel; en ese caso, el bloque «Logotipo» muestra una indicación en lugar de los campos;
el backend es por software y el transcodificador por software instalado es anterior a 1.2.0.126;
las coordenadas son impares o el logotipo no cabe en un fotograma de tamaño conocido.
El backend de un decodificador con logotipo se puede cambiar entre NVidia y por software. Si tras el cambio el logotipo no cabe en el nuevo fotograma, el transcodificador no arranca y notifica el tamaño del fotograma. Un decodificador así no se puede cambiar a Intel ni al modo Video pass-through mientras tenga conectado un codificador con logotipo.
Particularidades:
Los archivos de logotipo se guardan solo en su propio nodo. No entran en la copia de seguridad de la configuración ni se transmiten a los vecinos de Meshwork: para un flujo trasladado a otro nodo, el logotipo se carga también allí; de lo contrario, el transcodificador no arrancará.
Cualquier cambio del logotipo, incluida la elección de otro archivo, reinicia el transcodificador, igual que el cambio de otros ajustes del codificador.
Si el logotipo está definido al menos en un codificador, el transcodificador NVidia marca el color de todas sus salidas como BT.709 y convierte a él las fuentes SD BT.470-2 y SMPTE 170M, igual que el ajuste Convert to BT.709 del decodificador. Los colores visibles no cambian; una fuente SD sin indicación del espacio de color se considera ya BT.709 y no se recalcula. El transcodificador por software emite siempre todas las salidas en BT.709, con logotipo o sin él, por lo que el logotipo no influye en su color.
En una salida entrelazada, las líneas horizontales finas del logotipo se hacen de al menos dos píxeles: una línea de un píxel parpadea con la frecuencia de campo.
Procesamiento del audio¶
Por defecto, todas las pistas de audio pasan de la entrada a la salida sin recodificación. Las pistas sobrantes se eliminan con los filtros de PID en la entrada del flujo (Filtrado MPEG-TS).
La recodificación del audio se configura mediante reglas, por separado para cada códec de origen (ajustes adicionales): una pista puede pasarse sin cambios, recodificarse (MPEG — a AAC; AAC — a MPEG Layer II; AC-3 — a MPEG Layer II o AAC) o eliminarse (valor Skip). Adicionalmente se definen la tasa de bits del audio (Audio bitrate, 128 kbps por defecto) y el volumen de la mezcla descendente 5.1 (5.1 downmix volume). Si tras aplicar las reglas no queda ninguna pista de audio en el flujo de salida, el codificador notificará un error en el registro.
PCR y tasa de bits del flujo de salida¶
El multiplexor del transcodificador genera marcas PCR nuevas y coherentes. Por defecto, el flujo de salida se transmite como VBR: la tasa de bits total varía con la tasa de bits real del vídeo y del audio, y no se garantiza la precisión del PCR según TR 101 290 en el lado receptor. Si el flujo transcodificado está destinado a la difusión DVB, active el modo CBR en el flujo receptor: el relleno nivelará la tasa de bits y recalculará el PCR (Control de la tasa de bits). Un modo de codificación variable acentúa la irregularidad: el bitrate de vídeo varía con el contenido y, sin relleno en el receptor, el flujo de transporte es aún más irregular.
Supervisión del funcionamiento¶
La pantalla «Transcodificadores» (Transcodificadores) muestra todas las instancias. Cada fila describe una instancia independiente (el decodificador y los codificadores conectados a él): su estado, el tipo de backend, el tiempo de funcionamiento, la carga de CPU y la memoria. La ventana «Instancia de transcodificador» (Instancia de transcodificador) despliega la fuente, la lista de codificadores con los parámetros del vídeo de salida, los recursos del proceso y los registros de la ejecución actual y de la anterior. El diagnóstico empieza por esta ventana. El registro de una ejecución terminada se borra ya en el segundo reinicio del proceso, por lo que ante un fallo se copia de inmediato (Registros del transcodificador).
La carga de los dispositivos GPU se muestra en la pantalla «Monitor del sistema» (Monitor del sistema). Si se superan los umbrales de CPU, de memoria o de carga de GPU, o si el backend configurado no está disponible, se generan alertas (Catálogo de códigos de alerta).