Domanda

Lo scenario è questo: la mia app client Windows riceve frame con codifica H264 da un'origine di rete, senza un contenitore, in modo personalizzato (protocollo proprietario).Il formato dei frame è noto.Devo decodificare i frame e visualizzare il video.È necessario che la riproduzione sia impeccabile durante lo streaming HD, ma abbia un'opzione a bassa latenza per altri scenari.

Attualmente, utilizzo il libavcodec di ffmpeg per decodificare i frame, quindi li visualizzo manualmente sullo schermo con StretchBlt.Stiamo valutando di passare a Media Foundation, ma non mi è chiaro: è possibile avere una fonte che non utilizza un contenitore?in tal caso, devo crearne uno personalizzato?

Sono benvenute anche alternative all'uso di Media Foundation.Il mio problema principale con il metodo che utilizzo attualmente è che le prestazioni non sono abbastanza buone, soprattutto per i video HD.

È stato utile?

Soluzione

Non ti vedo menzionare la tua necessità specifica o quale API Media Foundation, quindi suggerirei DirectShow, con cui puoi farlo:

  • origine personalizzata, vedere Esempio di filtri sorgente push
  • Decoder H.264, stock con Windows 7 (simile a Media Foundation) o di terze parti (a scelta tra pochi)
  • renderer video come EVR (condiviso con Media Foundation) o versioni precedenti
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top