So wird’s gemacht: Hinzufügen der Videostabilisierung (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation ]

Der VideoStabilization-Effekt kann ein Verwackeln bei Videoaufnahmen reduzieren, wie es z. B. bei Aufnahmen mit einer Handkamera häufig auftritt. Dieser Effekt kann direkt während der Aufnahme oder als Nachbearbeitungsschritt bei der Transcodierung hinzugefügt werden.

Voraussetzungen

Dieses Thema setzt voraus, dass Sie eine einfache Windows Store-App mit JavaScript erstellen können, für die die Vorlage "Windows-Bibliothek für JavaScript" verwendet wird. Informationen zum Erstellen der ersten App finden Sie unter Erstellen Ihrer ersten Windows Store-App mit JavaScript.

Anweisungen

Schritt 1: Hinzufügen des Videostabilisierungseffekts während der Live-Aufnahme

Verwenden Sie die Windows.Media.Capture.AddEffectAsync-Methode, um den Stabilisierungseffekt während der Live-Aufnahme hinzuzufügen. Die folgenden Parameter können für diese Methode verwendet werden:

  • MediaStreamType – Einer der Werte der MediaStreamType-Enumeration, der angibt, ob der Datenstrom der Videoaufnahme, Videovorschau, Audioaufnahme oder der Aufnahme eines Fotos dient.
  • effectActivationID – Der Klassenbezeichner der aktivierbaren Runtime-Klasse, die den Effekt implementiert. Die Runtime-Klasse muss die IMediaExtension-Schnittstelle implementieren. Der Windows.Media-Namespace stellt eine VideoEffects-Klasse bereit.
  • effectSettingsIPropertySet, das weitere Konfigurationsparameter für den Effekt enthält. Wenn keine weitere Konfiguration für den Effekt erforderlich ist, sollte dieser Parameter NULL sein.

Sie können diese Methode mehrmals aufrufen, um verschiedene Effekte hinzuzufügen.

Im Beispiel wird ein VideoStabilization-Effekt zur Kette von Effekten hinzugefügt, die an den aus der Gerätequelle stammenden Quelldatenstrom angefügt ist. Außerdem wird die ClearEffectsAsync-Methode aufgerufen, um alle Effekte aus dem Datenstrom zu entfernen.

    //
    // Create a Media Capture object and add VideoStabilization.
    //

    oMediaCapture = new Windows.Media.Capture.MediaCapture();
    oMediaCapture.initializeAsync().then(function (result) {
        createProfile();
    }, errorHandler);
    // captureMgr is a MediaCapture object defined elsewhere
    capturMgr.addEffectAsync(
        Windows.Media.Capture.MediaStreamType.videoRecord,
        "Windows.Media.VideoEffects.VideoStabilization",
        null);


    //
    // To clear all the effects from this stream type, use ClearEffectsAsync.
    //
    var clearEffectsOperation = oMediaCapture.clearEffectsAsync(Windows.Media.Capture.MediaStreamType.videoRecord);

Schritt 2: Hinzufügen des Videostabilisierungseffekts während der Transcodierung

Zum Hinzufügen des Stabilisierungseffekts während der Transcodierung verwenden Sie die MediaTranscoder.AddVideoEffect-Methode und geben den Klassenbezeichner der aktivierbaren Runtime-Klasse an, die den Effekt implementiert. Sie können AddVideoEffect mehrmals aufrufen, um verschiedene Effekte hinzuzufügen.

In diesem Beispiel wird der VideoStabilization-Effekt zum MediaTranscoder-Objekt hinzugefügt. Sie können diese Methode mehrmals aufrufen, um verschiedene Effekte hinzuzufügen. Rufen Sie die MediaTranscoder.ClearEffects-Methode auf, um alle Effekte aus dem Transcoder zu entfernen.

//
// Create a Transcoder object and add VideoStabilization.
//

var oTranscoder = new Windows.Media.Transcoding.MediaTranscoder();

oTranscoder.addVideoEffect("Windows.Media.VideoEffects.VideoStabilization");


//
// To clear all the effects from this stream type, use ClearEffects.
//
oTranscoder.clearEffects();

Verwandte Themen

Beispiel für Medienaufzeichnungen

Beispiel zum Transcodieren von Medien

Windows.Media.Capture

Windows.Media.Transcoding