次の方法で共有


ビデオ手ブレ補正を追加する方法 (HTML)

[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]

VideoStabilization の効果は、ハンドヘルド カメラなどでの手ブレを低減するのに役立つ場合があります。この効果は、ライブ キャプチャの間に追加することも、コード変換の間に後処理ステップとして追加することもできます。

必要条件

このトピックを完了するには、JavaScript 用 Windows ライブラリのテンプレートを使う、JavaScript で開発する基本的な Windows ストア アプリの作成経験が必要です。初めてのアプリ作成の説明については、「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