Linux Adictos Pablinux  

GStreamer 1.26.5 introduce arreglos clave en audioconvert, overlays, V4L2, VA y Vulkan

GStreamer 1.26.5

GStreamer 1.26.5 ya está disponible como actualización de mantenimiento dentro de la rama estable 1.26, con foco absoluto en estabilidad, regresiones corregidas y mejoras prácticas en áreas que los usuarios usan a diario. Es una versión de corrección de fallos que se puede instalar con tranquilidad sobre cualquier 1.26.x, y que además llega con pequeños añadidos muy útiles, desde soporte para JPEG XS en elementos concretos hasta ajustes en la integración con Windows, V4L2, Vulkan o el monitor de dispositivos.

Esta entrega se apoya en el gran salto que supuso 1.26.0, que añadió nuevas tecnologías (H.266, LCEVC, JPEG XS), mejoras profundas en streaming adaptativo, subtitulado y trazado, más integración con Vulkan, OpenGL, CUDA, Direct3D12 o VA, y un sinfín de elementos nuevos escritos en C y Rust. En las siguientes líneas repasamos de forma detallada todo lo que trae 1.26.5 y recordamos lo más importante de toda la serie 1.26 para que tengas una visión completa antes de actualizar.

Qué es GStreamer 1.26.5 y por qué te interesa

La versión 1.26.5 es el quinto bugfix de la serie 1.26, publicada el 7 de agosto, centrada en fiabilidad. Destacan correcciones y mejoras que resuelven problemas reales detectados en producción: audioconvert arregla una regresión de negociación de caps con matrices de mezcla, cea608overlay y cea708overlay aceptan buffers de memoria de GPU cuando el downstream soporta overlay composition, y d3d12screencapture pule tanto la fuente como el proveedor de dispositivos para un comportamiento más robusto.

En la parte de reproducción y descubrimiento se han afinado puntos críticos: decodebin3 ya no falla ante flujos con metadatos ONVIF, y uridecodebin3 deja de arriesgar un crash al añadir URIs en mensajes (por ejemplo, si falta un decodificador). V4L2 elimina una fuga de memoria en cambios de resolución dinámicos, y los codificadores VA reciben arreglos para casos límite.

Hay añadidos útiles de códec: videorate e imagefreeze ahora pueden trabajar con JPEG XS, lo que facilita pipelines de sincronización y generación de frames con este formato. Vulkan recibe arreglo de integración, wasapi2 mejora el monitor de dispositivos en Windows, threadshare y rtpbin2 incorporan numerosas correcciones y gst-device-monitor-1.0 gana usabilidad desde la línea de comandos. Además, en servicios cloud se añade brevedad a awstranslate y una opción para particionar oradores con awstranscriber2, junto con una nueva propiedad mask-profanities en Speechmatics para tratar lenguaje ofensivo en transcripción.

Recordatorio: el gran salto de la 1.26.0 (características clave)

La 1.26.0 (11 de marzo) inauguró mejoras de enorme calado sobre la API 1.x, con especial atención a nuevos códecs, subtitulado, streaming, analítica y aceleración. Entre lo más destacado:

  • Soporte del códec VVC H.266: parseador, decodificador base para hw, decodificación por VA‑API, acceso al decodificador FFmpeg y mux/demux en MP4, Matroska y MPEG‑TS; en Rust se añadió un decodificador basado en VVdeC.
  • JPEG XS: elementos de codificación y decodificación basados en SVT JPEG XS con mux/demux en MPEG‑TS, soportando entrelazado y progresivo.
  • LCEVC: elementos de codificación/decodificación sobre SDK de V‑Nova y soporte en h264parse para extraer la capa de mejora con lcevch264decodebin.
  • Subtítulos y closed captions: extractores/insertores para H.264/H.265, cea708overlay de Rust, cea708mux, tttocea708, mejoras en cccombiner, y cdpserviceinject para CDP.
  • HLS/DASH: client adaptivedemux2 con soporte file://, backoff y reintentos, hlscmafsink y hlssink3 para CMAF/TS, hlsmultivariantsink, y arreglos en dashsink.
  • splitmuxsrc/sink con carga perezosa y fragmentos dinámicos, señales de add‑fragment y política de archivos abiertos.
  • MPEG‑TS más capaz
  • MP4/Matroska: VVC, Hap, Lagarith, raw video, etiquetas de rotación y flips, trick mode en qtdemux y soporte ISO raw video.
  • SMPTE 2038 en Rust para metadatos auxiliares (demux/mux y conversión de CC).
  • Analítica: nuevo GstTensorMeta, relaciones N a N, máscaras de segmentación, onvifmetadataextractor, originalbuffer y relationmeta, además de bindings de Python más pulidos.
  • Aceleración y gráficos: grandes mejoras en Vulkan y OpenGL (v210, YUY2/UYVY, Y444_10/16, importación de DMABuf), QML con importación directa de DMABuf, CUDA con compositor, nvenc AV1, Jetson NVMM y precompilado de kernels, Direct3D12 con d3d12videosink, d3d12swapchainsink, d3d12deinterlace, IPC GPU cero‑copia, y captura HDR correcta.
  • Tarjetas de captura: mejoras en AJA y Decklink (HDR PQ/HLG y planificación de frames).
  • RTP/RTSP: rtspsrc con claves MIKEY gestionadas por cliente, nuevos modos de sync en rtpbin, jitterbuffer con estado RFC7273, mejoras en rtph265depay y regeneración de timestamps en rtppassthroughpay, y nuevo rtpbin2 en Rust.
  • WebRTC: webrtcbin con rollbacks básicos y mejoras; webrtcsink/src con más encoders, MSE y sincronía NTP/PTP; WHEP/WHIP ya presentes en el ecosistema y elementos de LiveKit/Kinesis disponibles en releases posteriores 1.26.x.
  • Nuevos elementos como webview2src, extractores CC para H.264/H.265, h266parse, svtjpegxsenc/dec y múltiples piezas en VA y Rust.

