Sdílet prostřednictvím


Funkce zdroje sítě

Zdroj sítě poskytuje základní implementaci streamovaných mediálních souborů a zveřejňuje MMFMediaSource rozhraní. Konkrétní implementace zdroje sítě závisí na protokolu použitém k otevření zdroje, jako je RTSP nebo HTTP. Zdroje sítě specifické pro protokol rozšiřují základní síťové funkce. Informace o podporovaných schématech a protokolech naleznete v tématu podporované protokoly.

Zdroj sítě:

  • Implementuje funkce, jako je ukládání do mezipaměti, detekce proxy serveru a automatické opětovné připojení.
  • Převede volání nezávislá na protokolu ze zdrojového překladače na volání specifická pro protokol.
  • Komunikuje s vrstvou soketu a operačním systémem. Analyzuje popis protokolu SDP a používá ho jako konfigurační data a čte streamová data z podkladové vrstvy soketů. Při příjmu zodpovídá zdroj sítě za změny pořadí paketů a vyžádání opakovaného přenosu paketů.

Vytvoření zdroje sítě

Vytvoření zdroje médií pro zdroj ze sítě se neliší od zdroje médií pro místní soubor. Aplikace předá adresu URL pro zdroj Source Resolver metody, jako jsou MMFSourceResolver::CreateObjectFromURL nebo MMFSourceResolver::BeginCreateObjectFromURL a určuje příznak MF_RESOLUTION_MEDIASOURCE. Další informace o použití tohoto příznaku naleznete v tématu Použití překladače zdroje.

V závislosti na schématu poskytovaném aplikací načte zdrojový překladač příslušný objekt obslužné rutiny schématu, který zveřejňuje MMFSchemeHandler rozhraní. Aplikace může také použít obslužnou rutinu schématu přímo k vytvoření zdroje sítě voláním MMFSchemeHandler::BeginCreateObject.

Další informace naleznete v tématu obslužné rutiny schématu a obslužné rutiny Byte-Stream.

Media Foundation nepodporuje datové proudy bajtů pro síťové zdroje. Objekt bajtového streamu je podporován pouze ve scénáři staženého obsahu. Všechna data se přenášejí co nejrychleji, aby bylo možné je uložit jako soubor na místním počítači. webové servery poskytují stažená data. Po zahájení stahování neexistuje žádná komunikace mezi klientem a serverem. V tomto případě se použije protokol pro stahování HTTP.

Pokud aplikace požaduje, aby zdrojový překladač vytvořil objekt bajtového datového proudu pro "http:", "mms:" nebo "rtsp:", volání selže s chybou MF_E_UNSUPPORTED_SCHEME.

Poznámka

Ve Windows 7 podporuje zdroj sítě soubory Windows Media Station (. NSC). Tyto soubory se používají ve vícesměrovém streamování mediálního obsahu přes síť. Chcete-li vytvořit zdroj sítě pro zadaný . Soubor NSC musí aplikace používat zdrojový překladač.

 

Pokud aplikace používá obslužnou rutinu schématu, asynchronní volání ignoruje dwFlags parametr a vrátí ukazatel na zdroj sítě po dokončení.

Následující obrázek znázorňuje tok dat pro streamování médií pomocí zdroje sítě.

vývojový diagram znázorňující cesty z aplikace na streamovací server s smyčkou mezi síťovým zdrojem a relací médií

Konfigurace zdroje sítě

Toto téma popisuje funkce podporované zdrojem sítě a přidruženými možnostmi konfigurace. Aplikace může nakonfigurovat zdroj sítě při vytváření objektu zdroje sítě. Tyto možnosti jsou uloženy v objektu IPropertyStore, který musí aplikace předat pProps parametr metody překladače zdroje nebo MMFSchemeHandler::BeginCreateObject.

Automatické opětovné připojení

Funkce automatického opětovného připojení zdroje sítě umožňuje klientovi znovu se připojit k mediálnímu serveru automaticky, když selže připojení TCP k serveru nebo klient neobdrží pakety. Pokud připojení selže, pokusí se zdroj sítě znovu připojit k mediálnímu serveru pomocí stejné konfigurace, která byla použita v předchozím připojení. Proces opětovného připojení je asynchronní. Zdroj sítě při zahájení opětovného připojení vyvolá událost MEReconnectStart a událost MEReconnectEnd, když opětovné připojení proběhne úspěšně nebo selže.

Pokud počet pokusů o opětovné připojení překračuje maximální hodnotu určenou vlastností MFNETSOURCE_AUTORECONNECTLIMIT, operace opětovného připojení je zrušena. Počet pokusů o opětovné připojení je uložen v MFNETSOURCE_AUTORECONNECTPROGRESS vlastnosti.

Automatické opětovné připojení umožňuje hladké přehrávání multimediálního obsahu i v případě, že připojení TCP k mediálnímu serveru selže. Aby mohl klient pokračovat v přehrávání, musí mít v mezipaměti dostatek dat alespoň 1 až 2 minuty, aby mohl pokračovat v přehrávání, dokud se znovu nepřipojí. Maximální množství dat, která může zdroj sítě ukládat do vyrovnávací paměti, lze nastavit ve vlastnosti MFNETSOURCE_MAXBUFFERTIMEMS.

Rychlé streamování

