Quel serait le meilleur moyen de redimensionner une vidéo enregistrée par l'utilisateur sur l'iPhone? P>
J'ai actuellement la possibilité d'obtenir des données vidéo de deux manières: p>
1) Obtenez l'URL du fichier à partir de 2) Obtenez les cadres de la vidéo comme étant envoyé par un pour 1) J'aurais besoin de quelque chose qui peut lire des fichiers .MOV H.264 et cracher des cadres individuels. Y a-t-il une telle chose? P>
pour 2) J'ai pensé à obtenir un uiimage pour chaque image, redimensionnant l'image, puis à recompiler une vidéo avec quelque chose comme est l'idée générale de redimensionner des vidéos pour redimensionner chaque image individuelle puis recompiler une vidéo? Ou existe-t-il un moyen de redimensionner directement une vidéo entière? P>
J'ai juste besoin de l'utilisateur pour enregistrer une vidéo, puis redimensionner cette vidéo sur 320x320, aucune modification de fantaisie. P>
Merci pour toute aide que vous pouvez fournir. P>
edit: strong> peut-être 'redimensionner' est le mauvais mot. J'ai vraiment besoin de culture em> la vidéo de sorte qu'il passe de 480x360 à 320x320. De plus, cette culture n'a pas besoin de se produire en temps réel, je peux le faire une fois la vidéo enregistrée. P> UIIMAGEPICKERCONTROLLER CODE> Une fois la vidéo enregistrée p>
AvcapturesSession code> p>
avaisetwriter code>. Mais cela semble être une opération très intensive et je me demande s'il y a un meilleur moyen d'aborder ce problème. P>
4 Réponses :
alternative 2 ne va pas fonctionner en temps réel. P>
Pour alternative 1, utilisez Expériment avec Notez que les fichiers vidéo ont généralement des rapports de format 16: 9 (ou 4: 3), donc 320x320 n'est pas une option valide. Il n'y a pas de bonnes raisons pour redimensionner à autre que les résolutions prises en charge, à moins que vous ne prévoyez de distribuer à d'autres téléphones, auquel cas le transcodage côté serveur est disponible. P> avaisetexportsession code> initialisé avec l'un des préréglages souhaités - par exemple
avastetexportpreset640x480 code>. p>
AvasseetExportResetLowQualité Code>,
AvasseetExportResetMediumQuality Code>,
AvasseTexPResethestQualité code> Pour des résolutions supplémentaires. P>
Je suis capable de recevoir une vidéo enregistrée directement dans l'un de ces préréglages déjà. Ce que je cherche, c'est un moyen de recadrer la vidéo à une taille personnalisée qui ne fait pas partie de ces préréglages. N'est-il pas possible de recadrer une vidéo à une dimension personnalisée comme si vous seriez des images?
Désolé, j'ai raté la partie "culture". Je pense que les formats vidéo ne sont pas aussi flexibles que les images, c'est-à-dire que les mobiles ne soutiennent que certaines résolutions. Le recadrage est en général laid et je ne le recommande pas, utilisez plutôt un remplissage si vous devez modifier le rapport de format.
Si quiconque fonctionne à travers cela, j'ai trouvé que vous pouvez le faire avec l'avexte si vous nous avez une avicultureVideComposition ainsi qu'une avmutablecomposition. Vous avez ensuite défini sur la composition vidéo et cela affectera la taille de sortie de la vidéo. Vous utilisez ensuite AVMUTABLEVIDECOMPOSITIONNELAISTRUNTER pour positionner la vidéo où vous le souhaitez. Il y a un bon article ici sur la mise en route avec toutes ces classes et son exemple de projet a commenté le code à la fin de l'exportation. P>
Le moyen idéal est d'utiliser Vous recherchez la documentation du développeur Apple pour rechercher une ligne de gestion de la ligne de référence sur avassetreader code> pour lire le fichier vidéo et utiliser
avaisetwriter code> pour écrire ce fichier vidéo à nouveau à un nouveau fichier vidéo. Vous pouvez définir une sortie de sortie pour l'entrée autrui:
Avastrereader CODE> P> P> P> P> P> P> P> P> P> P>
Vous devez prendre en compte une orientation vidéo. Voici une solution Swift 2. Il cultive à la fois la vidéo Voici comment obtenir la transformation p> et comment l'utiliser dans l'instruction de calque < / p> référence p>