c++ - ¿GStreamer o DirectShow para el desarrollo de Windows?
(4)
Avisynth puede proporcionar una fácil mezcla de flujos, y puede tomar entrada directa.
Estoy implementando un proyecto de captura de conferencias para una universidad local. Múltiples flujos de video llegarán a una PC: las diapositivas del escritorio del presentador, una imagen de la cámara de video del presentador y, opcionalmente, una captura de pizarra digital. Estas secuencias entrantes serán administradas por una aplicación de escritorio que muestra, transcodifica / mezcla y eventualmente las guarda en el disco. Habrá algunas opciones de configuración porque el material se puede distribuir de varias maneras: como una aplicación Flash en un DVD, como una aplicación Flash en línea o como una transmisión de video a pedido para Windows Media Player.
Esta aplicación debería funcionar en Windows. Opcionalmente, puede soportar otras plataformas, pero no parece ser de alta prioridad.
Tanto GStreamer como DirectShow parecen capaces de proporcionar la tecnología subyacente. Tengo un poco de experiencia con GStreamer en Linux, y me gusta su diseño, así que me inclino a usarlo para este proyecto. Sin embargo, no sé qué tan bien es compatible con Windows. No pude encontrar ningún documento reciente sobre cómo construir GStreamer en Windows. Así que me temo que me voy a quedar estancado en algún lugar del proceso.
DirectShow parece una opción más segura porque se usa mucho más y hay mucha más documentación disponible en Internet.
¿Alguien aquí tiene experiencia usando GStreamer en Windows? ¿Funciona bien? ¿Hay ciertos problemas que debo tener en cuenta?
Editar
Descubrí el sitio web GStreamer OSSBuilds y pude implementar rápidamente un reproductor de video simple (basado en el elemento ''playbin'') con él. Así que creo que voy a seguir un poco más el camino de GStreamer.
Considere mirar a VLC. http://www.videolan.org/ Lo segundo que dijo fnieto sobre el infierno de la compilación con GStreamer en Winbdows (lo hice recientemente). Pero si está familiarizado con el entorno Unix, puede que no sea un gran problema con Cygwin o MSYS. Pero tenga en cuenta que probablemente no dispondrá de un soporte de hardware confiable y disponible con GStreamer en Windows como lo haría con Media Foundation o DirectShow. También vale la pena mirar el framework de iTV de Microsoft Media Center.
La última vez que trabajé con GStreamer en windows fue bastante tedioso.
Si lo haces de esta manera, deberías estar dispuesto a pasar mucho tiempo lidiando con el tiempo de ejecución y otros problemas de compilación. Lo primero que debe evaluar es qué compilador / tiempo de ejecución utilizará.
Si la portabilidad no es una obligación, debería tomar el camino fácil. DirectShow.
Ok, voy a responder a esta pregunta a mí mismo. La respuesta simple es: ¡GStreamer! No he experimentado dificultades hasta ahora. Para que funcione en Windows, debes usar los WinStilds de GStreamer .
Actualización (6 meses después)
En realidad me quemé un poco en esta apuesta. Más adelante en el proyecto, el cliente especificó que el códec WMV9 (VC-1) tenía que ser compatible. Dado que los codificadores WMV9 solo son compatibles con las plataformas Microsft, esto no fue posible implementar en una solución basada en GStreamer. Así que tal vez DirectShow hubiera sido la elección correcta.