GStreamer es una biblioteca de código abierto, una pieza compleja de software que actúa como un marco multimedia para numerosos sistemas operativos GNU / Linux, así como Android, OpenBSD, Mac OS X, Microsoft Windows, y sistemas operativos Symbian.
Características de un vistazo
Las características clave incluyen una biblioteca central completa, arquitectura de complemento inteligente, cobertura extendida de tecnologías multimedia, así como herramientas de desarrollo extensas, para que pueda agregar fácilmente soporte para GStreamer en sus aplicaciones.
Es el servidor multimedia principal para una amplia gama de proyectos de código abierto, que se desarrolla desde aplicaciones de reproducción de audio y video, como Totem (Videos) desde el entorno de escritorio GNOME y complejos editores de video y audio.
Además, el software presenta un rendimiento muy alto y una baja latencia, gracias a su tecnología de paso de datos extremadamente liviana, así como a la sincronización global entre flujos (audio / video) a través del reloj.
Incluye varios paquetes de códecs
El proyecto se compone de varios paquetes diferentes, también conocidos como paquetes de códigos, que se pueden instalar fácilmente en cualquier distribución de GNU / Linux desde sus repositorios de software predeterminados, todo a la vez o por separado. Son los siguientes: GStreamer Plugins Base, GStreamer Plugins Good, GStreamer Plugins Bad y GStreamer Plugins Ugly.
GStreamer es una biblioteca central compacta que permite construcciones pipleline aleatorias gracias a su estructura basada en gráficos, basada en la biblioteca de modelos de objetos GLib 2.0, que se puede usar para el diseño orientado a objetos y la herencia.
Utiliza la tecnología QoS (Quality of Service)
Para garantizar la mejor calidad de audio y video posible con una alta carga de CPU, el proyecto utiliza la tecnología QoS (Quality of Service). Además, proporciona una construcción transparente y trivial de tuberías con múltiples subprocesos.
Gracias a su API simple, estable y limpia (Application Programming Interface), los desarrolladores pueden integrarlo fácilmente en sus aplicaciones, así como también crear complementos que ampliarán su funcionalidad predeterminada. También les proporciona un sistema de depuración completo.
Conclusión
En conclusión, GStreamer es un marco multimedia muy potente y muy apreciado para el ecosistema de código abierto, que proporciona a los usuarios de GNU / Linux una amplia gama de códecs de audio y video para la reproducción y el procesamiento de los medios.
< strong> Qué hay de nuevo en esta versión:
- Versión de corrección de errores.
Qué hay de nuevo en la versión 1.14.1:
- Versión de corrección de errores.
Qué hay de nuevo en la versión:
- Esta versión solo contiene correcciones de errores y es seguro actualizar desde 1.8.0.
¿Qué hay de nuevo en la versión 1.8.2:
- Esta versión solo contiene correcciones de errores y debería ser segura para actualizar desde 1.8.0.
Qué hay de nuevo en la versión 1.8.0:
- Descodificación de video de copia cero acelerada por hardware en Android
- Nueva fuente de captura de video para Android con la API android.hardware.Camera
- Soporte de reproducción inversa de Windows Media (ASF / WMV / WMA)
- El nuevo sistema de seguimiento proporciona soporte para herramientas de depuración más sofisticadas
- Nueva API de conveniencia de reproducción de GstPlayer de alto nivel
- Soporte inicial para la nueva API de Vulkan; consulte la publicación de blog de Matthew Waters para obtener más detalles
- Compatibilidad mejorada con el códec de audio Opus: admite más de dos canales; El demuxer / muxer de MPEG-TS ahora puede manejar Opus; codificación / decodificación / transmuxing con precisión de muestra con Ogg, Matroska, ISOBMFF (Quicktime / MP4) y MPEG-TS como contenedor; nuevas funciones de utilidad de códec para el manejo del encabezado Opus y las mayúsculas en la biblioteca de pbutils. Los elementos del codificador / decodificador Opus también se movieron a gst-plugins-base (desde -bad), y el opus RTP depayloader / payloader a -good.
- Módulo GStreamer VAAPI ahora publicado y mantenido como parte del proyecto GStreamer
- Compatibilidad con proxy de activos en los servicios de edición GStreamer
Qué hay de nuevo en la versión 1.6.3:
- Corregir la regresión en la biblioteca GL que hacía imposible el uso de glimagesink en Android
- Desbordamiento aritmético entero en el elemento queue2 que podría interrumpir el almacenamiento en búfer o causar bloqueos debido a la desreferencia del puntero NULL
- Se solucionó el bloqueo en el generador de caracteres AAC / ADTS causado por la lectura de más memoria que la disponible
- Deja de ignorar los errores del codificador en los codificadores VP8 / VP9
- Deprecate GstVideoEncoder GST_VIDEO_ENCODER_FLOW_DROPPED. Es redudant y nunca se implementó realmente
- Asegúrese de guardar la información de video correcta en GstVideoBufferPool
- Repare los límites en rtspsrc al hacer SRTP sobre TCP entrelazado
- Soluciona el bloqueo en el analizador pcap en paquetes de 0 tamaños
- Borrar el indicador de EOS en appsrc para permitir la reutilización después de EOS y el enjuague
- Ignore las secuencias de descarga en el sincronizador de secuencias durante los cambios de ruta para solucionar los problemas causados por esto en los servicios de edición gst
- Ignora las etiquetas y otros metadatos en los archivos WAV después de & quot; datos & quot; en modo PUSH para evitar que se interprete como audio
- Usa correctamente la colorimetría en v4l2 solo para formatos de color YUV
- Establecer bits reservados en MPEG TS muxer en 1s
- Corregir el cálculo de las longitudes de trama SBC
- Se corrigió la salida del depayloader RTP JPEG2000 para tener un fotograma por búfer y bloquearse en el decodificador OpenJPEG en fotogramas incompletos
- Actualice la instantánea de ffmpeg en gst-libav a 2.8.5
- Se corrige la pérdida de memoria en scaletempo, el descargador de video RTP sin procesar y en playsink relacionado con filtros de audio / video
- Correcciones para el manejo de errores en el complemento de audio OSX
- Varias correcciones y adiciones de anotaciones gobject-introspection
- Correcciones de advertencia del compilador para el último compilador clang
Qué hay de nuevo en la versión 1.6.1:
- Se corrigieron los bloqueos en los codificadores gst-libav
- Más flujos de prueba DASH-IF están funcionando ahora
- Las transmisiones Live DASH, HLS y MS SmoothStreaming funcionan de manera más confiable y otras soluciones para los protocolos de transmisión adaptable
- La reproducción inversa funciona con scaletempo para mantener el tono de audio
- Correcto tiempo de transmisión se informa para negative applied_rate
- La validación del paquete SRTP durante la decodificación ya no rechaza paquetes válidos
- Se corrigió que el grabador de audio y el agregador comenzaran a producir en el momento adecuado, y p. no generando mucho silencio al principio
- la instantánea interna de ffmpeg de gst-libav se actualizó a 2.8.1
- cerbero tiene soporte para Mac OS X 10.11 (El Capitan)
- Se corrigieron varias fugas de memoria, incluidas fugas importantes en playbin, playsink y decodebin
- Varias correcciones de anotación GObject-Introspection para enlaces
- y muchos, muchos más
Qué hay de nuevo en la versión 1.6.0:
- Compatibilidad con video estereoscópico 3D y multiview
- API de modo truco para reproducción de avance / retroceso rápido de fotograma clave, etc.
- Manejo mejorado de DTS (fecha y hora de decodificación) versus PTS (indicación de fecha y hora de presentación) para tener en cuenta el DTS negativo
- Nueva API GstVideoConverter para una conversión más optimizada y más correcta de los marcos de video sin procesar entre todos los formatos compatibles, con el cambio de escala
- v4l2src ahora admite la renegociación
- v4l2transform ahora puede hacer escalas
- Elemento V4L2 ahora informa Colorimetry correctamente
- Grabación fragmentada más fácil de MP4, Matroska, Ogg, MPEG-TS: nuevas mejoras de splitmuxsink y multifilesink
- API de señalización de protección de contenido y compatibilidad con Common Encryption (CENC) para DASH / MP4
- Muchas mejoras de transmisión adaptable (DASH, HLS y MSS)
- Nuevos relojes de cliente de red PTP y NTP y mejor estabilidad de seguimiento de reloj remoto
- Superposición de subtítulos de texto de alta calidad en resoluciones de pantalla con glimagesink o gtkglsink
- Compatibilidad con RECORD para el servidor GStreamer RTSP
- Compatibilidad con retransmisiones (RTX) en el servidor RTSP y el cliente
- Se ha corregido el RTSP que busca soporte en el cliente y el servidor
- Mejoras de programación de RTCP y compatibilidad de RTCP de tamaño reducido
- MP4 / MOV muxer adquirió un nuevo & quot; robusto & quot; modo de funcionamiento que intenta mantener el archivo de salida en un estado válido en todo momento
- El soporte de mezcla en vivo en agregador, audiomixer y compositor se mejoró mucho
- Compositor ahora también admite el reajuste de flujos de entradas sobre la marcha
- Nuevo elemento audiointerleave con sincronización de entrada adecuada y soporte de entrada en vivo
- El soporte de la tarjeta de captura y reproducción Blackmagic Design DeckLink se reescribió desde cero; Soporte 2k / 4k; modo de detección
- Soporte de metadatos KLV en RTP y MPEG-TS
- Codificador de video H.265 (x265), decodificadores (libav, libde265) y cargador de pago RTP y depayloaders
- Nuevo complemento DTLS y soporte SRTP / DTLS
- Compatibilidad con OpenGL3, múltiples contextos y propagación de contexto, video 3D, separación de transferencia / conversión, mezcla de subtítulos
- Nuevo receptor de video QML basado en OpenGL, receptor de video Gtk GL, receptor de video CoreAnimation CAOpenGLLayerSink
- gst-libav cambió a ffmpeg como libav-provider, gana soporte para video en 3D / multivisión, modos de truco y códec CAVS
- API GstHarness para pruebas unitarias
- gst-editing-services obtuvo una interfaz ges-launch-1.0 completamente nueva, compatibilidad de mezcla mejorada e integración en gst-validate
- gnonlin ha quedado en desuso en favor de nle (Non Linear Engine) en gst-editing-services
- gst-validate tiene un nuevo sistema de complementos, un extenso conjunto de pruebas por defecto, soporte para pruebas concurrentes y valgrind support
- la herramienta de compilación cerbero para paquetes binarios SDK gana el nuevo comando 'bundle-source'
- Varias mejoras en el soporte de la plataforma Android, iOS, OS X y Windows
Qué hay de nuevo en la versión 1.5.2:
- 740502: Agregar propiedad absoluta a GstDirectControlBinding
- 740575: reparación de DTS en GStreamer
- 745366: concat: reenviar eventos FLUSH_START / FLUSH_STOP
- 746949: concat: agrega la propiedad active-pad
- 750027: concat: restablece el desplazamiento de inicio interno a 0 después de la búsqueda de descarga
- 750033: basetransform: permite la intercalación / separación de almacenamientos intermedios
- 750039: mantener vivos los búfers con memoria compartida
- 750319: memoria: las subclases no conocen las banderas del mapa en unmap
- 750530: ptp: FreeBSD, DragonFly y otros BSD no tienen ifreq.ifw_hwaddr
- 750574: netclientclock: convierte el reloj en un reloj de envoltura alrededor de un reloj interno
- 750761: selector de entrada: maneja una selección de seguimiento de duración diferente
- 750782: canalización: agregue la propiedad gst_pipeline_set_latency (), getter y GObject
- 751026: basesink: maneja correctamente las listas de almacenamiento intermedio para la propiedad de la última muestra
- 751047: concat: agrega propiedad de ajuste-base
- 751107: concat: al soltar el pad, envía EOS correctamente.
- 751235: utils: get_compatible_pad no respeta por completo las tapas de filtro
- 751420: baseinks: necesita copiar en profundidad la última lista de almacenamiento intermedio en drain
Qué hay de nuevo en la versión 1.4.5:
- Núcleo GStreamer:
- 736969: queue2: bloqueo muerto al almacenar en el búfer
- 738092: baseink: posición informada de la pinza en función de la dirección
- 740001: tarea: condición de carrera al detenerse y detenerse
- Base de complementos de GStreamer:
- 741420: grupos de videos: debe actualizar el tamaño en la configuración después de aplicar la alineación
- 715050: agregue el tipeador para audio / x-audible
- 739544: tcp: agrega prueba y corrige la pérdida de memoria en elementos tcp
- 739840: typefind debería reconocer Apple Core Audio Format (CAF)
- 740556: videodecodificador: no se queje cuando DTS! = PTS en fotogramas clave
- 740675: playsink: continúa la reproducción, restablece la propiedad de silencio
- 740730: rtspconnection: no elimine la fuente secundaria si la fuente primaria ya está destruida
- 740853: audiodecoder: presione eventos pendientes antes de enviar EOS.
- 740952: alsa: correcciones de NetBSD
- 741045: audiorate puede perder precisión de marca de tiempo en algunos casos
- 741198: playbin: filtra GstPads
- Complementos de GStreamer Bien:
- 711437: apev2mux: no debería poner etiquetas APEv2 al comienzo de los archivos WavPack
- 726194: v4l2src no funciona bien cuando una tarjeta de captura a veces está entrelazada, a veces progresiva con la misma resolución
- 736397: flvdemux: el comportamiento de resincronización por secuencia causa A / V-desyncs
- 737603: v4l2bufferpool: establece banderas de entrelazado de búfer cuando el campo es V4L2_FIELD_INTERLACED
- 739476: vpx: falla al compilar contra libvpx desde git
- 739722: matroskamux: registro seguro de subprocesos GstMatroskamuxPad
- 739789: v4l2allocator: soluciona el mensaje de error si el asignador ya está activo
- 739791: v4l2bufferpool: pool de unref cuando v4l2_allocator_new () falla
- 739792: v4l2allocator: corrige el prototipo de gst_v4l2_allocator_stop
- 739996: videomixer: suelta muchos marcos, si una de las fuentes es en vivo
- 740040: v4l2src: falla en presencia de V4L2_BUF_FLAG_ERROR
- 740392: rtspsrc: mikey base64 descifrado clave-mgmt fuga
- 740407: qtmux limita la captura a 4096x4096
- 740633: v4l2src: RW io-mode está roto
- 740636: v4l2src: framerate no siempre está configurado en el controlador
- 740671: aspectratiocrop: el cultivo debe restablecerse cuando cambia el tamaño del video
- 740905: v4l2: todavía tiene 1 incluir a linux / videodev.h
- 741271: rtph264pay: pérdida de memoria intermedia en el cargador de pago H.264 al usar SPS / PPS
- 741381: rtph264pay: la condición de carrera puede causar un bloqueo al pasar de PAUSED- & gt; LISTO
- 741407: desentrelazado: en query_caps solo devuelve formatos compatibles si el filtro está entrelazado
- 737579: v4l2object: establece el espacio de color para los dispositivos de salida
- 739754: v4l2bufferpool: debería validar que todas las memorias son grabables antes de hacer cola
- Complementos de GStreamer Malos:
- 722764: rawparse: fix BUSCAR el manejo de consultas
- 729768: mpegtsbase: límite de aumento para leer más bytes inicialmente para encontrar PCR
- 739152: gl / cocoa: compilación con GNUStep falla
- 740191: dvbbasesink: segfaults en 32 bits (rpi)
- 740201: gl / cocoa: no se compila en OSX & lt; 10.7 más
- 740451: srtpdec: filtra los eventos de sumidero rtp / rtcp
- 740953: configure.ac: operador de comparación de prueba unportable (1)
- 741321: opusparse: corregir el análisis del encabezado esp. de la salida codificada de libopus
- Servidor GSTreamer RTSP:
- 739481: rtsp-stream: filtra el decodificador srtp al salir de rtpbin
Qué hay de nuevo en la versión 1.4.4:
- Errores corregidos en la versión 1.4.5:
- 737498: multiqueo: no tiene en cuenta el evento GAP al calcular el nivel actual
- 737794: multiquero: interbloqueo si la cola se sobrepasa con eventos serializados
- 737999: systemclock: problema de estado de entrada de múltiples hilos
- 738198: multiqueo: no activa secuencias no vinculadas en EOS
¿Qué hay de nuevo en la versión 1.4.1:
- La serie de lanzamiento 1.4 está agregando nuevas funciones en la parte superior de la serie 1.2 y es parte de la serie de versiones 1.x de API y ABI del marco multimedia GStreamer que contiene nuevas características. Las versiones de corrección de errores 1.4.x solo contienen importantes correcciones de errores en comparación con 1.4.0.
Qué hay de nuevo en la versión 1.4 RC2:
- El equipo de GStreamer se complace en anunciar la segunda versión candidata de la serie de lanzamiento estable 1.4. La serie de lanzamientos 1.4 agrega nuevas características además de las series 1.0 y 1.2 y es parte de la serie de versiones 1.x de ABI y estable del marco multimedia GStreamer.
- Se espera que este lanzamiento sea pronto seguido del lanzamiento estable 1.4.0 si no se detectan regresiones mayores o problemas mayores, y se realizaron suficientes pruebas del lanzamiento del candidato. La nueva API que se agregó durante la serie de lanzamiento 1.3 ya no se espera que cambie en este momento.
Qué hay de nuevo en la versión 1.4 RC1:
- Nueva API:
- GstMessageType ha agregado GST_MESSAGE_EXTENDED. Todos los tipos anteriores se pueden usar juntos como un tipo de banderas como antes, pero a partir de ese mensaje en adelante, los tipos solo se cuentan de forma incremental. Esto fue necesario para poder agregar más tipos de mensajes. En 2.0, GstMessageType se convertirá en una enumeración y no en un tipo de banderas más.
- GstDeviceMonitor para la detección de dispositivos, p. para enumerar todos los dispositivos de captura de audio o video disponibles. Este es el reemplazo de GstPropertyProbe de 0.10.
- Los eventos acumulan el desplazamiento en tiempo de ejecución ahora cuando se desplazan a través de pads, como lo establece la función gst_pad_set_offset (). Esto permite compensar esto en el evento QOS, por ejemplo.
- GstBuffer tiene un nuevo indicador & quot; etiqueta-memoria & quot; eso se establece automáticamente cuando la memoria se agrega o elimina a un búfer. Esto permite que las agrupaciones de almacenamiento intermedio detecten si pueden reciclar un almacenamiento intermedio o si necesitan restablecerlo primero.
- GstToc tiene una nueva API para marcar GstTocEntries como bucles.
- Se ha definido un error de recurso no autorizado para notificar a las aplicaciones que el acceso al recurso ha fallado debido a la falta de autorización y para distinguir este caso de los demás. Este cambio ya está en 1.2.4.
- GstPad tiene un nuevo indicador & quot; accept-intersect & quot ;, que permitirá que el manejador de consultas ACCEPT_CAPS predeterminado realice una intersección en lugar de la comprobación de subconjuntos. Esto es interesante para elementos de analizador que pueden manejar límites incompletos.
- GstCollectPads ahora es compatible con flushing y un controlador predeterminado para eventos SEEK.
- Nuevo objeto auxiliar GstFlowAggregator que simplifica el manejo de los retornos de flujo en elementos con múltiples pads fuente. Además, GstPad ahora siempre almacena el último retorno de flujo y proporciona una API para recuperarlo.
- GstSegment tiene una nueva API para compensar el tiempo de ejecución por un valor específico y esto se usa en GstPad para permitir compensaciones positivas y negativas en gst_pad_set_offset () en todas las situaciones.
- Se ha agregado la compatibilidad con h265 / HEVC y VP8 a las utilidades de codec y la biblioteca de analizadores de códec, y se ha integrado en varios elementos.
- Se agregó la API para ajustar la validación TLS de la conexión RTSP.
- La biblioteca RTSP y SDP ahora admite MIKEY (RFC 3830), y hay API para distinguir entre los diferentes perfiles de RTSP.
- API para acceder a la información y las estadísticas temporales del RTP.
- Se agregó soporte para streams auxiliares a rtpbin.
- Se agregó la compatibilidad con formatos de video en mosaico.
- GstVideoDecoder y GstAudioDecoder tienen API para ayudar a agregar eventos de etiquetas y fusionar etiquetas personalizadas en ellos consistentemente.
- GstBufferPool tiene soporte para descargar ahora.
- playbin / playsink tiene soporte para filtros de audio y video provistos por la aplicación.
- GstDiscoverer tiene una API nueva y simplificada para obtener detalles sobre los complementos faltantes y la información para pasar al instalador del complemento.
- La biblioteca GL se combinó de gst-plugins-gl a gst-plugins-bad, proporcionando una infraestructura genérica para manejar GL dentro de las tuberías de GStreamer y un complemento con algunos elementos que los utilizan, especialmente un receptor de video. Actualmente, las plataformas compatibles son Android, Cocoa (OS X), DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows) y las plataformas genéricas X11, Wayland y EGL. Esto reemplaza eglglessink y también se supone que reemplaza osxvideosink.
- Nueva clase base GstAggregator en gst-plugins-bad. Se supone que esto reemplazará a GstCollectPads en el futuro y solucionará las deficiencias conocidas desde hace tiempo en su API. Junto con la clase base, algunos elementos ya se proporcionan, como un videomixer (compositor).
- Cambios importantes:
- Nuevos complementos y elementos:
- elemento v4l2videodec para acceder a códecs de hardware en plataformas que los hacen accesibles a través de V4L2, p. Samsung Exynos. Esto viene junto con una importante refacturación de los elementos V4L2 existentes y la infraestructura correspondiente. El elemento v4l2videodec reemplaza el elemento mfcdec.
- Nuevo elemento de descarga de búfer que reemplaza la función de búfer de descarga de queue2. Comparado con el código de queue2 es mucho más simple y solo para este caso de uso único. Una nueva característica digna de mención es que está descargando brechas en las partes de transmisión ya descargadas cuando no se descarga nada más. Esto es utilizado ahora por playbin cuando el búfer de descarga está habilitado.
- rtpstreampay y rtpstreamdepay elementos para transmitir paquetes RTP a través de una API de transmisión (por ejemplo, TCP) según RFC 4571.
- Elementos de rtprtx para la implementación estándar de las retransmisiones, integradas en el plugin rtpmanager.
- elemento audiomixer que mezcla múltiples flujos de audio en uno solo mientras mantiene la sincronización. Esto está planeado para convertirse en el reemplazo del elemento sumador.
- Complemento OpenNI2 para cámaras 3D como la cámara Kinect.
- Complemento OpenEXR para decodificar imágenes EXR de rango dinámico alto.
- curlsshsink y curlsftpsink para escribir archivos a través de SSH / SFTP.
- plugins videosignal, ivfparse y sndfile portados desde 0.10.
- avfvideosrc, vtdec y otros elementos fueron portados desde 0.10 y ahora están disponibles en OS X e iOS.
- Otros cambios:
- gst-libav ahora usa libav 10.1 y obtuvo soporte para H265 / HEVC.
- Se mejoró el soporte para códecs de hardware y tipos especiales de memoria con correcciones de errores y adiciones de funciones en varios complementos y clases base.
- Varias correcciones de errores y mejoras al almacenamiento en búfer en los elementos queue2 y multiqueue.
- dvbsrc ahora es compatible con más mecanismos de entrega y otras funciones, incluidos DVB S2 y T2.
- La biblioteca MPEGTS tiene soporte para muchos más descriptores.
- Mejoras importantes en tsdemux y tsparse, especialmente el tiempo y las búsquedas relacionadas.
- souphttpsrc ahora es compatible con conexiones keep-alive, compresión, número de reintentos configurables y configuración para la validación de certificados SSL.
- hlsdemux se ha sometido a una importante refactorización y ahora es más confiable y admite más funciones de HLS, como los modos de truco. Además, los fragmentos se empujan hacia abajo mientras se descargan ahora en lugar de esperar a que cada fragmento termine.
- dashdemux y mssdemux ahora también están empujando fragmentos en sentido descendente mientras se descargan en lugar de esperar a que cada fragmento termine.
- videoflip puede voltearse automáticamente según la etiqueta de orientación.
- openjpeg admite la API OpenJPEG2.
- waylandsink fue refactorizado y debería ser más útil ahora. También incluye una pequeña biblioteca que muy probablemente se eliminará en el futuro y dará lugar a extensiones de la interfaz GstVideoOverlay.
- gst-rtsp-server ahora es compatible con SRTP y MIKEY.
- los codificadores gst-libav ahora están negociando cualquier configuración de perfil / nivel con downstream mediante límites.
- Muchas correcciones para las advertencias de cobertura en todo el lugar.
- Mejoras en el rendimiento relacionadas con la negociación.
- Más de 800 informes corregidos de errores y muchas otras correcciones de errores y otras mejoras en todas partes que no tenían ningún informe de errores.
- Cosas a tener en cuenta:
- El elemento eglglessink fue eliminado y reemplazado por el elemento glimagesink.
- El elemento mfcdec se eliminó y se reemplazó por v4l2videodec.
- osxvideosink solo está disponible en OS X 10.6 o posterior.
- En Android, el espacio de nombres de la clase Java generada automáticamente para la inicialización de GStreamer ha cambiado de com.gstreamer a org.freedesktop.gstreamer para evitar la contaminación del espacio de nombres.
- En iOS, debe actualizar gst_ios_init.hy gst_ios_init.m en sus proyectos a partir del que se incluye en los archivos binarios si antes utilizó el módulo GnuTLS GIO. El mecanismo de carga ha cambiado ligeramente.
Qué hay de nuevo en la versión 1.2.4:
- Núcleo GStreamer:
- 724373: Queue2 trunca su archivo temporal cuando la tubería está en pausa
- 725517: documentos: corrige errores tipográficos y elimina anotaciones desconocidas
- 725809: ghostpad: bloqueo raro debido a la falta de recuento de referencias en su plataforma de destino
- 727253: análisis: el archivo generado por Bison incluido en la versión tarls provoca errores de compilación
- 727883: baseparse: pérdida de memoria de los marcos de cola
- Base de complementos de GStreamer:
- 693263: typefinding: MPEG-2 video ES detectado como H.263
- 683504: playsink: punto muerto cuando se desactivan los subtítulos y la desactivación de subtítulos por debajo de lo óptimo
- 700770: typefinding: archivo mp3 detectado incorrectamente como video h263
- 723597: tagdemux: el evento de búsqueda en GST_FORMAT_TIME se convierte en BYTES a principios
- 724633: oggdemux: ignora la última página en el modo de inserción
- 724720: rtspconnection: no es posible desconectar / volver a conectar la conexión de lectura en modo túnel
- 725313: rtspconnection: callback cerrado () nunca se llama en modo túnel
- 725644: typefinding: el archivo mp3 se detecta erróneamente como H.263
- 726642: rtspconnection: pérdida de memoria menor en el manejo de errores
- 727025: sumador: vuelva a trabajar la lógica para verificar si se debe enviar eos.
- Complementos de GStreamer:
- 725104: qtdemux: reproducción en reversa y falla en la conmutación de flujo de video
- 722185: souphttpsrc: racy & quot; el servidor no admite la búsqueda de & quot; error
- 724619: bloqueo al leer la propiedad del nombre del dispositivo de pulsesink
- 725124: rtspsrc: soluciona el interbloqueo cuando la creación de tareas no tiene éxito
- 725712: rtpsession: falla cuando se recibió FIR RTCP con SSRC desconocido
- 725860: v4l2src: solución mediante v4l2src con dispositivo de captura de video HDPVR de Hauppauge
- 726777: rtpjpegpay: el tamaño de la carga útil no se calculó correctamente
- 728017: el evento [regression] eos no se pudo enviar desde gstrtpjitterbuffer.
- 728041: rtph264depay: marca todos los búferes de salida como unidades delta al generar formato de avc
- 724638: aacparse: falta de elasticidad cuando no se encuentra el marco de audio
- 727329: check: souphttpsrc: nombre de tipo desconocido 'SoupStatus'
- Complementos de GStreamer Malos:
- 724013: No codificar / usr / compartir / sounds / sf2 en fluiddec
- 725137: hlsdemux: no puede calcular la URL de la lista de reproducción de medios si hay un parámetro de consulta li>
- 725140: hlsdemux: falla al analizar correctamente CODECS y RESOLUCIÓN
- Complementos de GStreamer libav:
- 727779: avdec_h264, matroskademux: bloqueo al buscar (regresión 1.2)
¿Qué hay de nuevo en la versión 1.2.2:
- La serie de lanzamiento 1.2 agrega nuevos características sobre la serie 1.0 y es parte de la serie de versiones 1.x de API y ABI del framework multimedia GStreamer que contiene nuevas características.
Qué hay de nuevo en la versión 1.2.0:
- Nueva API:
- GstContext negociación / intercambio / anuncio para compartir un contexto genérico entre elementos, p. un asa de visualización
- Meta de conversión de carga GL textura para permitir que diferentes tipos de búfer se conviertan en una textura OpenGL
- GstCapsFeatures como extensión a GstCaps para permitir la negociación de memoria específica o meta requerimientos entre elementos
- Indicadores GstMemory para memoria contigua y no asignable
- El evento de inicio de flujo tiene ahora indicadores opcionales, p. para señalizar flujos dispersos
- El inicio de la transmisión incluso tiene ahora un campo de identificación de grupo opcional para señalar todas las transmisiones que deben reproducirse juntas
- Biblioteca de asignaciones en gst-plugins-base, actualmente solo con soporte genérico de memoria dmabuf
- biblioteca de inserción para un manejo más fácil de las tuberías conectadas dinámicamente (por ahora, en mal estado)
- Biblioteca auxiliar de EGL (por ahora, en mal estado)
- Biblioteca de estructura de datos MPEG-TS (por ahora, en mal estado)
- Nuevo GstVideoRegionOfInterestMeta para describir una región de interés en marcos de video.
- GstVideoDecoder / Encoder tiene nuevo :: flush () vfunc para reemplazar el mal definido :: reset () vfunc.
- La consulta de URI permite consultar el URI redirigido ahora.
- Cambios importantes:
- Nueva herramienta: gst-play-1.0 en gst-plugins-base para pruebas básicas de reproducción en la línea de comandos.
- Nuevos complementos:
- mssdemux para Microsoft Smooth Streaming
- dashdemux para el protocolo de transmisión adaptable DASH
- bluez para la interacción con dispositivos Bluetooth
- openjpeg para decodificación y codificación JPEG2000
- daala para decodificación y codificación Daala experimental
- el complemento vpx tiene una codificación y decodificación experimental para VP9
- plugin webp para decodificación WebP (la codificación se agregará más adelante)
- Varios otros: yadif, srtp, sbc, fluidsynth, midiparse, mfc, ivtv, accuraterip y audiofxbad
- Complementos movidos:
- los complementos dtmf, vp8rtp, scaletempo y rtpmux están en gst-plugins, ahora son buenos
- Video:
- Se corrigió el manejo del video entrelazado en conversores como la escala de video y el videoconvertido (por ejemplo, escalar ambos campos de forma independiente)
- videoconvert intentará más para minimizar las pérdidas de calidad cuando sea necesaria la conversión
- Las API experimentales GstSurfaceConverter, GstSurfaceMeta y GstVideoContext de la biblioteca (confusamente nombrada) libgstbasevideo-1.0 en gst-plugins-bad ahora se han eliminado y se han reemplazado por nuevas API en GStreamer Core y gst-plugins-base (ver arriba ) Como eso era todo lo que quedaba en esta biblioteca, toda la biblioteca experimental libgstbasevideo-1.0 se ha eliminado de gst-plugins-bad
- La conversión del submuestreo de croma y la ubicación de crominancia se maneja mejor en videoconversión y se mejoró el soporte para video entrelazado.
- Nuevos patrones de pinwheel y spoke en videotestsrc
- videomixer ahora puede aceptar diferentes formatos de video en sus sinkpads y convierte a un formato común durante la mezcla
- Audio:
- audioconvert intentará más para minimizar las pérdidas de calidad cuando sea necesaria la conversión
- sumador ahora permite silenciar / sintonizar sus flujos de entrada, y también por volumen de flujo por entrada
- los elementos de pulseaudio pueden alternar entre dispositivos durante la reproducción ahora
- aacparse puede convertir entre ADTS ← -> RAW
- Cambios específicos de la plataforma:
- Las mayúsculas, los eventos, etc. ahora se imprimen en los registros de depuración de GStreamer con su contenido en lugar de solo la dirección del puntero, incluso en plataformas que no son de glibc (por ejemplo, Windows, OSX, Android).
- Los elementos de red (UDP / TCP) ahora funcionan mejor con plataformas, donde los zócalos IPv6 no pueden manejar IPv4 (por ejemplo, Windows)
- Linux / BSD: v4l2 tenía muchas mejoras y limpiezas
- Otros cambios:
- gst-libav ahora usa libav 9
- Ahora se admite el enlace estático de complementos (también en 1.0.7)
- rtspsrc: agregue soporte para NetClientClock: cuando el servidor sugiere un GstNetTimeProvider en el SDP, configure un GstNetClientClock que esclavice el reloj remoto y sugiera este reloj en provide_clock. Simplifica la reproducción sincronizada de un recurso de un servidor RTSP. gst-rtsp-server ahora admite agregar esto al SDP y puede proporcionar un reloj de red
- Retransmisión de RTP / compatibilidad con NACK y grandes mejoras en el jitterbuffer de RTP
- Compatibilidad con SRTP y DTLS
- Cambia a muchos elementos y núcleo para usar el orden correcto de eventos adhesivos y también no pierde ningún evento importante durante la descarga
- & gt; 1000 informes de errores corregidos, y muchas otras correcciones de errores y otras mejoras en todas partes que no tenían ningún informe de errores
- Cosas a tener en cuenta:
- Incluye un solo encabezado para todas las bibliotecas, p. #include: esto era necesario para algunas vinculaciones.
- Comprobación del subconjunto de mayúsculas más estrictas (correctas) en algunos casos donde esto no era correcto antes. Las mayúsculas siempre dejarán de ser un subconjunto compatible de otro conjunto de mayúsculas si a las mayúsculas del subconjunto les faltan algunos campos que tienen los límites de superconjunto. Esto podría llevar a errores no negociados si los límites están incompletos ahora. Sin embargo, también evita la posible corrupción de datos causada por los datos de las tuberías formateados de manera incompatible / inesperada en algunos elementos. Verifique las tapas de su h264 para ver los campos de formato de flujo y alineación y las tapas AAC para el campo de formato de flujo. Este cambio también se incluirá en la próxima versión estable 1.0.8.
- Comprobación más estricta para detectar la presencia de eventos faltantes y corregir el orden de eventos fijos (inicio de secuencia, límites, segmento) en algunos lugares; esto no está habilitado en las versiones estables de manera predeterminada, pero puede recibir advertencias cuando se usan compilaciones git, versiones de desarrollo o cuando se compila con -UG_DISABLE_ASSERT en CFLAGS
- x264enc ahora genera datos en byte-stream de forma predeterminada si downstream tiene CUALQUIER límite (por ejemplo, appsink sin topes fijados, filesink, udpsink, tcpserversink, etc.)
- Los mensajes MPEG TS demuxer posts contienen el PMT, PAT, etc. en un formato diferente ahora. Este nuevo formato usa las estructuras de datos de la nueva biblioteca MPEGTS
- La API de GstContext ha cambiado entre 1.1.4 y 1.1.90
Qué hay de nuevo en la versión 1.1.4:
- Nueva API:
- GstContext negociación / intercambio / anuncio para compartir un contexto genérico entre elementos, p. un asa de visualización
- Meta de conversión de carga GL textura para permitir que diferentes tipos de búfer se conviertan en una textura OpenGL
- GstCapsFeatures como extensión a GstCaps para permitir la negociación de memoria específica o meta requerimientos entre elementos
- Indicadores GstMemory para memoria contigua y no asignable
- El evento de inicio de flujo tiene ahora indicadores opcionales, p. para señalizar flujos dispersos
- El inicio de la transmisión incluso tiene ahora un campo de identificación de grupo opcional para señalar todas las transmisiones que deben reproducirse juntas
- Biblioteca de asignaciones en gst-plugins-base, actualmente solo con soporte genérico de memoria dmabuf
- biblioteca de inserción para un manejo más fácil de las tuberías conectadas dinámicamente (por ahora, en mal estado)
- Biblioteca auxiliar de EGL (por ahora, en mal estado)
- Biblioteca de estructura de datos MPEG-TS (por ahora, en mal estado)
- Nuevo GstVideoRegionOfInterestMeta para describir una región de interés en marcos de video.
- GstVideoDecoder / Encoder tiene nuevo :: flush () vfunc para reemplazar el mal definido :: reset () vfunc.
- La consulta de URI permite consultar el URI redirigido ahora.
- Cambios importantes:
- Nueva herramienta: gst-play-1.0 en gst-plugins-base para pruebas básicas de reproducción en la línea de comandos.
- Nuevos complementos:
- mssdemux para Microsoft Smooth Streaming
- dashdemux para el protocolo de transmisión adaptable DASH
- bluez para la interacción con dispositivos Bluetooth
- openjpeg para decodificación y codificación JPEG2000
- daala para decodificación y codificación Daala experimental
- plugin vpx tiene una codificación V9 experimental y soporte de codificación
- plugin webp para decodificación WebP (la codificación se agregará más adelante)
- Varios otros: yadif, srtp, sbc, fluidsynth, midiparse, mfc, ivtv, accuraterip y audiofxbad
- Complementos movidos:
- los complementos dtmf, vp8rtp, scaletempo y rtpmux están en gst-plugins, ahora son buenos
- Video:
- Se corrigió el manejo del video entrelazado en conversores como la escala de video y el videoconvertido (por ejemplo, escalar ambos campos de forma independiente)
- videoconvert intentará más para minimizar las pérdidas de calidad cuando sea necesaria la conversión
- Las API experimentales GstSurfaceConverter, GstSurfaceMeta y GstVideoContext de la biblioteca (confusamente nombrada) libgstbasevideo-1.0 en gst-plugins-bad ahora se han eliminado y se han reemplazado por nuevas API en GStreamer Core y gst-plugins-base (ver arriba ) Como eso era todo lo que quedaba en esta biblioteca, toda la biblioteca experimental libgstbasevideo-1.0 se ha eliminado de gst-plugins-bad.
- La conversión de submuestreo y ubicación de Chroma se maneja mejor en videoconvert
- Nuevos patrones de pinwheel y spoke en videotestsrc
- Audio:
- sumador ahora permite silenciar / sintonizar sus flujos de entrada, y también por volumen de flujo por entrada
- los elementos de pulseaudio pueden alternar entre dispositivos durante la reproducción ahora
- aacparse puede convertir entre ADTS ← -> RAW
- Cambios específicos de la plataforma:
- Las mayúsculas, los eventos, etc. ahora se imprimen en los registros de depuración de GStreamer con su contenido en lugar de solo la dirección del puntero, incluso en plataformas que no son de glibc (por ejemplo, Windows, OSX, Android).
- Los elementos de red (UDP / TCP) ahora funcionan mejor con plataformas, donde los zócalos IPv6 no pueden manejar IPv4 (por ejemplo, Windows)
- Windows: d3dvideosink proporciona una agrupación de almacenamiento intermedio para elementos en sentido ascendente
- Linux / BSD: v4l2 tenía muchas mejoras y limpiezas
- Otros cambios:
- gst-libav ahora usa libav 9
- Ahora se admite el enlace estático de complementos (también en 1.0.7)
- rtspsrc: agregue soporte para NetClientClock: cuando el servidor sugiere un GstNetTimeProvider en el SDP, configure un GstNetClientClock que esclavice el reloj remoto y sugiera este reloj en provide_clock. Simplifica la reproducción sincronizada de un recurso de un servidor RTSP. gst-rtsp-server ahora admite agregar esto al SDP y puede proporcionar un reloj de red
- Retransmisión de RTP / compatibilidad con NACK y grandes mejoras en el jitterbuffer de RTP
- Compatibilidad con SRTP y DTLS
- Cambia a muchos elementos y núcleo para usar el orden correcto de eventos adhesivos y también no pierde ningún evento importante durante la descarga
- & gt; 1000 informes de errores corregidos, y muchas otras correcciones de errores y otras mejoras en todas partes que no tenían ningún informe de errores
- Cosas a tener en cuenta:
- Incluye un solo encabezado para todas las bibliotecas, p. #include: esto era necesario para algunas vinculaciones.
- Comprobación del subconjunto de mayúsculas más estrictas (correctas) en algunos casos donde esto no era correcto antes. Las mayúsculas siempre dejarán de ser un subconjunto compatible de otro conjunto de mayúsculas si a las mayúsculas del subconjunto les faltan algunos campos que tienen los límites de superconjunto. Esto podría llevar a errores no negociados si los límites están incompletos ahora. Sin embargo, también evita la posible corrupción de datos causada por los datos de las tuberías formateados de manera incompatible / inesperada en algunos elementos. Verifique las tapas de su h264 para ver los campos de formato de flujo y alineación y las tapas AAC para el campo de formato de flujo. Este cambio también se incluirá en la próxima versión estable 1.0.8.
- Comprobación más estricta para detectar la presencia de eventos faltantes y corregir el orden de eventos fijos (inicio de secuencia, límites, segmento) en algunos lugares; esto no está habilitado en las versiones estables de manera predeterminada, pero puede recibir advertencias cuando se usan compilaciones git, versiones de desarrollo o cuando se compila con -UG_DISABLE_ASSERT en CFLAGS
- x264enc ahora genera datos en byte-stream de forma predeterminada si downstream tiene CUALQUIER límite (por ejemplo, appsink sin topes fijados, filesink, udpsink, tcpserversink, etc.)
El
Comentarios que no se encuentran