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