COM-komponentti

Scene Detector

Videokohtausten tunnistus kehittäjille. Integroi se sovellukseesi COM-rajapinnan kautta.

Scene Detector on COM-komponentti, joka perustuu HandySaw DS -kohtaustunnistusteknologiaan. Se käsittelee videotiedoston ja palauttaa listan tunnistetuista kohtauksista ruuduntarkoin rajoin. Komponentti voi myös luoda pikkukuvia jokaisesta kohtauksesta ja raportoida uusista kohtauksista reaaliajassa takaisinkutsurajapintojen kautta. Sinun ei tarvitse odottaa koko tunnistusprosessin valmistumista.

COM-komponentti noudattaa standardiarkkitehtuuria, mikä tekee siitä käytettävän lähes missä tahansa Windows-kehitysympäristössä. Jos tarvitset erillisen työpöytätyökalun kehittäjäkomponentin sijaan, HandySaw DS on oikea valinta.

Laaja formaattituki

Käsittelee kaikki videotiedostot, jotka Windows Media Player voi toistaa DirectShow API:n kautta.

Reaaliaikaiset takaisinkutsut

Raportoi jokaisesta uudesta kohtauksesta heti, kun se löytyy. Sovelluksesi saa tulokset käsittelyn aikana.

Pikkukuvien luonti

Tallentaa valinnaisesti jokaisen kohtauksen ensimmäisen ja viimeisen ruudun BMP- tai JPEG-tiedostoina millä tahansa mittakaavalla.

RGB- ja YUV-väriavaruudet

Tunnistus voi toimia RGB24- tai YUY2-väriavaruudessa; molemmilla on omat suositellut oletuskynnysarvonsa.

Valkoiseen ja mustaan häivytysten tunnistus

Konfiguroitavat luminanssikynnykset tunnistavat valkoiseen ja mustaan häivytyssiirtymät erillisinä kohtauksina.

Osittainen tiedostokäsittely

Määritä alku- ja loppukohdat tunnistaaksesi kohtauksia vain valitusta mediatiedoston segmentistä.

Mukautettu suodatinputki

Ohita sisäisesti käytetyt lähde-, jakaja- ja dekooderi-DirectShow-suodattimet maksimaalisen yhteensopivuuden saavuttamiseksi.

Lyhyiden kohtausten yhdistäminen

Määritettyä minimipituutta lyhyemmät kohtaukset yhdistetään automaattisesti naapureihinsa tai poistetaan.

Ota yhteyttä saadaksesi demoversion ja hintatiedot.

sdScenesMergeKind enum

Määrittää, miten lyhyitä kohtauksia käsitellään tunnistuksen jälkeen.

sdMergeDelete = 0 Lyhyt kohtaus poistetaan.
sdMergeWithPrev = 1 Lyhyt kohtaus yhdistetään edelliseen kohtaukseen.
sdMergeWithNext = 2 Lyhyt kohtaus yhdistetään seuraavaan kohtaukseen.
sdMergeWithBoth = 3 Lyhyt kohtaus, edellinen kohtaus ja seuraava kohtaus yhdistetään yhdeksi.

DetectorParameters structure

Kohtaustunnistusmoottorin ydinparametrit.

BSTR VideoFileName Käsiteltävän videotiedoston koko polku.
int Threshold Tunnistusherkkyys. Alue 0-255. Suositellut oletukset: 19 (RGB) ja 5 (YUV). Uusi kohtaus alkaa, kun kahden peräkkäisen ruudun välinen ero ylittää tämän arvon. Pienemmät arvot tuottavat enemmän kohtauksia.
int UpLumaTresh Valkoiseen häivytyksen kynnys. Alue -1-255. Arvo -1 poistaa tämän ominaisuuden käytöstä. Kun ruudun yleinen kirkkaus ylittää tämän arvon, alkaa uusi kohtaus, joka ryhmittelee kirkkaat ruudut yhteen.
int BottomLumaTresh Mustaan häivytyksen kynnys. Alue -1-255. Arvo -1 poistaa tämän ominaisuuden käytöstä. Kun ruudun yleinen kirkkaus laskee tämän arvon alapuolelle, alkaa uusi kohtaus, joka ryhmittelee tummat ruudut yhteen.
int MinSceneLength Kohtauksen vähimmäiskesto ruutuina. Tätä arvoa lyhyemmät kohtaukset muokataan Merge-kentän mukaisesti. Suositeltu oletus: 5.
int RegisterGraph Sisäisen käsittelykaavion ROT-rekisteröinti. 1: rekisteröi. 0: älä rekisteröi.
BSTR SourceFilterMoniker Halutun lähdesuodattimen näyttönimi. NULL: käytä oletusta.
BSTR SplitterFilterMoniker Halutun jakajasuodattimen näyttönimi. NULL: käytä oletusta.
BSTR DecoderFilterMoniker Halutun dekooderisuodattimen näyttönimi. NULL: käytä oletusta.
sdScenesMergeKind Merge Yhdistämisstrategia, jota käytetään, kun tunnistettu kohtaus on lyhyempi kuin MinSceneLength.

