Festlegen von Eigenschaften im ContentInfo-Objekt
Beim Erstellen einer ASF-Datei muss das ContentInfo-Objekt die Merkmale des Medieninhalts kennen, damit die verschiedenen Headerobjekte mit den richtigen Werten aufgefüllt werden.
- Inhaltsbezogene Einstellungen im ContentInfo-Objekt
- Konfigurieren des ContentInfo-Objekts mit Encoder Einstellungen
- Zugehörige Themen
Inhaltsbezogene Einstellungen im ContentInfo-Objekt
Inhaltskonfigurationseinstellungen sind Datenstromeinstellungen, die im Profil enthalten sind und den Datenstrombezeichner, den Medientyp und die Leaky Bucket-Parameter für die Mediensenke angeben. Nachdem das Profil für das ContentInfo-Objekt durch Aufrufen von IMFASFContentInfo::SetProfilefestgelegt wurde, werden diese Werte im generierten ASF-Headerobjekt widergespiegelt. Informationen zu diesen Einstellungen finden Sie unter Erstellen und Konfigurieren von ASF Streams.
Konfigurieren des ContentInfo-Objekts mit Encoder Einstellungen
Audio- oder Videodaten für digitale Medien sind komplex und belegen große Mengen an Arbeitsspeicher. In den meisten Fällen werden Sowohl Audio als auch Video mithilfe von Encodern komprimiert, bevor sie einer ASF-Datei hinzugefügt werden. In Media Foundation werden Encoder als Media Foundation Transforms (MFTs) mit einer Eingabe und einer Ausgabe implementiert. Sie müssen den Ausgabemedientyp abhängig vom Medientyp des Eingabestreams und dem Codierungstyp auswählen, den Sie für die Komprimierung des Streams auswählen.
Vor der Codierungssitzung muss der Encoder konfiguriert werden, indem die relevanten Eigenschaften abhängig vom Typ der Codierung festgelegt werden.
Nach dem Konfigurieren des Encoders müssen Sie das ContentInfo-Objekt mit den Encoderwerten konfigurieren, da die ASF-Multiplexer-Datei und die ASF-Mediensenke, die mit dem aufgefüllten ContentInfo-Objekt initialisiert werden, Einstellungen wie z. B. die verlustreichen Bucketwerte verwenden, um ASF-Datenpakete zu generieren. Die Werte werden nicht im endgültigen ASF-Headerobjekt gespeichert. Die Codierungseinstellungen werden als Eigenschaften verfügbar gemacht. Gehen Sie wie folgt vor, um das ContentInfo-Objekt mit den Encodereigenschaften zu konfigurieren:
- Abrufen eines Zeigers auf den Eigenschaftenspeicher des Encoders durch direktes Abfragen des Encoders (ÜBERTRANSFORM-Schnittstelle) für die IPropertyStore-Schnittstelle.
- Rufen Sie IMFASFContentInfo::GetEncodingConfigurationPropertyStoreauf. Um streamspezifische Eigenschaften festzulegen, geben Sie den Streambezeichner im wStreamNumber-Parameter an. Übergeben Sie für Eigenschaften auf Dateiebene 0. Der ppIStore-Parameter empfängt einen Zeiger auf die IPropertyStore-Schnittstelle. Der empfangene Eigenschaftenspeicher ist leer.
- Rufen Sie IPropertyStore::GetValue für den Encoder auf, und rufen Sie den Eigenschaftswert ab, indem Sie die Eigenschaftenschlüsselkonstanten angeben. Eine vollständige Liste der Codierungseigenschaften finden Sie in der Codec-Programmierreferenz.
- Rufen Sie IPropertyStore::SetValue für das ContentInfo-Objekt auf, um die erforderliche Eigenschaft im Eigenschaftenspeicher festzulegen.
- Wiederholen Sie die Schritte 3 und 4 für jede Eigenschaft, die Sie festlegen möchten.
Die ASF-Mediensenke kann mithilfe eines Aktivierungsobjekts erstellt werden, indem MFCreateASFMediaSinkActivateaufgerufen wird. Das neue Mediensenkenobjekt wird basierend auf mediensenkenspezifischen Einstellungen konfiguriert, die im Eigenschaftenspeicher des ContentInfo-Objekts festgelegt werden können. Die folgende Tabelle zeigt die ASF-Mediensenkeneigenschaftskonstanten.
| Eigenschaft | Beschreibung |
|---|---|
| MFPKEY _ ASFMEDIASINK _ BASE _ SENDTIME | Die Sendezeit gibt an, wann die Nutzlast im bucket leaky freigegeben wird. Dieser Eigenschaftswert gibt die erste Sendezeit an. Der Multiplexer verwendet diesen Wert, um die nachfolgenden Sendezeiten für die generierten Pakete zu berechnen, und stellt sicher, dass Daten kontinuierlich durch den bucket leaky fließen. |
| MFPKEY _ ASFMEDIASINK _ AUTOADJUST _ BITRATE | Dieser BOOL-Wert gibt an, ob der Multiplexer die Bitrate automatisch anpassen muss, um sicherzustellen, dass die Daten nicht über den bucket leaky überlaufen. |
| MFPKEY _ ASFMEDIASINK _ DRMACTION | Dies gibt die DRM-Aktion der ASF-Mediensenke für die Dateigenerierung an. In dieser Version wird nur die DRM-Transcodierung unterstützt. |
| MFPKEY _ ASFSTREAMSINK _ HAT _ LEAKYBUCKET KORRIGIERT | Diese Eigenschaft muss festgelegt werden, wenn der Encoder entscheidet, welches Pufferfenster und welche Bitrate verwendet werden soll. Verwenden Sie zum Festlegen dieser Werte die IWMCodecLeakyBucket-Schnittstelle. Dieser muss für jeden Stream in der ASF-Datei festgelegt werden. |