Auf Englisch lesen

Freigeben über


Senden von ASF-Daten an einen Veröffentlichungspunkt

[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK ist ein Legacyfeature. Es wurde von Source Reader und Sink Writer abgelöst. Source Reader und Sink Writer wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit quellleser und Senkenschreiber anstelle des Windows Media Format 11 SDK verwendet. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Sie können das Windows Media Format SDK verwenden, um ASF-Daten per Push an einen Veröffentlichungspunkt auf einem Windows Media-Server zu übertragen. Der Server sendet dann die Daten von diesem Veröffentlichungspunkt. Dieses Szenario ist nützlich, wenn Sie Inhalte auf einem Computer erfassen oder neu codieren und den Inhalt von einem anderen Computer (oder mehreren Computern) verteilen möchten. Es ist auch nützlich, wenn Sie Inhalte von einem Computer innerhalb einer Firewall auf einen Windows Media-Server außerhalb der Firewall verschieben müssen, da die Pushverteilung das HTTP-Protokoll verwendet.

Hinweis

Ein Veröffentlichungspunkt verhält sich im Wesentlichen wie ein Redirector. Der Client gibt den Veröffentlichungspunkt in der URL an (z. B. mms://MyServer/MyPublishingPoint), und der Server übersetzt dies in eine Anforderung für Inhalte.

 

Um Daten per Push an den Veröffentlichungspunkt zu übertragen, fügen Sie das Pushsenkenobjekt an das Writer-Objekt an. Die Pushsenke wird verwendet, um die Verbindung mit dem Server zu öffnen und die Pushsitzung zu verwalten. Das Writer-Objekt behandelt alle anderen Aspekte der Erstellung der Datei.

Führen Sie die folgenden Schritte aus:

  1. Erstellen Sie das Writer-Objekt, indem Sie die WMCreateWriter-Funktion aufrufen, die einen IWMWriter-Zeiger zurückgibt.
  2. Erstellen Sie das Pushsenkenobjekt, indem Sie die WMCreateWriterPushSink-Funktion aufrufen, die einen IWMWriterPushSink-Zeiger zurückgibt.
  3. Fügen Sie die Netzwerksenke an den Writer an, indem Sie IWMWriterAdvanced::AddSink auf dem Writer mit einem Zeiger auf die IWMWriterPushSink-Schnittstelle der Netzwerksenke aufrufen.
  4. Stellen Sie eine Verbindung mit dem Server her, indem Sie IWMWriterPushSink::Connect aufrufen.
  5. Schreiben Sie den Stream. Dieser Schritt umfasst das Festlegen des Profils für das Writer-Objekt, das Senden von Beispielen an den Writer und möglicherweise andere Aufgaben. Weitere Informationen finden Sie unter Schreiben von ASF-Dateien. Weitere Aufgaben können das Festlegen von Metadatenattributen (wie unter Arbeiten mit Metadaten beschrieben) oder das Festlegen von Live-DRM für den Stream (wie unter Aktivieren der DRM-Unterstützung beschrieben) umfassen. Diese Aufgaben werden genauso ausgeführt wie beim Schreiben von ASF-Dateien.
  6. Nachdem Sie mit dem Schreiben fertig sind, rufen Sie IWMWriterAdvanced::RemoveSink für den Writer auf, um das Pushsenkenobjekt zu trennen.
  7. Rufen Sie IWMWriterPushSink::EndSession auf der Pushsenke auf, um die Sitzung mit dem Server zu beenden.

Diese Schritte werden in der WMVNetWrite-Beispielanwendung veranschaulicht.

Hinweis

Wenn Sie eine Nur-Videodatei mit sehr niedriger Bitrate senden, beginnt sie möglicherweise einige Sekunden lang nicht auf dem Veröffentlichungspunkt abzuspielen. Dies kann in verschiedenen Fällen der Fall sein, z. B. wenn ein einzelnes Paket viele kleine Videoframes und keine Audiodaten enthält, oder wenn es eine lange Zeitlücke zwischen dem ersten Paket und dem zweiten Paket in einer Videodatei mit niedriger Bitrate gibt. Um dieses Problem zu vermeiden, fügen Sie einen automatischen Audiodatenstrom in die Datei ein.

 

Authentifizierung

Die Authentifizierung beim Server wird automatisch vom Pushsenkenobjekt verarbeitet. Die Anwendung muss jedoch möglicherweise Anmeldeinformationen angeben. Dies erfolgt wie folgt über die IWMCredentialCallback-Rückrufschnittstelle :

  1. Implementieren Sie die IWMStatusCallback - und IWMCredentialCallback-Schnittstelle in Ihrer Anwendung.
  2. Fragen Sie das Pushsenkeobjekt für die IWMRegisterCallback-Schnittstelle ab .
  3. Rufen Sie IWMRegisterCallback::Advise mit einem Zeiger auf die IWMStatusCallback-Schnittstelle Ihrer Anwendung auf.
  4. Wenn die Pushsenke Anmeldeinformationen von der Anwendung abrufen muss, fragt sie den IWMStatusCallback-Zeiger für die IWMCredentialCallback-Schnittstelle ab und ruft IWMCredentialCallback::AcquireCredentials auf. Informationen zu dieser Methode finden Sie unter Authentifizierung.
  5. Wenn Sie fertig sind, rufen Sie IWMRegisterCallback::Unadvise auf, um das Abrufen von Ereignisbenachrichtigungen von der Pushsenke zu beenden.

Senden von ASF-Daten über ein Netzwerk

Arbeiten mit Writer-Senken

Writer Push Sink-Objekt