Pregunta

¿Cómo codifica el video de la cámara web en H.264 en C #?

¿Qué necesito?

  • MSDN si hay alguna ayuda en esto.
  • Libs / contenedores de código abierto para codificación / decodificación.
  • Tutoriales y artículos de blog sobre cómo hacerlo.

Algunos ejemplos de cómo codificar en 3GP o FLV u otra cosa con un tamaño de archivo bajo serían más que apreciados.

¿Fue útil?

Solución

Tendrá que buscar en DirectShow SDK.

La codificación en H.264 no es directamente posible, sin embargo, existen controles comerciales activex que pueden ayudarlo. Pero necesitas entender algunas cosas,

DirectShow es un marco de procesamiento de audio / video, y puede usar la herramienta de edición de gráficos para colocar sus dispositivos en el gráfico y probarlo. Y debe escribir un código similar para construir el gráfico, el gráfico es una cadena de dispositivos / objetos que interactúan entre sí para producir una salida final.

DirectShow se puede usar en .NET, puede usar la herramienta GraphEditPlus para crear un gráfico y usarlo en .NET, sin embargo, dudo que .NET sea la mejor manera porque puede generar errores desconocidos ya que DirectShow está estrechamente vinculado a COM. Si crea el control ActiveX, en C ++ nativo y usa DirectShow para hacer una grabación completa y usa ActiveX en WPF, será más estable aunque difícil de programar.

Normalmente necesitará el gráfico de la siguiente manera,

Video Source => Demux -> Audio Stream + Video Stream -> MP4Muxer 

x264 es de código abierto y tiene un buen MP4Muxer pero no es legal, debe tener licencias de patente adquiridas para usar H264 en su código.

Las alternativas son que puedes utilizar muchos controles comerciales, el IPP de Intel es la mejor implementación de H264 hasta ahora, pero es un poco complicado ponerlo en funcionamiento directo.

Otros consejos

A continuación se muestran 2 ejemplos de CodeProject para captura de video en .NET.

No incluyen H.264 específicamente. Para eso es posible que desee procesar el video después de la captura, con componentes de terceros, por ejemplo: http://www.elecard.com/products/ productos-pc / sdk / codec-.net-sdk /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top