Я пробовал примеры из библиотеки GPUImage. Я попробовал «SimpleVideoFileFilter», но все, что я вижу, это черный экран с ползунком. Я пытался сделать то же самое сам, у меня все работало идеально. но я не могу понять процесс видео. примеры берут видео из самого проекта? папка с мака? или это из видео с айфона? У меня нет учетной записи Apple Developer, поэтому я не могу протестировать ее на своем устройстве. Я нашел способ поместить случайный (.m4v) файл в симулятор iPhone и попытался воспроизвести / отфильтровать видео.
у кого-нибудь была эта проблема? Я пока пытаюсь просто воспроизвести видео из симулятора iPhone или файлов ресурсов. Я действительно не знаю, где это работает. Я попробовал эту ссылку, но безуспешно.
Вот часть примера, который мы можем найти в GPUImage:
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *sampleURL = [[NSBundle mainBundle] URLForResource:@"sample_iPod" withExtension:@"m4v"];
movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL];
movieFile.runBenchmark = YES;
movieFile.playAtActualSpeed = YES;
filter = [[GPUImagePixellateFilter alloc] init];
// filter = [[GPUImageUnsharpMaskFilter alloc] init];
[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/TestMovie.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];
}];
}
простой код, который должен фильтровать видео .. все, что я получаю оттуда, это черный экран с ползунком ..
Я говорю об этом этом проекте.