Cambios técnicos finos que marcan la diferencia

Contenedores y transporte

En MP4 y Matroska se añadió soporte robusto a VVC, formatos niche como Hap/Lagarith y raw video, además de un manejo correcto de rotaciones y flips por media y por pista. MPEG‑TS ahora puede muxear y desmuxear VVC, JPEG‑XS, VP9 y AV1 (con mapeos custom), meter ID3 y SMPTE 302M, y tratar M2TS de 192 bytes. Para directos, mpegtslivesrc aporta un reloj basado en PCR.

En streaming adaptativo la client adaptivedemux2 evita flushes espurios en vivo, admite URIs file:// y reintentos con backoff, y dashsink corrige duraciones de period para MPD dinámicos. HLS gana nuevos sinks enfocados a CMAF y a escalar variantes.

Subtítulos, CC y SMPTE 2038

Los extractores/insertores para H.264/H.265 manipulan CC en orden de presentación sin decodificar (útil para pipelines de procesado sin recodificar), y la familia Rust incorpora st2038ancdemux/mux y convertidores a CC. cea708overlay sustituye a cc708overlay con soporte moderno y aceptación de buffers de GPU en 1.26.5.

Analítica y metadatos

GstTensorMeta y nuevas relaciones N‑a‑N facilitan flujos de visión por computador complejos, con máscaras, conversiones ONVIF y plugins de utilidad para preservar buffers originales. Bindings de Python mejorados agilizan iteración y edición de metas analíticas.

Aceleración: Vulkan, OpenGL, CUDA y D3D12

Vulkan mejora memoria no coherente, colorimetrías y pools, además de perfiles H.264/H.265 y encoder más ágil. OpenGL ensancha conversiones (v210, YUY2/UYVY, Y444 de alta profundidad) y DMABuf. CUDA suma compositor, nvav1enc, soporte Jetson NVMM y precompilado. Direct3D12 estrena biblioteca pública, sinks con color balance, texturas con mipmaps, IPC cero‑copia y deinterlazado portable.

RTP, RTSP y WebRTC

RTSP gestiona MIKEY del lado cliente (útil con cámaras Axis), rtpbin gana modos never/ntp, y jitterbuffer expone estado RFC7273. Se mejora la solicitud de keyframes en H.265 RTP y regeneración de timestamps en pasarela. Rust aporta rtpbin2 y payloaders para AC3, AMR, JPEG, KLV, MPEG‑TS, MP4A/G, Opus, PCMU/A, VP8/9. En WebRTC se afinan rollbacks, niveles de audio, retransmisiones, y a lo largo de 1.26.x se han añadido fuentes de Janus, LiveKit y WHEP.

API, rendimiento y trazas

GstIdStr sustituye GQuark en estructuras/caps para evitar fugas y mejorar rendimiento comparando cadenas cortas; GstVecDeque entra en core para colas más simples y eficientes. Se amplían utilidades de Audio/Video (reorderings, fast paths v210⇄I420_10/I422_10), y se suman nuevos tracers (memoria, tiempos de push y PCAP). El sistema de logging añade detalles ricos a mensajes (URI, stream‑id), y se optimiza la escritura de DOTs.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.