DetectorParameters2 structure

Laajentaa DetectorParameters-rakennetta väriavaruuden valinnalla ja osittaisella tiedostokäsittelyllä. Sisältää kaikki DetectorParameters-kentät sekä seuraavat.

int UseYUV Väriavaruus. 1: YUY2. 0: RGB24.
int Pad Varattu.
double StartPosition Käsittelyn aloituskohta sekunteina. Kun arvo ei ole nolla, kaikki palautetut kohtausajat ovat suhteessa tähän siirtymään.
double StopPosition Käsittelyn lopetuskohta sekunteina. 0: käsittele tiedoston loppuun asti.

ThumbnailsParameters structure

Ohjaa pikkukuvien luontia. Lähetä osoitin tähän rakenteeseen ottaaksesi pikkukuvat käyttöön, tai NULL poistaaksesi ne käytöstä.

int JpegFormat Tulostusmuoto. 0: BMP. 1: JPEG.
int JpegQuality JPEG-pakkauksen laatu, 0-100.
int ImagesPerScene 1: vain aloitusruutu. 2: aloitus- ja loppuruutu per kohtaus.
double Scale Pikkukuvan skaalauskerroin. 1.0: täysi koko.
BSTR FileName Tiedostonimimalli, joka käyttää C printf -syntaksia yhdellä kokonaislukukentällä, esim. d:\dir\frame%05d.jpg. Ruudun numero korvaa %d-paikkamerkin. Vaatii täyden polun oikealla tiedostopäätteellä.

ISceneDetector interface

Kohtaustunnistuksen ydinrajapinta.

DetectScenesInFile

HRESULT _stdcall DetectScenesInFile( [in] DetectorParameters *Params, [in] ThumbnailsParameters *ThumbnailsParams, [out] SAFEARRAY(long) *Scenes );

Pääasiallinen tunnistusmetodi. Kutsujan ei tarvitse luoda SafeArray-taulukkoa etukäteen – välitä osoitin SAFEARRAY-muuttujaan. Jos *Scenes ei ole NULL kutsun jälkeen, kutsujan on tuhottava se. Tulos on kaksiulotteinen taulukko. Jokaiselle kohtaukselle kaksi long-arvoa antavat alku- ja loppuruudun numerot suhteessa käsittelyn aloituskohtaan. Välitä ei-NULL ThumbnailsParams ottaaksesi pikkukuvien luonnin käyttöön.

HRESULT Merkitys
0Onnistui
0x80040601Määrittelemätön virhe
0x80040602DirectShow ei ole asennettu tai versio on liian vanha
0x80040603Ei voida määrittää videon kestoa - kyseessä voi olla still-kuva
0x80040604Virheellinen argumentti
0x80040605Ei voida luoda laitekontekstia
0x80040606Objekti on varattu toisella tehtävällä
0x80040607Ruudunpäivitysnopeus on nolla - kyseessä voi olla still-kuva
0x80040608Ei voida rakentaa kaaviota

ISceneDetector2 interface

Laajentaa ISceneDetector-rajapintaa. Perii kaikki sen metodit ja lisää seuraavat.

DetectScenesInFile2

HRESULT _stdcall DetectScenesInFile2( [in] DetectorParameters2 *Params, [in] ThumbnailsParameters *ThumbnailsParams, [out] SAFEARRAY(long) *Scenes );

Sama kuin DetectScenesInFile, mutta käyttää DetectorParameters2-rakennetta, mahdollistaen väriavaruuden valinnan ja osittaisen tiedostokäsittelyn. Palautetut kohtauksen alku- ja loppuarvot ovat suhteessa Params.StartPosition-arvoon.

GetFrameRate

HRESULT _stdcall GetFrameRate( [out, retval] double *pFrameRate );

Palauttaa viimeksi käsitellyn tiedoston ruudunpäivitysnopeuden. Hyödyllinen ruutunumeroiden muuntamiseen aikaleimoiksi. Palauttaa S_OK, tai E_INVALIDARG, jos pFrameRate on NULL.

ISceneDetectorEvents interface

Takaisinkutsurajapinta reaaliaikaisille tunnistustapahtumille. Toteuta sovelluksessasi vastaanottaaksesi tulokset sitä mukaa kun niitä löytyy.

NewScene

HRESULT NewScene( [in] long SceneIndex, [in] long Start, [in] long Stop );

Laukaistaan, kun uusi kohtaus on viimeistelty. SceneIndex alkaa 0:sta. Start ja Stop ovat ruutunumeroita alkaen 0:sta. Kun käsittely aloitettiin DetectScenesInFile2-metodilla, molemmat arvot ovat suhteessa Params.StartPosition-arvoon.

Status

HRESULT Status( [in] long ScenesFound, [in] long CurrentFrame, [in] long TotalFrames, [out] long *AbortProcess );

Laukaistaan 50 ms välein nykyisellä käsittelyn edistymisellä. Aseta *AbortProcess arvoon 1 peruuttaaksesi käynnissä olevan tunnistuksen.