Scene Detector - Video Scene Detection COM-objekti

Kuvaus

Scene Detector on tehokas COM-komponentti kohtausten tunnistamiseen ja käsittelyyn. Se sisältää palkittuja HandySaw DS -tekniikoita erittäin tarkkaan ja nopeaan optiseen kohtauksen tunnistamiseen. Se on suunnattu ohjelmistoyrityksille ja kehittäjille, jotka haluavat laajentaa tuotteitaan. COM-komponentti on uudelleenkäytettävä ohjelmistomoduuli, joka noudattaa Component Object Model (COM) -arkkitehtuuria ja mahdollistaa sen käytön useissa ohjelmointikielissä ja ympäristöissä. Jos etsit erillistä sovellusta kohtauksen havaitsemiseen, voit käyttää HandySaw DS:ää seuraamalla tätä linkkiä .

Scene Detector -objekti käsittelee videotiedoston ja palauttaa luettelon löydetyistä kohtauksista. Se voi myös tallentaa pikkukuvat jokaisesta kohtauksesta ja ilmoittaa soittajasovellukselle välittömästi jokaisesta uudesta löydetystä kohtauksesta takaisinsoittoliitäntöjen kautta käsittelyn aikana.

Pääpiirteet

  • Tunnistaa kohtaukset melkein mistä tahansa videotiedostosta, jota Windows Media Player voi toistaa (DirectShow API:n käytön ansiosta)
  • Nopea ja tarkka algoritmi
  • Helppo integrointi
  • Raportoi uusi kohtaus heti sen määrittämisen jälkeen käsittelyn aikana. Ei tarvitse odottaa havaitsemisen päättymistä
  • Voi luoda pikkukuvia - ensimmäisen ja viimeisen kehyksen kuvia jokaisesta kohtauksesta ja tallentaa ne BMP- tai JPG-tiedostoina
  • Mahdollista määrittää lähde-, jakaja- ja videodekooderisuodattimet, joita käytetään käsittelyn aikana
  • Voi havaita "valkoiset" ja "mustat" kohtaukset
  • Voi toimia RGB- ja YUV-värialueilla
  • Voi käsitellä osan mediatiedostosta - käyttäjä voi määrittää käsittelyn aloitus- ja lopetuskohdat

Demoversio ja hinta

Ota yhteyttä minuun.

Dokumentointi

sdScenesMergeKind enum

Käytetään antamaan ohjeita mitä tehdä lyhyillä kohtauksilla.

sdMergeDelete = 0, Lyhyt kohtaus poistettu
sdMergeWithPrev = 1, Lyhyt kohtaus yhdistetty edelliseen
sdMergeWithNext = 2, Lyhyt kohtaus sulautui seuraavaan
sdMergeWithBoth = 3 Lyhyet (keskikohta), edellinen ja seuraava kohtaus yhdistettiin yhdeksi kohtaukseksi

DetectorParameters rakenne

Tämä rakenne sisältää kohtauksen tunnistusmoottorin parametrit.

BSTR VideoFileName; Koko videotiedoston nimi havaitsemista varten.
int Threshold; Tunnistuskynnysarvo.
Suositellut oletusarvot ovat 19 RGB-väriavaruudelle ja 5 YUV-väriavaruudelle.
Voi olla 0-255.
Tämä parametri on tärkein.
Kun kahden kuvan ero on suurempi kuin tämä arvo, uusi kohtaus alkaa.
Siten: alempi kynnys - enemmän kohtauksia.
int UpLumaTresh; Käytetään "valkoisten häivytysten" tunnistuksessa.
Suositeltu oletusarvo -1.
Voi olla -1 - 255.
"-1" poistaa tämän ominaisuuden käytöstä.
Kun ruudun kokonaiskirkkaus on suurempi kuin tämä arvo, uusi kohtaus alkaa.
Tämän ominaisuuden avulla on mahdollista määrittää tällaisten kirkkaiden ruutujen sarja erilliseksi kohtaukseksi.
int BottomLumaTresh; Käytetään "mustien häivytysten" tunnistuksessa.
Suositeltu oletusarvo -1.
Voi olla -1 - 255.
"-1" poistaa tämän ominaisuuden käytöstä.
Kun kuvan kokonaiskirkkaus on tätä arvoa pienempi, uusi kohtaus alkaa.
Tämän ominaisuuden avulla on mahdollista määrittää tällaisten tummien kehysten sarja erilliseksi kohtaukseksi.
int MinSceneLength;

