2012-01-04 16 views
10

Intento grabar un video con OpenCV Framework y me gustaría guardarlo en un Matroska (mkv) Container junto con algunos flujos de datos adicionales.GStreamer vs FFmpeg

Primero pensé que usar FFmpeg es la forma en que. Pero mientras buscaba en el código fuente de OpenCV y buscaba en la web encontré GStreamer.

Como la documentación en GStreamer es mucho mejor que la documentación de FFmpeg, preferiría utilizar este Framework.

En mi comprensión, GStreamer se usa principalmente para Streaming, pero también podría codificar y mux datos de video.

¿Hay alguna desventaja al usar GStreamer en lugar de FFmpeg?

Gracias de antemano Horst

Respuesta

12

intento grabar un video con el Marco de OpenCV una quisiera ahorrar que en un Matroska (MKV)

No creo que pueda OpenCV almacenar video como MKV,

junto con algunas secuencias de datos adicionales.

OpenCV no proporciona funciones para esta operación.

Una solución fácil es simplemente llamada de ffmpeg o aplicación cmd línea de gstreamer para hacer la conversión para usted.

GStreamer tiene una documentación decente y también puede hacer el trabajo. La obvia desventaja desventaja es que si sabes cómo trabajar con FFmpeg, cambiar a GStreamer requerirá un tiempo extra para comprender cómo funciona, ya que ambos tienen API completamente diferentes: la arquitectura GStreamer se inspiró en DirectShow y Quicktime.

El ventaja es que GStreamer (además de ser multiplataforma también) se utiliza en varios proyectos grandes y conociendo GStreamer sin duda añadir una gran habilidad a su arsenal de programación.

+3

+1 para la publicación informativa de GStreamer :) – mevatron

+0

OpenCV construye su almacenamiento de salida de datos en el concepto y patrón de proxies. Puede usar un proxy Ffmpeg, un proxy Gstreamer o incluso un _imágenes proxy_, una especie de proxy cero que funciona con (posiblemente entre otras) imágenes JPEG. Mírelo a [este pegar] (http://paste.frubar.net/16334) de [la función cvCreateVideoWriter] (https://github.com/Itseez/opencv/blob/master/modules/highgui/src/cap .cpp). Por ejemplo, yo uso para configurar un OpenCV simple sin una gran cantidad de configuración con muchos proxies, y simplemente trabajo con imágenes y hago la multiplexación y demultiplexación de video invocando a Ffmpeg externamente. – uprego