Konfigurieren von Audiodaten Streams

Audiostreams sind in der Regel am unkompliziertesten zu konfigurieren. Abrufen einer Streamkonfiguration aus dem Codec mithilfe der Methoden von IWMCodecInfo, wie unter Abrufen von Streamkonfigurationsinformationen von Codecs beschrieben. In den meisten Fällen sollten Sie die Einstellungen nicht von den abgerufenen Einstellungen ändern.

Das Codecformat, das Sie aus den Aufzählen auswählen, hängt von der beabsichtigten Verwendung der ASF-Dateien ab, die mit dem Profil erstellt wurden. Die von IWMCodecInfo2::GetCodecFormatDesc abgerufene Codecformatbeschreibung fasst die Merkmale des Formats zusammen. Wenn Ihre Anwendung nicht die Beschreibungen zur Auswahl zeigt, können Sie QueryInterface auf der IWMStreamConfig-Schnittstelle des Codecformats aufrufen, um die IWMMediaProps-Schnittstelle zu erhalten. Anschließend können Sie die WM _ MEDIA _ TYPE-Struktur abrufen, indem Sie IWMMediaProps::GetMediaType aufrufen. Indem Sie die WM _ MEDIA _ TYPE-Struktur und die WAVEFORMATEX-Struktur untersuchen, auf die sie verweist, können Sie die Einstellungen des Codecformats bestimmen und mit Ihren Anforderungen vergleichen.

Abrufen von Audioformaten für die A/V-Synchronisierung

Der Windows Media Audio-Codec und der Windows Media Audio Professional-Codec unterstützen sowohl Formate für nur Audiodateien als auch für Audio-/Videodateien. Die Nur-Audio-Formate sind für Dateien optimiert, die nur Audiodaten enthalten, während die Audio-/Videoformate für Audio optimiert sind, die sich in einer Datei mit einem Videostream befinden. Beim Aufzählen von Codecformaten für diese Codecs werden die Audio-/Videoformate nach den ausschließlichen Audioformaten erstellt. Die Audio-/Videoformatbeschreibungen enthalten alle die Zeichenfolge "(A/V)". Sie können die für die Audio-/Videosynchronisierung entworfenen Formate programmgesteuert ermitteln, indem Sie die Anzahl der Pakete pro Sekunde überprüfen. Formate für die Synchronisierung verfügen über 5 oder mehr Pakete pro Sekunde, wenn die Bitrate größer oder gleich 32.000 Bits pro Sekunde ist. Formate mit Bitraten unter 32.000 Bits pro Sekunde können mit synchronisierten Videos verwendet werden, wenn sie 3 oder mehr Pakete pro Sekunde verwenden. Das Codebeispiel im Thema To Find Audio Formats enthält den Code, der für diese Überprüfung erforderlich ist:

if((pWave->nAvgBytesPerSec / pWave->nBlockAlign) >= 
       ((pWave->nAvgBytesPerSec >= 4000) ? 5.0 : 3.0))
{
    // Set this stream configuration as the new best match.
}

Abrufen Low-Delay Audioformaten

Der Windows Media 9.1-Codec und der Windows Media Audio 9.1 Professional codec unterstützen beide Formate mit niedriger Verzögerung. Diese Formate haben ein kleineres Pufferfenster als andere Audioformate. Audio mit geringer Verzögerung soll die Leistung in Szenarien verbessern, in denen Dateien oder Streams häufig umgeschaltet werden. Beispielsweise eine Anwendung, die eine Reihe von Musiktiteln für das Streaming auf der Benutzeroberfläche auflistet und es Benutzern ermöglicht, willkürlich zwischen ihnen zu wechseln.

Formate mit niedriger Verzögerung sind nur im CBR-Modus (Ein- oder Zwei-Durchgang) verfügbar. Die Formatbeschreibungen mit niedriger Verzögerung enthalten alle die Zeichenfolge "Low Delay". Sie können die Formate programmgesteuert identifizieren, indem Sie den Bitratenwert des Formats überprüfen. Den Formaten mit niedriger Verzögerung werden Bitraten zugewiesen, die 1 Kilobit kleiner als die Bitraten des entsprechenden normalen Formats sind. Beispielsweise unterstützt der Windows Media Audio 9.1-Codec ein Single-Pass-CBR-Format mit einer Bitrate von 192 KBit/s. Das entsprechende Format mit niedriger Verzögerung hat eine Bitrate von 191 KBit/s. Mit Ausnahme des 5-KBit/s-Monoformats, das vom Windows Media Audio 9.1-Codec unterstützt wird, sind die Formate mit niedriger Verzögerung die einzigen Formate, die einen ungeraden Bitratenwert haben.

Konfigurieren von Audiodaten mit variabler Bitrate

Wenn Sie ein VBR-Format (Variable Bit Rate) für einen der Windows Media-Audiocodecs benötigen, können Sie es durch Festlegen der Enumerationseinstellungen in der IWMCodecInfo3::SetCodecEnumerationSetting-Methode erhalten. Legen Sie g _ wszVBREnabled auf True und g wszNumPasses für qualitätsbasierte VBR auf 1 oder 2 für VBR mit zwei Durchgangen (eingeschränkt oder nicht eingeschränkt) _ fest. Wenn Sie die eingeschränkte VBR mit zwei Durchläufen verwenden, müssen Sie die maximale Bitrate und das Pufferfenster für den Stream manuell mithilfe der Methoden von IWMPropertyVault festlegen, wie unter Konfigurieren von VBRStreams.

In qualitätsbasierten VBR-Profilen enthält das nAvgBytesPerSec-Mitglied der WAVEFORMATEX-Struktur die Qualitätsstufe (1 bis 100) im niedrigen Byte, und die drei hohen Bytes werden auf 0x7fffff. Versuchen Sie nicht, die Qualitätseinstellung zu ändern, indem Sie diesen Wert manuell ändern. Sie müssen das Format verwenden, während es aus dem Codec abgerufen wird. Um einen anderen Qualitätswert zu verwenden, müssen Sie Formate aufzählen, bis Sie ein Format finden, das Ihren Anforderungen entspricht. Außerdem wird nAvgBytesPerSec nicht in der ASF-Datei beibehalten. Wenn Sie die WAVEFORMATEX-Struktur für eine Datei abrufen, die mit dem Readerobjekt geöffnet wurde, enthält nAvgBytesPerSec einen ungefähren Wert, der die durchschnittliche Anzahl von Bytes pro Sekunde darstellt.

Hinweis

Beim Konfigurieren von Audiostreams sollten Sie niemals über einen Wert für das Audiopufferfenster verfügen, der größer als der Wert für videostreams in der Datei ist. Normalerweise ist dies kein Problem, da die Werte des Audiopufferfensters zwischen 1,5 und 3 Sekunden und die Videowerte zwischen 3 und 5 Sekunden liegen sollten. Wenn ein Audiopufferfenster größer als ein Videopufferfenster ist, wird die Datei mit den Datenströmen wieder angezeigt, die etwas nicht synchronisiert sind.

Configuration Common to All Streams

Konfigurieren Streams

So suchen Sie Nach Audioformaten