Senden von ASF-Daten an einen Veröffentlichungspunkt

Sie können das Windows Media Format SDK verwenden, um ASF-Daten mithilfe von Push an einen Veröffentlichungspunkt auf einem Windows Medienserver zu übertragen. Der Server überträgt dann die Daten von diesem Veröffentlichungspunkt. Dieses Szenario ist nützlich, wenn Sie Inhalte auf einem Computer erfassen oder erneut codieren und den Inhalt von einem anderen Computer (oder mehreren Computern) verteilen möchten. Dies 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 Inhaltsanforderung.

Fügen Sie das Pushsenkenobjekt an das Writerobjekt an, um Daten an den Veröffentlichungspunkt zu pushen. Die Pushsenke wird verwendet, um die Verbindung mit dem Server zu öffnen und die Pushsitzung zu verwalten. Das Writer-Objekt verarbeitet alle anderen Aspekte beim Erstellen 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 für den Writer mit einem Zeiger auf die IWMWriterPushSink-Schnittstelle der Netzwerksenke aufrufen.
  4. Verbinden durch Aufrufen von IWMWriterPushSink::Verbindenauf den Server.
  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 unterArbeiten mit Metadaten beschrieben) oder das Festlegen von Live-DRM im Stream (wie unter Aktivieren der DRM-Unterstützung beschrieben) umfassen. Diese Aufgaben werden genau so ausgeführt, wie sie für das Schreiben von ASF-Dateien gelten.
  6. Nachdem Sie mit dem Schreiben fertig sind, rufen Sie IWMWriterAdvanced::RemoveSink auf dem Writer auf, um das Pushsenkenobjekt zu trennen.
  7. Rufen Sie IWMWriterPushSink::EndSession in 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, wird die Wiedergabe am Veröffentlichungspunkt möglicherweise einige Sekunden lang nicht gestartet. Dies kann in verschiedenen Fällen vorkommen, z. B. wenn ein einzelnes Paket viele kleine Videoframes und keine Audiodaten enthält oder wenn eine lange Zeitlücke zwischen dem ersten Paket und dem zweiten Paket in einer videobasierten Datei mit niedriger Bitrate besteht. Um dieses Problem zu vermeiden, fügen Sie einen automatischen Audiostream 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 Rückrufschnittstelle IWMCredentialCallback:

  1. Implementieren Sie die SCHNITTSTELLEN IWMStatusCallback und IWMCredentialCallback in Ihrer Anwendung.
  2. Fragen Sie das Pushsenkenobjekt 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-Pushsenkeobjekt