iOS AVFoundation: Réglage de l'Orientation de la Vidéo
J'ai été aux prises avec plusieurs dimensions au problème de contrôle de la vidéo de l'orientation pendant et après la capture sur un appareil iOS. Merci pour les réponses précédentes et de la documentation d'Apple, je ai été en mesure de le comprendre. Cependant, maintenant que j'ai envie de pousser une partie de la vidéo à un site web, je suis en cours d'exécution en particulier les problèmes. J'ai décrit ce problème, en particulier dans cette question, et la solution proposée s'avère d'exiger options d'orientation pour être défini lors de l'encodage vidéo.
Que peut-être, mais je n'ai aucune idée de comment faire. La documentation autour de réglage de l'orientation à l'égard de la mettre correctement pour un affichage sur l'appareil, et j'ai mis en place les conseils trouvé ici. Toutefois, cet avis n'a pas d'adresse réglage de l'orientation correctement pour les non-Apple logiciel tel que VLC ou le navigateur Chrome.
Quelqu'un peut-il donner un aperçu de la façon de définir l'orientation correctement sur l'appareil, tel qu'il s'affiche correctement pour tous les logiciels de visualisation?
preferredTransform
valeur. Donc, je suppose, vous devez exporter la vidéo pour faire pivoter les données. Je veux le regarder dans AVAssetExportSession
AVMutableVideoComposition
setTransform:atTime:
, cela pourrait aider.J'ai un incident de support technique demande d'Apple pour les aider à comprendre cela. Mais je vais prendre un coup d'oeil comme vous le suggérez. Serait-ce à dire séparé encoder étape après la vidéo est enregistrée, je me demande? Qui pourrait être gourmand en ressources...
Oui, ce serait une étape supplémentaire. Cependant, il est peut-être pas si cher que ça si l'exportation sans changer le codage d'origine. Laissez-moi savoir si vous trouvez une meilleure solution.
J'ai mis en œuvre avec succès votre suggestion: j'ai créé un AVAssetExportSessionn à l'aide de la AVMutableVideoComposition et la définition de la transformation. C'était une jolie poilue temps, mais je l'ai eu à travailler ce week-end. Merci pour l'astuce!
Super! Je suis heureux, il a travaillé pour vous.
OriginalL'auteur Aaron Vegh | 2012-11-20
Vous devez vous connecter pour publier un commentaire.
Enfin,sur la base des réponses de @Aaron Vegh et @Prince, j'ai trouvé ma solution:
//Convertir la vidéo
//obtenir l'orientation actuelle
//obtenir la vidéo
}
Quand j'ai essayé votre code, il me donne une erreur "La vidéo n'a pas pu être composé."
OriginalL'auteur Jagie
Dans la documentation d'Apple ici il déclare:
Donc la posté solution par Aaron Vegh qui utilise un AVAssetExportSession fonctionne, mais n'est pas nécessaire. Comme l'Apple doc de dire, si vous voulez avoir l'orientation correctement réglé de sorte qu'il joue dans la non-apple quicktime joueurs comme VLC ou sur le web en utilisant google Chrome, vous devez définir la vidéo d'orientation sur la AVCaptureConnection pour la AVCaptureVideoDataOutput. Si vous essayez de le régler pour la AVAssetWriterInput vous obtiendrez une orientation incorrecte pour les joueurs comme VLC et Chrome.
Voici mon code où je l'ai mis au cours de la configuration de la session de capture:
}
OriginalL'auteur Kazzin
Au cas où quelqu'un d'autre est à la recherche de cette réponse, c'est la méthode que j'ai cuit (un peu modifié pour simplifier):
Ce genre de choses est mal documentée, malheureusement, mais par un agencement des exemples ensemble des autres AINSI en question et la lecture des fichiers d'en-tête, j'ai été en mesure d'obtenir ce travail. Espérons que cela aide quelqu'un d'autre!
OriginalL'auteur Aaron Vegh
L'utilisation de ces ci-dessous
method
pour définircorrect
orientation
selonvideo
asset
orientation
dansAVMutableVideoComposition
OriginalL'auteur Paresh Navadiya
Depuis iOS 5, vous pouvez demander tourné CVPixelBuffers à l'aide de AVCaptureVideoDataOutput documenté ici. Cela vous donne l'orientation correcte sans avoir à retraiter de la vidéo à nouveau avec AVAssetExportSession.
OriginalL'auteur CEarwood