A Sink író használata
Áttekintés
Fájltároló-típusok
A kimeneti író több fájltípusú tároló beépített támogatásával rendelkezik. A teljes listát lásd a MF_TRANSCODE_CONTAINERTYPE. További tárolótípusokat is támogathat egy egyéni médiabemenetmegírásával. Az új kimeneti író példány létrehozásakor a fájl konténer van meghatározva.
Streamformátumok
Az egyes streamekhez az alkalmazásnak a következőket kell megadnia.
- A bemeneti formátum az alkalmazás által a fogadó írójának küldött formátum.
- A kimeneti formátum a fájlba írandó formátum.
A bemeneti és kimeneti formátumok tömöríthetők vagy tömörítetlenek is lehetnek. A sink írója a következő kombinációkat támogatja:
- Tömörítetlen bemenet tömörített kimenettel. Ez a tipikus eset, és kódolási vagy átkódolási forgatókönyvekhez használatos. Olyan Microsoft Media Foundation-kódolónak kell rendelkezésre állnia, amely elfogadja a bemeneti típust, és a kimeneti típusra kódol.
- Tömörített bemenet azonos kimenettel. Ezzel a kombinációval átkódolás nélkül másolhat újra egy fájlt.
- Nem tömörített bemenet azonos kimenettel. Ezzel a kombinációval tömörítetlen hangot vagy videót írhat fájltárolóba.
A vevő író nem támogatja a videók átméretezését, a képkockasebesség-átalakítást vagy a hang újramintavételezését, kivéve, ha ezeket a funkciókat a kódoló biztosítja. Ellenkező esetben az alkalmazás digitális jelfeldolgozók használhatja a bemeneti adatok konvertálásához, mielőtt elküldené az adatokat a
A Sink Writer létrehozása
Két függvény hozza létre a sink-szerzőt:
- MFCreateSinkWriterFromURL egy kimeneti fájl VAGY egy mutató URL-címét egy bájtfolyamra viszi. Ez a függvény automatikusan hozza létre a médiakifolyót.
- MFCreateSinkWriterFromMediaSink egy, az alkalmazás által már létrehozott médiafogadóra mutató pointert vesz át.
Ha az egyik beépített médiafogadót használja, a MFCreateSinkWriterFromURL függvény előnyösebb, mert a hívónak nem kell konfigurálnia a médiafogadót.
Az MFCreateSinkWriterFromURL metódus számos lehetőséget kínál a fájltároló típusának megadására. A legegyszerűbb esetben a függvény az URL-cím fájlnévkiterjesztésével választja ki a fájltárolót. Részletekért tekintse meg a függvény referenciaoldalát.
Az alábbi kód például az URL-cím "output.wmv" fájlnevét adja meg. A fájlnévkiterjesztés alapján a sink író betölti a ASF Media Sink-t egy Advanced Systems Format (ASF) fájl létrehozása céljából.
HRESULT hr = MFCreateSinkWriterFromURL(L"output.wmv", NULL, NULL, &pSinkWriter);
MFCreateSinkWriterFromMediaSinkesetén a fájltípust a médiaelosztó határozza meg.
Kapcsolódó témakörök