Масштабирование, обрезка и обрезка видео iPhone

У меня есть небольшой видеоклип в моем приложении для iPhone, на котором я хочу выполнить следующие операции:

  1. Масштаб - я должен иметь возможность увеличивать и уменьшать масштаб видео с помощью жестов.
  2. Обрезать - я должен иметь возможность обрезать длину видео после увеличения/уменьшения его скорости.
  3. Вырезать - я должен иметь возможность перетащить окно в любую часть видео и вырезать тот фрагмент видео, который находится в окне, как отдельное видео.

Поскольку размер видео очень маленький (менее минуты), все, о чем я могу думать, это преобразовать видео в изображения, извлекая каждый кадр, а затем выполняя вышеуказанные операции. Может ли кто-нибудь предложить лучшую идею?

Спасибо


person girish_vr    schedule 13.12.2012    source источник
comment
Я преобразовал видео в набор изображений и пытаюсь выполнить вышеуказанные операции.   -  person girish_vr    schedule 03.01.2013


Ответы (1)


Простой и быстрый способ выполнить эти операции — использовать фреймворк GPUImage. Вы должны смотреть на класс GPUImageMovie в GPUImage для редактирования фильмов в iOS. Фреймворк уже поставляется с набором фильтров, которые вы можете использовать для выполнения необходимых вам операций. Дополнительную информацию о редактировании видео см. в этом разделе. с помощью графического изображения.

Короче говоря, вы сначала создаете объект GPUImageMovie:

movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL];

Затем создайте несколько фильтров и примените фильтры к объекту.

cropFilter = [[GPUImageCropFilter alloc] init];
[movieFile addTarget:cropFilter];

Вы можете добавить дополнительные фильтры в цепочку, добавив цели к предыдущему фильтру в вашей цепочке. Наконец, когда вы будете готовы конвертировать видео, сделайте следующее:

NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.m4v"];
unlink([pathToMovie UTF8String]);
NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];

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

movieWriter.shouldPassthroughAudio = YES;
movieFile.audioEncodingTarget = movieWriter;
[movieFile enableSynchronizedEncodingUsingMovieWriter:movieWriter];

[movieWriter startRecording];
[movieFile startProcessing]
person Pulkit Goyal    schedule 03.01.2013
comment
Спасибо. Я наткнулся на GPUImageFilter. Однако я не был уверен, смогу ли я выполнить все 3 операции, упомянутые выше. - person girish_vr; 07.01.2013