2014-09-26 4 views
0

Мне нужно иметь возможность снимать видео с фотографий и повторного рендеринга, одновременно снимая его во времени, изменяя ширину и высоту и частоту кадров. Конечно, мне нужно начать с:Повторное рендеринг видео с использованием новой структуры фотографий в iOS8

PHContentEditingInputRequestOptions *options = [[PHContentEditingInputRequestOptions alloc] init]; 

    [self.asset requestContentEditingInputWithOptions:options completionHandler:^(PHContentEditingInput *contentEditingInput, NSDictionary *info) { 

     // Get full image 

     NSURL *url = [contentEditingInput fullSizeImageURL]; 

    }]; 

И я должен иметь возможность регулировать ширину, высоту и продолжительность. Возьмите NSData из этого, напишите это в файл syset.m

Но URL-адрес равен нулю, что подразумевает, что я не могу редактировать видео с помощью новой фреймворка. (У ALAsset не было проблем с этим, используя AVAssetExportSession.) Это имеет смысл, поскольку образец кода Apple Dev также не может редактировать видео.

Теперь, чтобы облегчить жизнь, я мог бы просто передать этот URL-адрес AVAssetExportSession, но я не могу, потому что это нуль. Если бы я только изменил ширину, высоту и продолжительность, мне все равно нужно было бы получить NSData, напишите это в файловой системе.

Мне не нужно записывать измененное видео в Фото, мне действительно нужно видео в файловой системе, так как я буду загружать его на наши серверы.

ответ

2

fullSizeImageURL предназначен для работы с фотооборудованием. Вы хотите иметь свойство avAsset при работе с видео. Измените фактическое видео, а не метаданные, путем записи нового видеофайла.

Чтобы сделать это, вы могли бы использовать, что avAsset в AVMutableComposition:

Вставьте соответствующий диапазон времени видео трек avAsset в (AVAssetTrack) в AVMutableCompositionTrack. Это сделает вашу обрезку.

Место/размер следует с использованием инструкций на слое. (AVMutableVideoCompositionLayerInstruction), чтобы сделать кадрирование и масштабирование.

+0

Я только что предположил, что AVAssets будет, ну, устарел, так как вышла фотография. Это делает мою жизнь очень простой, так как мой код уже использует AVAssets. Я проверю это в понедельник. Благодаря! –

+0

Нет проблем. Это ALAssets, которые устарели, а не AVAssets. Отдельные рамки. – jlw

+0

Полезно знать! спасибо –

Смежные вопросы