Question

Mon objectif est d'écrire un contrôleur de vue de caméra personnalisé qui:

  1. Peut prendre des photos dans les quatre orientations d'interface avec le dos et, lorsqu'il est disponible, la caméra frontale.
  2. Faire tourner correctement et évolue la "vidéo" de l'aperçu ainsi que la photo pleine résolution.
  3. Permet d'appliquer un effet (simple) à la fois à la "vidéo" et à la photo de résolution complète de l'aperçu.

Mon effort précédent est documenté dans cette question. Ma dernière tentative a été de modifier l'échantillon d'Apple GLVideOframe (de WWDC 2010). Cependant, je n'ai pas pu amener l'iPhone 4 à afficher correctement la "vidéo" correctement lorsque le préréglage de la session est AVCaptureSessionPresetphoto.

Quelqu'un a-t-il essayé ou sait pourquoi l'exemple ne fonctionne pas avec ce préréglage?

L'exemple d'Apple utilise un préréglage avec des dimensions vidéo 640x480 et une taille de texture par défaut de 1280x720. L'appareil photo arrière de l'iPhone 4 ne fournit que 852x640 lorsque le préréglage est AvcaptureSessionPresetPhoto.

Dimensions vidéo / photo de l'appareil photo de l'appareil de périphérique lorsque le préréglage est AVCaptureSessionPresetphoto:

  • Iphone 4 Retour: La vidéo est 852x640 et les photos sont 2592x1936
  • Front iPhone 4: la vidéo et les photos sont 640x480
  • IPOD Touch 4G Back: La vidéo et les photos sont 960x720
  • Ipod Touch 4G Front: la vidéo et les photos sont 640x480
  • iPhone 3GS: La vidéo est 512x384 et les photos sont 2048x1536

Mise à jour

J'ai la même chose vidéo brouillée Résultat lors de la commutation de l'exemple du colorale de Brad Larson (article de blog) pour utiliser l'AvcaptureSessionPresetPhoto.

Était-ce utile?

La solution

Le problème est que AVCaptureSessionPresetPhoto est désormais au contexte et s'exécute dans différentes résolutions selon que vous affichez des captures vidéo ou d'image.

L'aperçu en direct est différent pour ce mode car il remporte les lignes avec des octets supplémentaires. Je suppose que c'est une sorte d'optimisation matérielle.

Dans tous les cas, vous pouvez voir comment j'ai résolu le problème ici:

iOS CvimageBuffer déformé de AvcapturesessiondataOutput avec AvcaptureSessionPresetphoto

Autres conseils

L'AvcaptureSessionPresetPhoto est pour prendre des photos, et non pour capturer des flux en direct. Vous pouvez lire à ce sujet ici: http://developer.apple.com/library/ios/#documentation/audiovideo/conceptual/avfoundationpg/articles/03_mediacapture.html

(Je crois qu'il s'agit en fait de deux cames ou capteurs différents, car ils se comportent très différemment, et il y a quelques secondes de retard juste pour basculer entre la photo et, disons, 640x480).

Vous ne pouvez même pas utiliser les deux préréglages en même temps, et les basculer entre eux est également un mal de tête - Comment obtenir à la fois la sortie vidéo et l'image complète de résolution de photos dans AvFoundation Framework

Hth, mais pas ce que vous vouliez entendre ...

Oded.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top