Klient zdroje sítě požaduje, aby server streamuje některá data na začátku obsahu rychleji, než určuje přenosová rychlost obsahu. Pokud je na serveru povolená rychlého spuštění, odešle server akcelerovaný datový proud s přenosovou rychlostí, aby klient mohl ukládat dostatek dat rychleji než v reálném čase. To zlepšuje uživatelské prostředí tím, že minimalizuje zpoždění počátečního ukládání do vyrovnávací paměti, což může být způsobeno různými faktory, jako je nízká rychlost klientského počítače nebo sítě a dostupná šířka pásma.

Chcete-li zadat množství dat rychlého streamování, které může klient požadovat, nastavte vlastnost MFNETSOURCE_ACCELERATEDSTREAMINGDURATION. Pokud zdroj sítě používá jako přenosový protokol UDP, zadejte maximální množství dat rychlého streamování nastavením vlastnosti MFNETSOURCE_MAXUDPACCELERATEDSTREAMINGDURATION.

Rychlé streamování na klientovi je také možné prostřednictvím funkce Fast Cache – streamování obsahu na vyžádání rychleji než v reálném čase a ukládání dat do mezipaměti v místní mezipaměti klienta. Pokud chcete použít tento typ rychlého streamování, musí být ve zdroji sítě povolená služba Fast Cache a server ho musí podporovat. Když klient požádá o obsah ze serveru, zdroj sítě nejprve zkontroluje, jestli je obsah již v mezipaměti klienta. Pokud je obsah v místní mezipaměti klienta a nevypršela jeho platnost, zobrazí se. Pokud obsah není v místní mezipaměti nebo už vypršela jeho platnost, obsah se streamuje a uloží do mezipaměti a zdroj sítě ho přehraje z místní mezipaměti. V následných požadavcích se pro seznamy stop ukládají pouze chybějící položky do mezipaměti a pak se přehrají. Pokud položka seznamu stop je již v místní mezipaměti klienta, přehrávala se odsud a znovu nebyla uložena do mezipaměti.

Ve výchozím nastavení je ve zdrojovém síťovém klientovi povolená rychlá mezipaměť. Následující faktory ale také určují, jestli se tato funkce používá:

  • Klient musí mít k dispozici větší šířku pásma ke stažení a ukládání obsahu do mezipaměti rychleji než normální rychlost.
  • Klient musí mít dostatek místa na disku. Pokud má klient po uložení požadovaného obsahu na vyžádání méně než 100 MB volného místa na disku, nebude uložen v mezipaměti, ale streamuje se a vykresluje současně.

Funkce Fast Cache je řízena vlastností MFNETSOURCE_CACHEENABLED.

Správa vyrovnávací paměti

Zdroj sítě poskytuje efektivní správu vyrovnávací paměti, která monitoruje stav vyrovnávací paměti na klientovi. Ve výchozím nastavení má zdroj sítě při spuštění 5 sekund dat vyrovnávací paměť. Tuto hodnotu lze nakonfigurovat nastavením vlastnosti MFNETSOURCE_BUFFERINGTIME. Na základě této hodnoty vlastnosti vypočítá zdroj sítě velikost vyrovnávací paměti, která je dostatečná k zajištění hladkého a nepřerušovaného přehrávání mediálního obsahu. Pokud je tato vlastnost nastavena na hodnotu 0, správa vyrovnávací paměti je zakázána. Pokud je množství obsahu v vyrovnávací paměti nízké, začne zdroj sítě ukládat do vyrovnávací paměti a zvýší MEBufferingStarted událost, která indikuje, že ukládání do vyrovnávací paměti začalo. Po přijetí této události kanál přestane vykreslovat. Po dokončení ukládání do vyrovnávací paměti zdroj sítě vyvolá MEBufferingStopped událostí a klient může začít znovu vykreslovat.

Klient začne vykreslovat obsah poté, co nashromáždí množství dat označených velikostí vyrovnávací paměti prvního vzorku. Pokud je tato hodnota nižší než počítaná velikost vyrovnávací paměti, přehrávání se spustí okamžitě. Toto chování je velmi podobné funkci Rychlé spuštění.

Vlastnost MFNETSOURCE_MAXBUFFERTIMEMS ukládá maximální množství dat, která lze uložit do vyrovnávací paměti.

Výběr šířky pásma

Když se klient připojí k serveru médií v rámci nastavení připojení, provede zdroj sítě měření statického páru paketů k odhadu počáteční šířky pásma propojení mezi klientem a serverem. Na základě výsledku tohoto měření může klient vybrat zvukové a video streamy, které odpovídají odhadované šířce pásma. Tím se zajistí hladké přehrávání streamovaného mediálního obsahu.

Během fáze rychlého spuštění se provádí měření dynamického páru paketů. V tomto procesu klient přijímá velké objemy dat, což může být několik paketů nebo vzorků.

Výsledek měření dynamické dvojice paketů je přesnější než odhad šířky pásma propojení vrácený měřením statické dvojice paketů, protože statický pár paketů odesílá jeden paket s pevnou velikostí, což nemusí přinést přesné výsledky pro sítě s velkou šířkou pásma.

Aplikace může získat odhadovanou šířku pásma pomocí vlastnosti MFNETSOURCE_PPBANDWIDTH.

Síťové podmínky se můžou dynamicky měnit, což způsobuje chyby při přehrávání zdroje sítě. Zdroj sítě může změnit počáteční výběr datového proudu klienta na základě rychlosti příjmu a stavu vyrovnávací paměti. Klient může například během zahlcení sítě přepnout na nižší přenosovou rychlost a přepnout zpět na vyšší přenosovou rychlost, když se síťový provoz zlepšil a klient nashromáždil dostatečný objem obsahu ve vyrovnávací paměti.

sítě ve službě Media Foundation