How to add a slow motion effect to captured video
This topic shows you how to add a slow-motion effect to video. This effect can be added during live capture or added as a post-processing step during transcoding.
Roadmap: How does this topic relate to others? See:
- Roadmap for Windows Runtime apps using C# or Visual Basic
- Roadmap for Windows Runtime apps using C++
Prerequisites
This topic assumes that you can create a basic Windows Store app using C++, C#, or Visual Basic. For help creating your first app, see Create your first Windows Store app using C# or Visual Basic.
Instructions
Step 1: Set up your app to capture video
To set up your app to record video, follow the instructions in Quickstart: capturing video by using the MediaCapture api
Step 2: Create the slow motion effect and add it to the MediaCapture object
Create a new instance of the SlowMotionEffectDefinition class and set the TimeStretchRate to a value of 1.0 or greater. Call your MediaCapture object's AddEffectAsync method to add the effect before you begin capturing video.
public async void AddSlowMotionEffect() { Windows.Media.Effects.SlowMotionEffectDefinition slowMotionEffectDefinition = new Windows.Media.Effects.SlowMotionEffectDefinition(); // Setter and Getter for TimeStretchRate. slowMotionEffectDefinition.TimeStretchRate = 2; // Add the effect using the AddEffectAsync overloaded method await _mediaCapture.AddEffectAsync( MediaStreamType.VideoRecord, slowMotionEffectDefinition.ActivatableClassId, slowMotionEffectDefinition.Properties); }
Complete example
Related topics
- Quickstart: capturing video by using the MediaCapture api
- Roadmap for Windows Runtime apps using C# or Visual Basic
- Roadmap for Windows Runtime apps using C++