Instrucciones de uso de Gstreamer
Gstreamer es un núcleo abierto multiplataforma que admite Windows, Linux, Android e iOS. Las aplicaciones pueden concatenar todos los pasos del procesamiento multimedia a través de canales para lograr el efecto deseado. Cada paso se implementa a través de elementos y complementos basados en el sistema de objetos GoObject, lo que facilita la expansión de diversas funciones.
La función principal de GStreamer es proporcionar un marco para complementos, transmisión de datos y procesamiento/negociación de tipos de medios. También proporciona una API para escribir aplicaciones utilizando varios complementos.
GStreamer proporciona
El marco Gstreamer coloca el núcleo y los complementos en diferentes paquetes de código fuente según la madurez de cada módulo y el protocolo de código abierto utilizado:
Los elementos son uno de los tipos de objetos más importantes en gstream. Un elemento implementa una función (lectura de archivos, decodificación, salida, etc.), y el programa necesita crear múltiples elementos y conectarlos en secuencia (¡con tuberías!) para formar una tubería completa.
Lista oficial de elementos y complementos
Hay tres tipos principales de elementos:
Pads es la interfaz entre el elemento y el mundo exterior. dos definiciones de atributos: dirección y disponibilidad. Dos componentes solo se pueden conectar mediante terminales de soldadura. Una vez que el componente se conecta correctamente a través del pad, los datos se transferirán desde el pad src del componente anterior al pad disipador del siguiente componente y luego se procesarán. Un elemento puede tener varios jefes idénticos al mismo tiempo.
Bin es un elemento contenedor que se utiliza para gestionar múltiples elementos. Como bin en sí es un elemento, puede tratarse como cualquier otro elemento. Al cambiar el estado de un contenedor, el contenedor modifica automáticamente el estado de los elementos contenidos y reenvía los mensajes recibidos. Sin bin, necesitamos operar los elementos que usamos secuencialmente. La complejidad de la aplicación se reduce mediante la vinculación.
Pipeline hereda bin, proporciona al programa un bus para transmitir mensajes y sincroniza todos los elementos secundarios. Cuando el estado de la canalización se establece en Reproducción, la canalización procesa datos a través de los elementos en uno o más subprocesos nuevos.
Ejemplo: cuando utiliza el siguiente comando para reproducir un archivo, se creará la siguiente canalización:
La canalización consta de ocho componentes, cada componente implementa su propia función:
p>
Filesrc lee el archivo, oggdemux analiza el archivo, extrae audio, datos de video y datos de caché de cola respectivamente, vorbisdec decodifica el audio, autoaudiosink selecciona automáticamente el dispositivo de audio y lo genera Theoradec decodifica el video, videoconvert convierte el video; formato de datos y autovideosink selecciona automáticamente el dispositivo de visualización y lo genera.
Referencia Instalación en Linux
Referencia API
Aplicación de muestra helloworld.c
Aplicación compiladora