Compartir a través de


Cómo agregar estabilización de vídeo (HTML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows Runtime. Si estás desarrollando para Windows 10, consulta la documentación más reciente ]

El efecto VideoStabilization puede ayudar a reducir la inestabilidad en el vídeo, por ejemplo, de una cámara de mano. Puedes insertar este efecto durante una captura en directo o agregarlo como un paso de posprocesamiento durante la transcodificación.

Requisitos previos

En este tema, se supone que puedes crear una aplicación de la Tienda Windows básica con JavaScript que use la plantilla de la Biblioteca de Windows para JavaScript. Para obtener ayuda para crear tu primera aplicación, consulta Crear la primera aplicación de la Tienda Windows con JavaScript.

Instrucciones

Paso 1: Agregar el efecto de estabilización de vídeo durante la captura en directo

Para agregar el efecto de estabilización de vídeo durante la captura en directo, usa el método Windows.Media.Capture.AddEffectAsync. Este método toma los siguientes parámetros:

  • MediaStreamType - Uno de los valores de la enumeración MediaStreamType que especifica si la secuencia es para grabación de vídeo, vista previa de vídeo, audio o foto.
  • effectActivationID - El identificador de la clase en tiempo de ejecución activable que implementa el efecto. La clase en tiempo de ejecución debe implementar la interfaz IMediaExtension. El espacio de nombres Windows.Media proporciona una clase VideoEffects.
  • effectSettings - Un IPropertySet que contiene parámetros de configuración adicionales para el efecto. Si no se necesita realizar ninguna configuración adicional para el efecto, este parámetro debe ser nulo.

Puedes llamar varias veces a este método para agregar varios efectos.

En este ejemplo se agrega un efecto VideoStabilization a la cadena de efectos adjuntos a la secuencia de origen proveniente del origen de dispositivo. También se llama al método ClearEffectsAsync para borrar todos los efectos de la secuencia.

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

Paso 2: Agregar el efecto de estabilización de vídeo durante la transcodificación

Para agregar el efecto de estabilización durante la transcodificación, usa el método MediaTranscoder.AddVideoEffect y proporciona el identificador de la clase en tiempo de ejecución activable que implementa el efecto. Puedes llamar varias veces a AddVideoEffect para agregar varios efectos.

En este ejemplo se agrega el efecto VideoStabilization al objeto MediaTranscoder. Puedes llamar varias veces a este método para agregar diversos efectos. Llama al método MediaTranscoder.ClearEffects para borrar todos los efectos del 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();

Temas relacionados

Muestra de captura de multimedia

Muestra de transcodificación de multimedia

Windows.Media.Capture

Windows.Media.Transcoding