如何添加视频防抖动 (HTML)

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

VideoStabilization 效果有助于减少视频中的抖动,例如来自手持相机。 此效果可在实时捕获期间添加,也可以在转码期间添加为后处理步骤。

先决条件

本主题假定你会使用 JavaScript 创建基本 Windows 应用商店应用并在该应用中使用 Windows JavaScript 库模板。有关创建第一个应用的帮助,请参阅创建第一个采用 JavaScript 的 Windows 应用商店应用

说明

步骤 1: 在实时捕获期间添加视频防抖动效果

若要在实时捕获期间添加防抖动效果,请使用 Windows.Media.Capture.AddEffectAsync 方法。此方法使用以下参数:

  • MediaStreamType - 指定流用于视频录制、视频预览、音频还是照片的 MediaStreamType 枚举值之一。
  • effectActivationID - 实现该效果的可激活运行时类的类标识符。此运行时类必须实现 IMediaExtension 接口。 Windows.Media 命名空间提供 VideoEffects 类。
  • effectSettings - 包含用于该效果的其他配置参数的 IPropertySet。如果不需要为该效果使用任何其他配置,则此参数应该为 null。

你可以多次调用此方法以添加多个效果。

此示例将 VideoStabilization 效果添加到效果链(附加到从设备源出来的源流中)。同时,它调用 ClearEffectsAsync 方法从流中清除所有效果。

    //
    // 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);

步骤 2: 在转码期间添加视频防抖动效果

若要在转码期间添加防抖动效果,请使用 MediaTranscoder.AddVideoEffect 方法并提供实现该效果的可激活运行时类的类标识符。你可以多次调用 AddVideoEffect 以添加多个效果。

此示例将 VideoStabilization 效果添加到 MediaTranscoder 对象。你可以多次调用此方法以添加多个效果。调用 MediaTranscoder.ClearEffects 方法将从转码器中清除所有效果。

//
// 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();

相关主题

媒体捕获示例

对媒体示例进行转码

Windows.Media.Capture

Windows.Media.Transcoding