Pregunta

El escenario es el siguiente: mi aplicación cliente de Windows obtiene fotogramas codificados en H264 de una fuente de red, sin un contenedor, de forma personalizada (protocolo propietario).Se conoce el formato de los fotogramas.Necesito decodificar los fotogramas y mostrar el video.Se requiere que la reproducción sea impecable durante la transmisión HD, pero tenga una opción de baja latencia para otros escenarios.

Actualmente, utilizo libavcodec de ffmpeg para decodificar los marcos y luego los muestro manualmente en la pantalla con StretchBlt.Estamos considerando un cambio a Media Foundation, pero no me queda claro: ¿es posible tener una fuente que no use un contenedor?si es así, ¿necesito crear uno personalizado?

Las alternativas al uso de Media Foundation también son bienvenidas.Mi principal problema con el método que utilizo actualmente es que el rendimiento no es lo suficientemente bueno, especialmente para videos HD.

¿Fue útil?

Solución

No veo que menciones que necesitas específicamente o qué API Media Foundation, por lo que te sugeriría DirectShow, con la que puedes hacerlo:

  • fuente personalizada, consulte Muestra de filtros de origen push
  • Decodificador H.264, en stock con Windows 7 (similar a Media Foundation) o de terceros (puede elegir entre unos pocos)
  • renderizador de video como EVR (compartido con Media Foundation) o versiones anteriores
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top