تطبيق التأثير على معاينة كاميرا iPhone "الفيديو" باستخدام OpenGL

StackOverflow https://stackoverflow.com/questions/4893664

سؤال

هدفي هو كتابة وحدة تحكم مخصصة لعرض الكاميرا والتي:

  1. يمكن التقاط الصور في جميع اتجاهات الواجهة الأربعة باستخدام الكاميرا الخلفية والأمامية عند توفرها.
  2. يقوم بتدوير "فيديو" المعاينة وتغيير حجمه بشكل صحيح بالإضافة إلى الصورة ذات الدقة الكاملة.
  3. يسمح بتطبيق تأثير (بسيط) على كل من معاينة "الفيديو" والصورة ذات الدقة الكاملة.

مجهودي السابق موثق في هذا السؤال.كانت محاولتي الأخيرة هي تعديل نموذج GLVideoFrame من Apple (من WWDC 2010).ومع ذلك، لم أتمكن من جعل iPhone 4 يعرض "فيديو" المعاينة بشكل صحيح عندما يكون الإعداد المسبق للجلسة هو AVCaptureSessionPresetPhoto.

هل جرب أحد هذا أو يعرف لماذا لا يعمل المثال مع هذا الإعداد المسبق؟

يستخدم مثال Apple إعدادًا مسبقًا بأبعاد فيديو 640 × 480 وحجم مادة افتراضي يبلغ 1280 × 720.توفر الكاميرا الخلفية لجهاز iPhone 4 دقة 852 × 640 فقط عندما يكون الإعداد المسبق هو AVCaptureSessionPresetPhoto.

أبعاد الفيديو/الصورة لكاميرا جهاز iOS عندما يكون الإعداد المسبق هو AVCaptureSessionPresetPhoto:

  • ايفون 4 من الخلف:حجم الفيديو 852x640 والصور 2592x1936
  • الواجهة الأمامية للآيفون 4:الفيديو والصور 640x480
  • آي بود تاتش 4G مرة أخرى:الفيديو والصور 960x720
  • واجهة آي بود تاتش 4G:الفيديو والصور 640x480
  • اي فون 3GS:حجم الفيديو 512x384 والصور 2048x1536

تحديث

حصلت على نفس الشيء فيديو مشوه النتيجة عند تبديل مثال ColorTracking الخاص ببراد لارسون (مشاركة مدونة) لاستخدام ملف AVCaptureSessionPresetPhoto.

هل كانت مفيدة؟

المحلول

القضية هي أن AVCaptureSessionPresetPhoto أصبح الآن مدركًا للسياق ويتم تشغيله بدقة مختلفة بناءً على ما إذا كنت تعرض مقاطع فيديو أو صورًا ثابتة.

تختلف المعاينة المباشرة بالنسبة لهذا الوضع لأنها تقوم بحشو الصفوف بوحدات بايت إضافية.أعتقد أن هذا نوع من تحسين الأجهزة.

على أية حال، يمكنك أن ترى كيف قمت بحل المشكلة هنا:

تم تشويه CVImageBuffer لنظام التشغيل iOS من AVCaptureSessionDataOutput باستخدام AVCaptureSessionPresetPhoto

نصائح أخرى

إن AVCaptureSessionPresetPhoto مخصصة لالتقاط الصور وليس التقاط البث المباشر. يمكنك أن تقرأ عنها هنا: http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/03_MediaCapture.html

(أعتقد أن هذه في الواقع كاميرتان مختلفتان أو مستشعران ، لأنهما يتصرفان بشكل مختلف تمامًا ، وهناك تأخير لثانيتين فقط للتبديل بين الصورة ، ولنقل ، 640 × 480).

لا يمكنك حتى استخدام كلا الإعدادين المسبقين في نفس الوقت ، كما أن التبديل بينهما يمثل مشكلة - كيفية الحصول على كل من إخراج الفيديو وصورة بدقة الصورة الكاملة في إطار عمل AVFoundation

HTH ، على الرغم من أنه ليس ما تريد سماعه ...

عوديد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top