Un poco de historia, me dieron la tarea de corregir algunos errores "pequeños" y mantener esta solución para la transmisión de video a través de la red entre dos instancias de nuestra aplicación. La solución fue escrita por alguien que ya no está aquí, así que hay algo de misterio en el código, así como algunas trampas realmente divertidas. La solución se escribió usando ffmpeg con código C++ escrito para envolver el código relacionado con la codificación/descodificación, así como parte del código de transmisión. Este C++ luego se envolvió con SWIG para que pudiera interoperar con C# y pasar los cuadros de video hacia arriba donde se representan usando VideoRendererElement que vive en un control WPF. La razón principal por la que se pasan los marcos es porque tenemos algunos protocolos personalizados que necesitamos para enviar datos de video y esos están escritos usando C# para que los fotogramas de video se pasen, los envolvemos en nuestros propios paquetes y los enviamos por cable . Esta solución funciona y podemos transmitir video utilizando nuestros protocolos personalizados, aunque es algo así como una pesadilla para mantener y trabajar.Cómo codificar/decodificar video usando C#?
Mi pregunta es ¿hay una mejor manera de hacerlo? Estoy buscando formas de trabajar en un nivel inferior con los datos de video (en C#) para poder tomar los marcos de video y empaquetarlos en nuestros propios paquetes y enviarlos y poder recibir y reconstruir el video en el otro lado. ffmpeg parece ser la solución común, pero me he encontrado con un montón de problemas y la cosa GPL/LGPL creo que es un problema.
El flujo básico que estoy buscando lograr, archivo de video -> codificar -> envolver en paquete -> enviar por cable en el protocolo X -> obtener datos de video del paquete -> decodificar -> renderizar/guardar en el disco
¿Por qué es LGPL un problema para usted? Incluso si su aplicación es para clientes comerciales, no debería ser un problema. –
Posible duplicado: http://stackoverflow.com/questions/271003/anyone-know-of-a-set-of-c-bindings-for-ffmpeg –
La cosa GPL/LGPL fue planteada por otro compañero de trabajo, pero lo hicieron sonar como si estuviéramos rompiendo la licencia con la forma en que estamos usando ffmpeg y algunas de sus bibliotecas dependientes. En cuanto a la publicación duplicada, estoy tratando de alejarme de ffmpeg si es posible y el ffmpeg afilado no parecía funcionar o que ya estaba siendo respaldado. –