Comment ajouter la stabilisation vidéo (HTML)
[ Cet article est destiné aux développeurs Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]
L’effet VideoStabilization peut contribuer à réduire les tremblements observés dans une vidéo qui est prise avec une caméra tenue à la main, par exemple. Cet effet peut être inséré au cours de la capture, ou ajouté comme une étape de post-traitement au cours du transcodage.
Prérequis
Cette rubrique suppose que vous savez créer une application du Windows Store de base en JavaScript qui reprend le modèle Bibliothèque Windows pour JavaScript. Pour obtenir de l’aide lors de la création de votre première application, voir Créer votre première application du Windows Store en JavaScript.
Instructions
Étape 1: Ajouter l’effet de stabilisation vidéo au cours de la capture
Pour ajouter l’effet de stabilisation au cours de la capture, utilisez la méthode Windows.Media.Capture.AddEffectAsync. Cette méthode prend les paramètres suivants :
- MediaStreamType - une des valeurs de l’énumération MediaStreamType qui spécifie si le flux est destiné à un enregistrement vidéo, un aperçu vidéo, un contenu audio ou une photo.
- effectActivationID : l’identificateur de la classe d’exécution activable qui implémente l’effet. La classe d’exécution doit implémenter l’interface IMediaExtension. L’espace de noms Windows.Media fournit une classe VideoEffects.
- effectSettings : un objet IPropertySet qui définit des paramètres de configuration supplémentaires pour l’effet. Si aucune configuration supplémentaire n’est requise pour l’effet, ce paramètre doit avoir la valeur null.
Vous pouvez appeler cette méthode plusieurs fois pour ajouter plusieurs effets.
Cet exemple ajoute un effet VideoStabilization à la chaîne d’effets qui sont attachés au flux source provenant de la source du périphérique. Il appelle la méthode ClearEffectsAsync pour effacer tous les effets du flux.
//
// 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);
Étape 2: Ajouter l’effet de stabilisation vidéo pendant le transcodage
Pour ajouter l’effet de stabilisation pendant le transcodage, utilisez la méthode MediaTranscoder.AddVideoEffect et fournissez l’identificateur de la classe d’exécution activable qui implémente l’effet. Vous pouvez appeler la méthode AddVideoEffect plusieurs fois pour ajouter plusieurs effets.
Cet exemple ajoute l’effet VideoStabilization à l’objet MediaTranscoder. Vous pouvez appeler cette méthode plusieurs fois pour ajouter plusieurs effets. Appelez la méthode MediaTranscoder.ClearEffects pour effacer tous les effets du transcodeur.
//
// 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();