2016-05-31 2 views
2

Я выбираю видео из моего быстрого приложения iOS с помощью UIImagePickerController. Я спасаю этот URL, и теперь хотел бы преобразовать его в данные для отправки на мой сервер для хранения с помощью:уменьшить размер видео в swift/iOS для загрузки на сервер

let messageVideoData = NSData(contentsOfURL: chosenVideoURL) 

Проблема заключается в том, что размер файла очень большой. Для 7-секундного видеоролика на моем iPhone 6s разрешение 1280, 720, частота кадров 30 и размер файла более 4 МБ. Я заметил, что одно и то же изображение, отправленное с помощью whatsapp, и другие приложения для чата сокращены до нескольких сотен КБ.

Каков наилучший способ уменьшить размер файла для внешнего хранилища? Видео предназначено в первую очередь для телефонов, поэтому уменьшение разрешения до 800 или менее в порядке.

Я попытался установить качество UIImagePickerController в:

picker.videoQuality = UIImagePickerControllerQualityType.Type640x480 

, но это только уменьшить размер файла 3,5 Мб.

Использование:

picker.videoQuality = UIImagePickerControllerQualityType.TypeLow 

уменьшил разрешение до значения значительно ниже, чем это желательно.

Есть ли другой подход, который я должен принять, чтобы уменьшить размер моего видеофайла для хранения на моем сервере?

+0

Можете ли вы показать нам, как вы его точно решили? –

ответ

2

Попробуйте этот ответ для сжатия видео. По jojaba's answer:

Если вы желаете, чтобы сжать видео для удаленного обмена и сохранить оригинальное качество для локального хранения данных на iPhone, вы должны смотреть в AVAssetExportSession или AVAssetWriter.

Compress Video Without Low Quality

Этот подход в соответствии с Objective-C, хотя.

Вы также должны рассмотреть возможность чтения информации о том, как iOS управляет Assets.

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