يبدو التسجيل من كاميرتين في iPhone في آنٍ واحد وكأنه يجب أن يكون بسيطًا — فالهاتف يملك بالفعل عدسات متعددة في الخلف. عمليًا، تشغيل تدفقي كاميرا في آنٍ واحد وتحويلهما إلى ملفي فيديو نظيفين ومتزامنين يتطلب قدرًا لا بأس به من التنسيق. إليك ما يحدث فعليًا.
يبدأ الأمر بجلسة كاميرا واحدة مشتركة
يفترض إطار عمل الكاميرا من Apple، AVFoundation، عادةً أن تطبيقًا واحدًا يستخدم كاميرا واحدة في كل مرة. منذ iOS 13، يسمح نوع جلسة محدد — AVCaptureMultiCamSession — لتطبيق بإضافة أكثر من مدخل كاميرا إلى جلسة واحدة، بحيث يمكن لكليهما العمل في آنٍ واحد بدلاً من أن يحجب أحدهما الآخر.
تحصل كل كاميرا على مسار مخرجات خاص بها
بمجرد إرفاق كاميرتين بالجلسة، تحتاج كل واحدة إلى مخرجاتها الخاصة: تدفق بيانات فيديو خاص بها، يُفكّ ترميزه إطارًا بإطار، على طابور معالجة خاص بها. تشغيل كلتيهما على نفس الطابور سيخلق عنق زجاجة، لذا يعالج تطبيق الكاميرا المتعددة المبني بشكل جيد إطارات الكاميرا الواسعة وإطارات الكاميرا فائقة الاتساع على طوابير إرسال منفصلة، بالتوازي.
التسجيل يعني كتابة ملفين، إطارًا بإطار، بتزامن
تسجيل الفيديو ليس مجرد "احفظ ما تراه الكاميرا" — يجب ترميز كل إطار وكتابته في ملف فور وصوله، في الزمن الحقيقي، بسرعة كافية لمواكبة التدفق المباشر. مع كاميرتين، يعني هذا تشغيل مُرمِّزين مستقلين وملفي مخرجات مستقلين في آنٍ واحد، يُغذَّى كل منهما بإطارات كاميرته الخاصة.
الجزء الصعب هو الحفاظ على تزامنهما. يحمل كل إطار طابعًا زمنيًا دقيقًا، وتبدأ جلستا تسجيل كلا الملفين من زمن مرجعي مشترك بحيث يمثّل الإطار رقم N في الملف العمودي والإطار رقم N في الملف الأفقي نفس اللحظة. إذا أوقفت مؤقتًا واستأنفت في منتصف التسجيل، يجب طرح مدة الإيقاف المؤقت من كل طابع زمني لاحق على كلا الملفين بالتساوي — وإلا انحرف الفيديوهان عن التزامن لحظة الاستئناف.
وضع العدسة الواحدة يؤدي نفس المهمة بكاميرا واحدة
عند استخدام كاميرا فعلية واحدة فقط، يُنتَج "الملف الثاني" بقص منطقة من كل إطار من الكاميرا الأولى، في الزمن الحقيقي، قبل تسليمه إلى مُرمِّزه المنفصل الخاص. يجب أن يحدث هذا بسرعة كافية لمواكبة الفيديو المباشر — عادةً من 24 إلى 60 مرة في الثانية — لذا فإن القص الفعّال (إعادة استخدام مخازن الذاكرة بدلاً من تخصيص مخازن جديدة لكل إطار) مهم لمنع الهاتف من السخونة الزائدة أو إسقاط الإطارات أثناء تسجيل طويل.
تعمل الصور بشكل مختلف عن الفيديو
التقاط صورة ثابتة في وضع العدستين يعني عادةً تفعيل التقاط صورة حقيقي على كاميرا واحدة (للحصول على الدقة والجودة الكاملتين) بينما يُلتقط أحدث إطار فيديو مباشر من الكاميرا الأخرى لاستخدامه كصورتها الثابتة — لأن إطلاق التقاطين كاملين في آنٍ واحد ليس الطريقة التي بُني بها عتاد الكاميرا للعمل. هذا أيضًا سبب تشغيل "وضع الصورة" في تطبيق الكاميرا المزدوجة صوت غالق واحد رغم صدور صورتين عنه.
DualFrame يتولى هذه المزامنة تلقائيًا — بعدستين أو عدسة واحدة، يبقى كلا الملفين متزامنين خلال الإيقاف المؤقت والاستئناف والإيقاف.
تعرّف على DualFrameلماذا يعمل هذا فقط على عتاد معين
تشغيل مُرمِّزين في آنٍ واحد، في الزمن الحقيقي، بدقة 4K، أمر شاق حقًا — ولهذا تقصر Apple واجهة MultiCam البرمجية على الأجهزة التي تملك ما يكفي من قدرة معالجة الصور المخصصة. راجع دليلنا حول ما هي أجهزة iPhone التي تدعم التسجيل بعدستين للتفاصيل، أو صفحة DualFrame لأجهزة iPhone لمعرفة كيف يُستخدم هذا عمليًا.