Compartilhar via


Como adicionar estabilização de vídeo (HTML)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente ]

O efeito VideoStabilization pode ajudar a reduzir tremores no vídeo, como os gravados por uma câmera portátil. Esse efeito pode ser adicionado durante a captura ao vivo ou como uma etapa de pós-processamento durante a transcodificação.

Pré-requisitos

Este tópico presume que você é capaz de criar um aplicativo básico da Windows Store em JavaScript que use o modelo da Biblioteca do Windows para JavaScript. Para obter ajuda para criar seu primeiro aplicativo, veja Criar seu primeiro aplicativo da Windows Store em JavaScript.

Instruções

Etapa 1: Adicionar o efeito de estabilização de vídeo durante a captura ao vivo

Para adicionar o efeito de estabilização durante a captura ao vivo, use o método Windows.Media.Capture.AddEffectAsync. Esse método aceita os seguintes parâmetros:

  • MediaStreamType - Um dos valores da enumeração de MediaStreamType que especifica se o fluxo é para gravação de vídeo, visualização de vídeo, áudio, ou fotos.
  • effectActivationID : o identificador da classe de tempo de execução ativável que implementa o efeito. A classe de tempo de execução deve implementar a interface IMediaExtension. O namespace Windows.Media fornece uma classe VideoEffects.
  • effectSettings - Um IPropertySet que contém parâmetros de configuração adicionais para o efeito. Se nenhuma configuração adicional for necessária para o efeito, esse parâmetro deverá ser nulo.

Você pode chamar esse método várias vezes para adicionar diversos efeitos.

Este exemplo adiciona um efeito VideoStabilization à cadeia de efeitos que são anexados ao fluxo de origem oriundo da fonte do dispositivo. E isso chama o método ClearEffectsAsync para limpar todos os efeitos do fluxo.

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

Etapa 2: Adicionar o efeito de estabilização de vídeo durante a transcodificação

Para adicionar o efeito de estabilização durante a transcodificação, use o método MediaTranscoder.AddVideoEffect e forneça o identificador de classe da classe de tempo de execução ativável que implementa o efeito. Você pode chamar AddVideoEffect várias vezes para adicionar diversos efeitos.

Este exemplo adiciona o efeito VideoStabilization ao objeto MediaTranscoder. Você pode chamar esse método várias vezes para adicionar diversos efeitos. Chame o método MediaTranscoder.ClearEffects para limpar todos os efeitos do transcodificador.

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

Tópicos relacionados

Exemplo de Captura de Mídia

Exemplo de transcodificação de mídia

Windows.Media.Capture

Windows.Media.Transcoding