#
Implementing Text Overlays in Video Streams
Video Capture SDK .Net Video Edit SDK .Net Media Player SDK .Net Media Blocks SDK .Net
VideoCaptureCore MediaPlayerCore VideoEditCore
#
Introduction
Text overlays provide a powerful way to enhance video streams with dynamic information, branding, captions, or timestamps. This guide explores how to implement fully customizable text overlays with precise control over appearance, positioning, and animations.
#
Classic Engine Implementation
Our classic engines (VideoCaptureCore, MediaPlayerCore, VideoEditCore) offer a straightforward API for adding text to video streams.
#
Basic Text Overlay Implementation
The following example demonstrates a simple text overlay with custom positioning:
var effect = new VideoEffectTextLogo(true, "textoverlay");
// set position
effect.Left = 20;
effect.Top = 20;
// set Font (System.Drawing.Font)
effect.Font = new Font("Arial", 40);
// set text
effect.Text = "Hello, world!";
// set text color
effect.FontColor = Color.Yellow;
MediaPlayer1.Video_Effects_Add(effect);
#
Dynamic Information Display Options
#
Timestamp and Date Display
You can automatically display current date, time, or video timestamp information using specialized modes:
// set mode and mask
effect.Mode = TextLogoMode.DateTime;
effect.DateTimeMask = "yyyy-MM-dd. hh:mm:ss";
The SDK supports custom formatting masks for timestamps and dates, allowing precise control over the displayed information format. Frame number display requires no additional configuration.
#
Animation and Transition Effects
#
Implementing Fade Effects
Create smooth text appearances and disappearances with customizable fade effects:
// add the fade-in
effect.FadeIn = true;
effect.FadeInDuration = TimeSpan.FromMilliseconds(5000);
// add the fade-out
effect.FadeOut = true;
effect.FadeOutDuration = TimeSpan.FromMilliseconds(5000);
#
Text Rotation Options
Rotate your text overlay to match your design requirements:
// set rotation mode
effect.RotationMode = TextRotationMode.Rm90;
#
Text Flip Transformations
Apply mirror effects to your text for creative presentations:
// set flip mode
effect.FlipMode = TextFlipMode.XAndY;
#
X-Engine Implementation
Our newer X-engines (VideoCaptureCoreX, MediaPlayerCoreX, VideoEditCoreX) provide an enhanced API with additional features.
#
Basic X-Engine Text Overlay
// text overlay
var textOverlay = new TextOverlayVideoEffect() { Text = "Hello World!" };
// set position
textOverlay.XPad = 20;
textOverlay.YPad = 20;
textOverlay.HorizontalAlignment = TextOverlayHAlign.Left;
textOverlay.VerticalAlignment = TextOverlayVAlign.Top;
// set Font (System.Drawing.Font)
textOverlay.Font = new FontSettings("Arial", "Bold", 24);
// set text
textOverlay.Text = "Hello, world!";
// set text color
textOverlay.Color = SKColors.Yellow;
// add the effect
await videoCapture1.Video_Effects_AddOrUpdateAsync(textOverlay);
#
Advanced Dynamic Content Display
#
Video Timestamp Integration
Display the current position within the video:
// text overlay
var textOverlay = new TextOverlayVideoEffect();
// set text
textOverlay.Text = "Timestamp: ";
// set Timestamp mode
textOverlay.Mode = TextOverlayMode.Timestamp;
// add the effect
await videoCapture1.Video_Effects_AddOrUpdateAsync(textOverlay);
#
System Time Integration
Show the current system time alongside your video content:
// text overlay
var textOverlay = new TextOverlayVideoEffect();
// set text
textOverlay.Text = "Time: ";
// set System Time mode
textOverlay.Mode = TextOverlayMode.SystemTime;
// add the effect
await videoCapture1.Video_Effects_AddOrUpdateAsync(textOverlay);
#
Best Practices for Text Overlays
- Consider readability against different backgrounds
- Use appropriate font sizes for the target display resolution
- Implement fade effects for less intrusive overlays
- Test performance impact with complex text effects
For more code examples and implementation details, visit our GitHub repository.