Asettaa havaitun kohtauksen vähimmäiskeston (kehyksissä).
Suositeltu oletusarvo 5.
Voi olla 0:sta mihin tahansa positiiviseen arvoon.
Jos määritellyn kohtauksen pituus on pienempi kuin tämä arvo, tämä kohtaus yhdistettiin edelliseen, seuraavaan tai molempiin kohtauksiin Yhdistämiskentän arvon mukaan (katso alla).

int RegisterGraph; Ohjaa sisäisen käsittelykaavion rekisteröintiä Running Object Table (ROT) -taulukkoon.
Voi olla 1 (rekisteröidy ROT:iin) tai 0 (ei rekisteröidy).
BSTR SourceFilterMoniker; Sisäisessä käsittelykaaviossa käytetyn halutun lähdesuodattimen monikerin näyttönimi.
Jos NULL - oletussuodatin käytetty.
BSTR SplitterFilterMoniker; Sisäisessä käsittelykaaviossa käytetyn halutun jakajasuodatinmonikerin näyttönimi.
Jos NULL - oletussuodatin käytetty.
BSTR DecoderFilterMoniker; Sisäisessä prosessointikaaviossa käytetyn halutun dekooderin suodattimen nimimerkin näyttönimi.
Jos NULL - oletussuodatin käytetty.
sdScenesMergeKind Merge; Kun kohtauksen pituus on pienempi kuin MinSceneLength, kohtausta muutetaan tämän parametrin arvon mukaan.

DetectorParameters2 rakenne

Tämä rakenne laajentaa DetectorParameters- rakenteessa määritettyjä kohtauksen tunnistusmoottorin parametreja. DetectorParametersin jäsenten lisäksi se sisältää:

int UseYUV; Mahdollistaa väriavaruuden valitsemisen kohtauksen tunnistukseen.
Voi olla 1 (YUY2) tai 0 (RGB24).
int Pad; Varattu
double StartPosition; Määrittää median aloituskohdan kohtauksen tunnistukseen sekunneissa.
Jos tämä ei ole nolla, älä unohda, että kaikki kohtausajat ovat suhteessa tähän kohtaan.
double StopPosition; Määrittää median pysäytyskohdan kohtauksen tunnistukseen sekunneissa.
Ohita asettamalla nollaan.

ThumbnailsParameters rakenne

Tämä rakenne sisältää pikkukuvien luontiparametreja.

int JpegFormat; Valitse tiedostomuoto. 0 - luo BMP-tiedostoja, 1 - luo JPEG-tiedostoja.
int JpegQuality; JPEG-pakkauksen laatu. Kokonaisluku 0-100.
int ImagesPerScene; Kuvia kohtausnumeroa kohden. 1 - vain aloituskehys, 2 - kunkin kohtauksen alku- ja loppukehys.
double Scale; Pikkukuvan skaalaustekijä. 1 - täysikokoinen kuva. Liukulukuarvo.
BSTR FileName;

Pikkukuvien tiedostonimien malli. Merkkijono "C" "printf"-funktiolle, jossa on yksi kokonaislukukenttä.
Esimerkki: "d:\tiedostohakemisto\tiedostonimi%05d.jpg"
Sinun on määritettävä koko polkunimi oikealla tunnisteella. Kehysnumero lisätään %d symbolin sijaan, jotta tietylle pikkukuvalle saadaan tiedostonimi.

ISceneDetector käyttöliittymä

