gpt4 book ai didi

ios - 如何编辑亮度、对比度和饱和度并为已创建的保存在库中的视频添加字幕?

转载 作者:行者123 更新时间:2023-11-29 12:57:42 25 4
gpt4 key购买 nike

我正在开发一个视频应用程序,我必须在其中调整已创建视频的亮度、对比度和饱和度。此外,我还必须像在电影中一样添加字幕。我已经阅读了很多关于它的内容,并且开始了解我们可以在创建视频时添加亮度、对比度和饱和度但不能在已经创建的视频中进行编辑的视频。我也开始知道如何在中添加文本视频,但我希望它像电影一样播放时每隔一段时间像字幕一样出现。

使用 GPUImage,我在录制时像这样改变了亮度。

GPUImageFilter *selectedFilter = nil ;
selectedFilter = [[GPUImageBrightnessFilter alloc] init];
[(GPUImageBrightnessFilter*)selectedFilter setBrightness:brightnesSlider.value];

但我需要编辑已经制作并保存在图库中的视频。任何线索。

引用资料:

Apple Edit Demo

RAY WENDERLICH

Brightness,Contrast and saturation

最佳答案

这是对我有用的代码。我使用了 GPUImage .

viewController.h

#import "GPUImage.h"

GPUImageMovie *movieFile;
GPUImageOutput<GPUImageInput> *filter;
GPUImageMovieWriter *movieWriter;

int ArrayIndex;
UISlider *mSlider;

ViewController.m

NSURL *sampleURL = [[NSBundle mainBundle] URLForResource:@"sample_iPod" withExtension:@"m4v"];

mSlider=[[UISlider alloc]initWithFrame:CGRectMake(60,380,200, 30)];
mSlider.continuous=YES;
[mSlider addTarget:self action:@selector(updatePixelWidth:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:mSlider];

movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL];
movieFile.runBenchmark = YES;
movieFile.playAtActualSpeed = YES;

if(ArrayIndex==0)
{
filter=[[GPUImageBrightnessFilter alloc]init];

mSlider.maximumValue=1.0;
mSlider.minimumValue=-1.0;
mSlider.value=0.0;
}
else if(ArrayIndex==1)
{
filter=[[GPUImageContrastFilter alloc]init];

mSlider.minimumValue=0.0;
mSlider.maximumValue=4.0;
mSlider.value=1.0;

}
else if(ArrayIndex==2)
{
filter=[[GPUImageSaturationFilter alloc]init];

mSlider.minimumValue=0.0;
mSlider.maximumValue=2.0;
mSlider.value=1.0;

}

[movieFile addTarget:filter];

// Only rotate the video for display, leave orientation the same for recording
GPUImageView *filterView = (GPUImageView *)self.view;
[filter addTarget:filterView];

// In addition to displaying to the screen, write out a processed version of the movie to disk
NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.m4v"];
unlink([pathToMovie UTF8String]); // If a file already exists, AVAssetWriter won't let you record new frames, so delete the old movie
NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];

movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(640.0, 480.0)];
[filter addTarget:movieWriter];

// Configure this for video from the movie file, where we want to preserve all video frames and audio samples
movieWriter.shouldPassthroughAudio = YES;
movieFile.audioEncodingTarget = movieWriter;
[movieFile enableSynchronizedEncodingUsingMovieWriter:movieWriter];

[movieWriter startRecording];
[movieFile startProcessing];

[movieWriter setCompletionBlock:^{
[filter removeTarget:movieWriter];
[movieWriter finishRecording];

if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (pathToMovie)) {
UISaveVideoAtPathToSavedPhotosAlbum (pathToMovie,self, @selector(video:didFinishSavingWithError:contextInfo:), nil);
}

}];



- (void)updatePixelWidth:(id)sender
{
if(ArrayIndex==0)
{
[(GPUImageBrightnessFilter *)filter setBrightness:[(UISlider *)sender value]];
}
else if (ArrayIndex==1)
{
[(GPUImageContrastFilter *)filter setContrast:[(UISlider *)sender value]];
}
else if (ArrayIndex==2)
{
[(GPUImageSaturationFilter *)filter setSaturation:[(UISlider *)sender value]];
}
}

关于ios - 如何编辑亮度、对比度和饱和度并为已创建的保存在库中的视频添加字幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20626464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com