Add a text overlay with AVMutableVideoComposition to a specific timerange
I figured out what I needed to do. It wasn't anything special really. It just required a better understanding of what was all possible.
Basically all I had to do was add a basic opacity animation to the layer with text in it.
// My original code for creating the text layer
CATextLayer *titleLayer = [CATextLayer layer];
.
.
.
[titleLayer displayIfNeeded];
// the code for the opacity animation which then removes the text
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"opacity"];
[animation setDuration:0];
[animation setFromValue:[NSNumber numberWithFloat:1.0]];
[animation setToValue:[NSNumber numberWithFloat:0.0]];
[animation setBeginTime:1];
[animation setRemovedOnCompletion:NO];
[animation setFillMode:kCAFillModeForwards];
[titleLayer addAnimation:animation forKey:@"animateOpacity"];
Add text to Video for specific time in iOS
Try to use CAKeyframeAnimation class declared in core animation framework.
for example:
//start from zero opacity
titleLayer.opacity = 0;
CAKeyframeAnimation *fadeInAndOut = [CAKeyframeAnimation animationWithKeyPath:@"opacity"];
fadeInAndOut.duration = 5.0; //5 seconds will be your fade in fade out animation.
fadeInAndOut.autoreverses = NO;
// from 0.0 * animDuration time to 0.2 * animDuration time your animation will animate opacity from zero to 1.0.
// from 0.2 * animDuration time to 0.8 * animDuration time your opacity will be 1.0
// from 0.8 * animDuration time to 1.0 * animDuration time your animation will animate opacity from 1.0 opacity to zero.
fadeInAndOut.keyTimes = @[@(0.0), @(0.2), @(0.8), @(1.0)];
fadeInAndOut.values = @[@(0.0), @(1.0), @(1.0), @(0.0)];
fadeInAndOut.beginTime = 1.0;
fadeInAndOut.removedOnCompletion = NO;
fadeInAndOut.fillMode = kCAFillModeBoth;
[titleLayer addAnimation:fadeInAndOut forKey:nil];
I hope it's clear for you. using same way you can animate your label position.
UPDATE
for animate position try this
CAKeyframeAnimation *fadeInAndOut = [CAKeyframeAnimation animationWithKeyPath:@"position"];
fadeInAndOut.duration = 5.0;
fadeInAndOut.autoreverses = NO;
fadeInAndOut.keyTimes = @[@(0.0), @(0.2), @(0.8), @(1.0)];
fadeInAndOut.values = @[[NSValue valueWithCGPoint:CGPointMake(20, 40)],
[NSValue valueWithCGPoint:CGPointMake(200, 40)],
[NSValue valueWithCGPoint:CGPointMake(200, 40)],
[NSValue valueWithCGPoint:CGPointMake(400, 40)]];
fadeInAndOut.beginTime = 1.0;
fadeInAndOut.removedOnCompletion = NO;
fadeInAndOut.fillMode = kCAFillModeBoth;
[titleLayer addAnimation:fadeInAndOut forKey:nil];
I hardcoded points for explain purpose. you can calculate points and animation duration yourself.
Image/Text overlay in video swift
The code provided by @El Captain would work. It's only missing:
assetExport.videoComposition = layercomposition
You can add this right after the instantiation of the AVAssetExportSession
NOTE: The code originally provided would only export the video track but not the audio track. If you need the audio track you could add something like this after you configure the compositionvideoTrack:
let compositionAudioTrack:AVMutableCompositionTrack = composition.addMutableTrackWithMediaType(AVMediaTypeAudio, preferredTrackID: CMPersistentTrackID())
for audioTrack in audioTracks {
try! compositionAudioTrack.insertTimeRange(audioTrack.timeRange, ofTrack: audioTrack, atTime: kCMTimeZero)
}
Related Topics
Facebook App Invites Notification Not Working in iOS
Core Bluetooth State Preservation and Restoration Not Working, Can't Relaunch App into Background
Using Sysctlbyname() from Swift
Detect When a Unicode Character Cannot Be Displayed Correctly
Why Does "Try Catch" in Objective-C Cause Memory Leak
Swift - the Data Couldn't Be Read Because It Isn't in the Correct Format
iOS - Linking Framework Storyboard to Viewcontroller for Use in Main Project
Swift 3 Nsnotificationcenter Keyboardwillshow/Hide
Using iOS 6 Theme for iOS 7 App
Swift - Get Date from Day of Year
Uiscrollview with iOS Auto Layout Constraints: Wrong Size for Subviews
How to Get Assets.Xcassets File Names in an Array (Or Some Data Structure)
Document Directory Path Change When Rebuild Application
Visually Modifying a Uitoolbar from Xcode Storyboard
Sequence Animation Using Caanimationgroup
Setting Layoutmargins of Uiview Doesn't Work
iOS Uitableview with Dynamic Text and Images Rendered Together (Nsattributedstring + Images)