1
我有兩個視頻,一個是用戶使用設備的相機拍攝的視頻,另一個是具有Alpha視頻的視頻,我想在第一個視頻的頂部顯示。 我一直在尋找很多,並沒有找到正確的方法來做到這一點。 1.什麼是覆蓋視頻的正確格式(帶alpha的那個)? 2.我如何做兩者之間的匹配? 有一個名爲Action Movie FX的應用程序,它正是我所說的。 在此先感謝。使用alpha製作多個視頻中的視頻
我有兩個視頻,一個是用戶使用設備的相機拍攝的視頻,另一個是具有Alpha視頻的視頻,我想在第一個視頻的頂部顯示。 我一直在尋找很多,並沒有找到正確的方法來做到這一點。 1.什麼是覆蓋視頻的正確格式(帶alpha的那個)? 2.我如何做兩者之間的匹配? 有一個名爲Action Movie FX的應用程序,它正是我所說的。 在此先感謝。使用alpha製作多個視頻中的視頻
Ray Wenderlish有一個很好的教程來做到這一點。 http://www.raywenderlich.com/30200/avfoundation-tutorial-adding-overlays-and-animations-to-videos。
如果在彼此之上創建層的基本概念。例如,下面的代碼將添加一個UILabel到視頻:
// 1 - Set up the text layer
CATextLayer *subtitle1Text = [[CATextLayer alloc] init];
[subtitle1Text setFont:@"Helvetica-Bold"];
[subtitle1Text setFontSize:36];
[subtitle1Text setFrame:CGRectMake(0, 0, size.width, 100)];
[subtitle1Text setString:_subTitle1.text];
[subtitle1Text setAlignmentMode:kCAAlignmentCenter];
[subtitle1Text setForegroundColor:[[UIColor whiteColor] CGColor]];
// 2 - The usual overlay
CALayer *overlayLayer = [CALayer layer];
[overlayLayer addSublayer:subtitle1Text];
overlayLayer.frame = CGRectMake(0, 0, size.width, size.height);
[overlayLayer setMasksToBounds:YES];
CALayer *parentLayer = [CALayer layer];
CALayer *videoLayer = [CALayer layer];
parentLayer.frame = CGRectMake(0, 0, size.width, size.height);
videoLayer.frame = CGRectMake(0, 0, size.width, size.height);
[parentLayer addSublayer:videoLayer];
[parentLayer addSublayer:overlayLayer];
composition.animationTool = [AVVideoCompositionCoreAnimationTool
videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:videoLayer inLayer:parentLayer];
雖然下述實施例將複合仍與阿爾法圖像通過視頻,它不適用於具有α的視頻將通過另一個視頻進行合成工作。有關在iOS下使用完整Alpha通道的視頻的實際工作示例,請參閱http://stackoverflow.com/a/17138789/763355 – MoDJ