c ++ - DirectShow - Få videorammer

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skaber en Windows video capture applikation og bruger DirectShow til capture. Da hver ramme kommer ind, vil jeg få den som en rå RGB-bitmap til en buffer, hvorefter min kode vil gøre, hvad forarbejdning jeg har brug for.


Jeg har søgt efter prøver, der ligner det, jeg vil gøre, og overalt, hvor jeg ser online, anbefaler folk at bruge enten IMediaDet og/eller ISampleGrabber-grænsefladen til at lave ramme-for-frame-optagelse. Desværre er begge udskilt og aren ' t selv i den nyeste version af Windows SDK. [3] [4]


Hvad er den bedste (moderne) måde at gøre ramme-for-frame capture i DirectShow? Hvis der ikke er nogen, er der et andet bibliotek, jeg skal bruge, der vil give mig ramme-for-frame capture?

Bedste reference


Sample Grabber blev forældet for få år siden, hvilket var et par år efter, at DirectShow-udviklingen rent faktisk var stoppet. Det vil sige, brug Sample Grabber som du læser som foreslået metode, og det vil fungere godt for dig.


Det eneste du vil få brug for er at kopiere definitioner i din kildekode, se detaljer:



  • [5] Alternativ til ISampleGrabber

  • [6] Sample Grabber erstatning

  • [7] ISampleGrabber deprecated: hvor kan jeg finde alternativer?