Tämä käyttöliittymä tarjoaa menetelmiä kohtauksen havaitsemiseen:

DetectScenesInFile -menetelmä

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

Tämä on tärkein kohtauksen tunnistusmenetelmä.
Ohjaa tunnistusparametrit Params -kohdassa ja osoita SFEARRAY-kohtaa Scenes-kohdassa.
Jos kohtaukset on NULL, toiminto ei palauta havaittujen kohtausten luetteloa.
Soittajan ei tarvitse luoda SafeArraya ennen tämän menetelmän kutsumista.
Jos Scenes ei ole NULL ja funktiokutsun jälkeen *Scenes ei ole NULL liian kutsujan täytyy tuhota *Scenes SafeArray.
*Scenes on kaksiulotteinen matriisi. Jokaiselle löydetylle kohtaukselle on kaksi pitkää arvoa: kohtauksen aloitus- ja lopetuskehysnumerot. Nämä arvot ovat suhteessa käsittelyn aloitusmedian sijaintiin.
Anna ei-NULL-osoitin ThumbnailsParams- asetukseksi ottaaksesi pikkukuvien luomisen käyttöön ja määrittääksesi sen parametrit. Anna NULL poistaaksesi pikkukuvien luomisen käytöstä.

Palauttaa arvon HRESULT . Mahdollisia arvoja ovat seuraavat:

0 Menestys
0x80040601 Määrittelemätön virhe
0x80040602 DirectShowta ei ole asennettu tai versio on liian vanha
0x80040603 Videon kestoa ei voi saada. Voi olla still-kuva
0x80040604 Huono argumentti
0x80040605 Laitekontekstia ei voi luoda
0x80040606 Objekti on varattu toisen tehtävän kanssa
0x80040607 Kuvataajuus on nolla. Voi olla still-kuva
0x80040608 Graafia ei voi rakentaa

ISceneDetector2 käyttöliittymä

Tämä käyttöliittymä on peräisin ISceneDetector- liittymästä ja tarjoaa laajennettuja menetelmiä kohtauksen havaitsemiseen. ISceneDetectorista perittyjen menetelmien lisäksi ISceneDetector2- käyttöliittymä paljastaa seuraavat menetelmät:

DetectScenesInFile2-menetelmä

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

Toisin kuin DetectScenesInFile , tämä menetelmä käyttää DetectorParameters2- parametreja, joten se mahdollistaa väriavaruuden määrittämisen sekä käsittelyn aloitus- ja lopetusasennon.
Kiinnitä huomiota siihen, että tällä menetelmällä palautetut kohtausten aloitus- ja lopetusarvot ovat suhteessa Params.StartPosition- arvoon.
Katso lisätietoja DetectScenesInFile- kuvauksesta.

GetFrameRate-menetelmä

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

Palauttaa viimeksi käsitellyn tiedoston videokuvanopeuden. Hyödyllinen aika kehysnumeron kääntämiseen.
Palauttaa S_OK tai E_INVALIDARG, jos pFrameRate on NULL.

ISceneDetectorEvents-tapahtumien käyttöliittymä

Tämä tapahtumarajapinta tarjoaa menetelmiä kohtauksen tunnistustietojen hakemiseen reaaliajassa.

NewScene-menetelmä

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

Ilmaisimen laukaisema tapahtuma, kun uusi kohtaus määritetään.
SceneIndex alkaa 0:sta.
Aloitus ja lopetus alkavat myös 0:sta ja ovat kehysnumeroita.
Kun käsittely aloitettiin DetectScenesInFile2- menetelmän avulla, aloitus- ja lopetusarvot ovat suhteessa Params.StartPosition- arvoon.

Statusmenetelmä

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

Tapahtuma käynnistyy 50 ms:n välein ja ilmoittaa asiakkaalle prosessin tilasta.
AbortProcess on osoitin muuttujaan. Näin asiakas voi asettaa * AbortProcess -arvon 1:ksi peruuttaakseen nykyisen kohtauksen tunnistuksen.