2016-05-31 1 views
2

Je choisis une vidéo de mon application iOS rapide en utilisant le UIImagePickerController. Je gardais cette URL et voudrais maintenant convertir les données à envoyer à mon serveur pour le stockage en utilisant:réduire la taille de la vidéo dans swift/iOS pour télécharger sur le serveur

let messageVideoData = NSData(contentsOfURL: chosenVideoURL) 

Le problème est que la taille du fichier est très grand. Pour une vidéo de 7 secondes tirée sur mon iPhone 6s la résolution est de 1280, 720, la fréquence d'images est de 30 et la taille du fichier est supérieure à 4 Mo. J'ai remarqué que la même image envoyée avec WhatsApp et d'autres applications de chat est réduite à quelques centaines de Ko.

Quelle est la meilleure méthode pour réduire la taille de fichier pour le stockage externe? La vidéo est principalement destinée aux téléphones, ce qui réduit la résolution à 800 ou moins.

J'ai essayé de définir la qualité UIImagePickerController à:

picker.videoQuality = UIImagePickerControllerQualityType.Type640x480 

mais cela ne réduit la taille du fichier à 3,5 Mo.

utilisant:

picker.videoQuality = UIImagePickerControllerQualityType.TypeLow 

réduit la résolution à une valeur bien inférieure à est souhaitable.

Y at-il une autre approche que je devrais prendre pour réduire la taille de mon fichier vidéo pour le stocker sur mon serveur?

+0

Pouvez-vous nous montrer comment l'avez-vous résolu exactement s'il vous plaît? –

Répondre

2

Essayez cette réponse pour compresser la vidéo. Selon jojaba's answer:

Si vous êtes désireux de compresser la vidéo pour le partage à distance et conserver la qualité d'origine pour le stockage local sur l'iPhone, vous devriez regarder dans AVAssetExportSession ou AVAssetWriter.

Compress Video Without Low Quality

Cette approche est aussi par Objective-C cependant.

Vous devriez également considérer comment iOS gère Assets.