Bagaimana Kami Membuat Aplikasi iOS Untuk Merekam Video 3D (Studi Kasus)

Diterbitkan: 2022-03-10
Ringkasan cepat Tidak lama setelah Hollywood merilis film 3D pertamanya, format film dengan cepat mendapatkan popularitas besar di seluruh dunia. Berkat perkembangan teknologi perekaman video, setiap pengguna kini dapat merekam video sendiri. Anda dapat membuat rekaman stereo dari peristiwa yang tak terlupakan dalam hidup Anda atau membuat materi yang luar biasa untuk bisnis Anda.

Tim kami juga tertarik dengan pembuatan film 3D. Kami mempelajari secara menyeluruh fitur alat visual manusia dan detail teknis fotografi stereoskopik. Kemudian, kami memutuskan untuk mengembangkan aplikasi iOS untuk merekam video 3D dan mengunggah video ke YouTube. Ide di balik aplikasi ini adalah untuk memfasilitasi pengambilan gambar video 3D dengan memasang dua iPhone ke bingkai khusus — dan kami berhasil! Begitulah cara aplikasi Perekam Video Stereo muncul.

Kami telah memutuskan untuk berbagi dengan pembaca Smashing Magazine penyelidikan kami dalam pembuatan video 3D. Kami juga ingin berbicara tentang fitur teknis pembuatan aplikasi dan memberikan gambar rinci dari kerangka yang digunakan untuk memasang iPhone.

Bagaimana semua ini dimulai

Dalam studi kami tentang fitur video 3D, kami memulai dengan eksperimen pada realitas virtual. Kami membuat bingkai karton dan melihat ke seluruh dunia melalui dua iPhone dalam format 3D. Rincian penelitian kami dapat ditemukan di blog kami. Kami akan pergi lebih jauh di sini.

Cara Merekam Video 3D Dengan Dua iPhone.
Karton yang dibuat oleh kami untuk mempelajari augmented reality (Lihat versi besar)

Melanjutkan penelitian ini, kami memutuskan untuk membuat prototipe aplikasi lain, yang memungkinkan Anda merekam video 3D stereoskopik dan mengunggahnya ke YouTube.

Stereoskopi adalah cara menciptakan ilusi kedalaman dalam gambar datar. Rekaman stereo telah dikenal sejak abad ke-19. Dalam membuat video 3D stereoskopik, kami mensimulasikan penglihatan binokular. Karena jarak antara pupil, jauh lebih mudah bagi otak manusia untuk menganalisis volume ruang di sekitarnya — jarak ke objek. Stereoskopi binokular banyak digunakan dalam industri film. Anda hampir tidak dapat menemukan mahakarya Hollywood yang tidak menggunakan format stereo.

Tujuan dari prototipe aplikasi kami adalah untuk merekam video secara bersamaan dengan dua kamera iPhone yang berbeda dan kemudian menggabungkan file video yang dihasilkan menjadi satu untuk dilihat menggunakan kacamata 3D — misalnya, Google Cardboard, helm realitas virtual, atau TV 3D.

Lebih banyak setelah melompat! Lanjutkan membaca di bawah ini

Gambar Stereo Dan Persepsi Kami Tentang Gambar 3D

Biarkan saya menguraikan gambar stereo dan persepsi kita tentang gambar 3D. Faktanya, stereografi bekerja seperti mata kita, yang berkembang seiring waktu. Karena ada jarak antara kedua mata kita, gambar yang diproyeksikan ke retina mata kiri dan kanan sedikit berbeda. Perbedaan ini disebut paralaks (efek dimana posisi suatu benda tampak berbeda jika dilihat dari dua posisi yang berbeda). Namun, pengamat tidak melihat dua gambar terpisah. Aparatus visual membentuk persepsi gambar spasial tunggal dan dapat merasakan volume, jarak, dll. Penting untuk dipahami bahwa aparatus visual mendeteksi, memproses dan memproyeksikan gambar spasial dan objek yang terletak di ruang pada titik-titik tertentu.

Cara Merekam Video 3D Dengan Dua iPhone.
Aparatus visual menciptakan persepsi volume berdasarkan paralaks. (Lihat versi besar)

Pemahaman tentang cara kerja aparatus visual manusia memungkinkan penyelidikan menyeluruh tentang bagaimana materi visual perlu disiapkan dan direproduksi sehingga pemirsa dapat merasakan gambaran 3D penuh.

Mari kita lihat semuanya secara berurutan.

Seperti perangkat apa pun yang beroperasi di bawah hukum fisika, perangkat visual manusia memiliki fitur dan keterbatasannya sendiri.

Pertama-tama, kita perlu memahami bahwa, dalam hal proses visual kita, kita memfokuskan pandangan kita hanya pada satu titik, yang disebut sudut pandang (POV). Faktanya, POV adalah titik di mana mata terfokus dan di mana garis pandang kiri dan kanan lewat. Tergantung jarak ke POV, sudut antara garis pandang mata kiri dan kanan akan berbeda. Mata diarahkan sedemikian rupa sehingga garis bertemu di POV. Garis-garis ini sejajar ketika orang tersebut melihat ke kejauhan, atau, dengan kata lain, ke tak terhingga.

Cara Merekam Video 3D Dengan Dua iPhone.
Mata tidak selalu terlihat sejajar – tergantung pada jarak ke objek (titik konvergensi garis). (Lihat versi besar)

Gambar yang diproyeksikan ke retina sedikit berbeda karena perpindahan mata yang kecil. Ini biasanya dimanifestasikan dalam bentuk perpindahan gambar yang dilihat orang tersebut — ke kiri untuk mata kiri, dan ke kanan untuk mata kanan. Fenomena ini, telah disebutkan, disebut paralaks.

Namun, aparatus visual dapat melihat volume hanya pada nilai paralaks tertentu. Tergantung pada jarak ke objek, paralaks akan berbeda untuk objek dekat dan jauh. Mungkin paralaks melebihi nilai batas dan orang tersebut tidak akan melihat objek 3D, tetapi gambar bercabang. Eksperimen yang melibatkan pengalihan pandangan seseorang dari objek yang dekat ke objek yang jauh dapat menawarkan pemahaman yang lebih baik tentang hal ini secara spesifik.

Cara Merekam Video 3D Dengan Dua iPhone.
Persepsi volume hanyalah ilusi otak kita. Bahkan, ada efek samping tertentu. (Lihat versi besar)

Seperti yang dapat dilihat dari gambar, jika Anda memperbaiki tampilan di latar depan, maka objek latar belakang akan mulai bercabang. Jika Anda memperbaiki tampilan Anda di latar belakang, maka gambar latar depan akan bercabang dua. Karakteristik peralatan visual ini memainkan peran penting dalam fitur pemotretan 3D dan reproduksi gambar stereo.

Dalam kehidupan biasa, kita tidak melihat efek ini karena kita terbiasa mengikuti hanya satu objek, dan ketika Anda mengalihkan pandangan, pandangan Anda dengan cepat beradaptasi dengan kondisi baru. Namun, ketika kami mencoba memproyeksikan gambar volumetrik secara artifisial menggunakan dua gambar dengan paralaks yang telah ditentukan sebelumnya, peralatan visual tidak dapat lagi beradaptasi secepat biasanya. Agar peralatan visual bekerja dalam mode normal, peralatan video 3D harus disesuaikan dengan mata pemirsa, menganalisis di mana titik pengamatan berada. Peralatan ini juga harus membuat gambar stereo dengan paralaks yang diperlukan.

Namun, penerapan ini secara teknis sangat sulit. Biasanya, skema sederhana dengan parameter pemotretan geometris dan teknis tetap digunakan. Parameter ini akan berbeda untuk tampilan jarak dekat dan jauh. Yang kami maksud dengan parameter geometris dan teknis adalah bidang pandang kamera, perpindahan horizontal kamera dari pusat, sudut rotasi kamera, dan titik konvergensi kamera.

Oleh karena itu, Anda tidak akan dapat memotret objek yang sama dekat dan jauhnya jika Anda hanya memiliki satu set peralatan pemotretan (dua kamera dan satu bingkai). Lebih tepatnya, Anda bisa memotret, tetapi akan sangat tidak nyaman bagi seseorang untuk menonton video di mana, misalnya, peralatannya disesuaikan untuk tampilan jauh tetapi memotret tampilan close-up, atau sebaliknya, dengan efek stereo. diekspresikan dengan lemah di latar belakang.

Cara Merekam Video 3D Dengan Dua iPhone.
Sistem pemotretan harus dikonfigurasi agar sesuai dengan parameter sistem visual manusia dalam kondisi pengamatan tertentu. (Lihat versi besar)

Dari Ide Menjadi Praktek: Cara Memasang iPhone

Mari kembali ke ide kita. Kami memutuskan untuk mengembangkan prototipe aplikasi seluler yang dapat merekam video 3D stereo. Mempertimbangkan semua hal di atas, kami perlu menilai hal-hal berikut:

  • kemungkinan dasar memotret gambar stereo menggunakan dua iPhone;
  • rentang jarak efektif yang akan memastikan persepsi stereo berkualitas tinggi dan nyaman, dengan mempertimbangkan kondisi penggunaan kamera yang biasa.

Ketika kami hampir membuat prototipe, hal pertama yang kami lakukan adalah mengevaluasi potensi kamera iPhone untuk tugas kami. Kami sangat terkejut mengetahui bahwa iPhone memberikan sudut pandang yang dapat diterima untuk bidikan close-up. Seperti yang telah disebutkan, hanya menempatkan dua kamera secara berdampingan tidak cukup untuk mendapatkan efek stereo yang baik. Biasanya, algoritme untuk menghitung pemotretan dimulai dengan mengatur parameter rencana — yaitu, jarak ke objek terdekat dan terjauh, dan jarak antara objek dalam bidang bingkai. Parameter instalasi kemudian dipilih berdasarkan data ini.

Perhitungan jarak antar kamera yang disederhanakan dapat dilakukan berdasarkan rumus ini:

Cara Merekam Video 3D Dengan Dua iPhone.
(Lihat versi besar)
  • Parallax<sub>fore</sub> menyetel perpindahan maksimum gambar latar depan saat bingkai pasangan stereo saling tumpang tindih.
  • L<sub>fore</sub> = jarak ke objek latar depan
  • f = jarak fokus lensa
  • L = jarak ke titik fokus lensa
  • M = perbesaran bingkai

Dalam kasus kami, kami harus sedikit mengubah algoritme, karena kami menggunakan kamera standar, dan, karenanya, panjang fokus lensa diatur secara kaku. Tugas kami adalah mendapatkan efek stereo yang nyaman dan kisaran jarak yang dapat diterima ke objek pemotretan. Jadi, kami perlu melakukan beberapa percobaan — mengatur kedua kamera relatif satu sama lain — untuk menemukan jarak yang diperlukan antara pusatnya (jarak antara pusat kamera) dan sudut konvergensi.

Untuk menyederhanakan tugas dalam proses pembuatan prototipe, kami memutuskan untuk tidak memutar kamera untuk mencapai konvergensi pada titik tertentu, tetapi menggunakan konvergensi pada tak terhingga. Ternyata, untuk mendapatkan hasil terbaik, perlu menyesuaikan sudut konvergensi kamera secara akurat. Dan jika kami memperhitungkan fakta bahwa kami berencana membuat bingkai karton untuk digunakan untuk memasang iPhone, maka menyesuaikan sudut konvergensi kamera menjadi hampir tidak mungkin. Jadi, setelah beberapa percobaan, kami mencapai kompromi, memperoleh keseimbangan optimal antara jarak antara kamera untuk memungkinkan pemotretan di zona dekat dan mendapatkan efek stereo yang baik.

Cara Merekam Video 3D Dengan Dua iPhone.
Untuk mencapai efek stereo yang baik dan meminimalkan efek fisiologis yang merugikan, jarak antara telepon harus benar-benar ditetapkan. (Lihat versi besar)

Tujuan kami adalah mengembangkan bingkai paling sederhana untuk iPhone, yang mudah dibuat, nyaman dioperasikan, menyediakan parameter pemotretan yang diperlukan, dan memiliki kekakuan yang diperlukan. Jadi, kami memilih model 3D yang dapat dibuat dari bahan plastik atau busa (dalam hal ini polistiren) dengan penggilingan atau pencetakan 3D. Di masa depan, kami tentu ingin mengembangkan perangkat yang lebih mudah dibuat — misalnya, perangkat kardus.

Satu-satunya batasan perangkat keras saat ini adalah Anda harus menggunakan perangkat yang sama, dengan kamera yang benar-benar identik.

Cara Merekam Video 3D Dengan Dua iPhone.Cara Merekam Video 3D Dengan Dua iPhone.
Versi paling sederhana dari bingkai perekaman video 3D (Lihat versi besar)

Di bawah ini adalah gambar rinci dari bingkai untuk berbagai versi perangkat dengan ukuran layar 4.0, 4.7 dan 5.5 inci — cocok untuk iPhone 6+ dan 6S+, untuk 6, 6S dan 7, dan untuk 5 dan 5S.

Cara Merekam Video 3D Dengan Dua iPhone.
Cara Merekam Video 3D Dengan Dua iPhone.
Cara Merekam Video 3D Dengan Dua iPhone.
Gambar untuk bingkai buatan Anda sendiri

Aplikasi Untuk Pemotretan Video 3D Stereoskopik

Aplikasi ini berjalan secara bersamaan di dua perangkat, tetapi pemotretan dikontrol hanya dari satu perangkat, jadi tidak perlu mengontrol proses pemotretan dengan cara khusus.

Dalam bentuk yang disederhanakan, skenario penggunaan standar untuk aplikasi terdiri dari urutan tindakan berikut:

  1. Pasang kedua iPhone ke bingkai.
  2. Jalankan aplikasi di kedua perangkat.
  3. Tentukan perangkat mana yang akan berfungsi sebagai master dan mana yang sebagai budak. Mulai merekam dari perangkat master. (Jangan lakukan tindakan tambahan pada perangkat kedua.)
  4. Setelah merekam, tunggu sinkronisasi fragmen yang direkam dan rendering video yang siap diunggah ke YouTube.
  5. Unggah video ke YouTube kapan saja setelah sinkronisasi, lalu lihat di TV 3D Anda atau melalui kacamata realitas virtual.

Perlu dicatat bahwa pekerjaan utama hanya dilakukan pada satu iPhone, perangkat utama. Di iPhone inilah kami memulai pemotretan. Video diproses dan diunggah ke YouTube juga di perangkat master. Butuh beberapa waktu untuk mempersiapkan video untuk diunggah ke YouTube. Ini akan tergantung pada kinerja perangkat yang digunakan dan kualitas koneksi antara perangkat master dan slave.

IPhone kedua, bertindak sebagai budak, hanya digunakan sebagai kamera kedua. Di akhir pemotretan, ia mengirimkan fragmen video ke perangkat master.

Cara Merekam Video 3D Dengan Dua iPhone.
Proses perekaman video 3D terlihat seperti ini. (Lihat versi besar)

Tangkapan layar layar utama aplikasi, yang menampilkan galeri video yang diambil, ditunjukkan di bawah ini. Video dapat dilihat baik melalui pemutar tertanam dan di YouTube. Di sini, Anda juga dapat melihat bagaimana peran pemotretan lebih lanjut (master dan slave) ditetapkan ke perangkat.

Cara Merekam Video 3D Dengan Dua iPhone.
Cara Merekam Video 3D Dengan Dua iPhone.
Antarmuka pengguna aplikasi

Rintangan Teknis

Desinkronisasi

Semua manipulasi dengan fragmen video dilakukan dengan bantuan kerangka kerja AVFoundation yang kuat, menggunakan, jika mungkin, akselerasi perangkat keras.

Untuk diunggah ke YouTube, fragmen video direkatkan bingkai demi bingkai, berdampingan. Jelas, setiap bingkai kiri harus cocok dengan bingkai kanan berdasarkan waktu. Dengan sedikit penundaan pada bingkai salah satu sumber, efek stereo akan hilang atau terdistorsi (terutama dalam pemandangan dinamis), dan gambar akan tampak berlipat ganda.

Untuk mengatasi masalah ini, kami mulai merekam video di perangkat secara bersamaan. Faktanya, perekaman dimulai tidak segera setelah menekan tombol mulai, tetapi setelah penundaan singkat di mana algoritma tertentu diaktifkan — sangat mirip dengan bagaimana protokol waktu presisi (PTP) mengukur kemiringan jam. Jadi, kami dapat memulai perekaman video dengan divergensi 30 hingga 50 milidetik, yang, dalam skenario terburuk, sesuai dengan sekitar 1 bingkai desinkronisasi.

Bug di Konektivitas Multipeer iOS

Kami menggunakan Konektivitas Multipeer perpustakaan iOS asli untuk menjalin komunikasi antara kedua perangkat. Pustaka ini membuat koneksi langsung antar perangkat di jaringan Wi-Fi yang sama, serta melalui Bluetooth atau menggunakan sesuatu yang mirip dengan Wi-Fi Direct di iPhone. Dengan demikian, Anda dapat merekam dan menyinkronkan fragmen video bahkan di lapangan terbuka, tanpa jaringan internet nirkabel atau seluler. Tetapi koneksi Internet diperlukan untuk mengirim video ke YouTube dari perangkat master.

Alasan utama kami memutuskan untuk menggunakan perpustakaan ini adalah karena perpustakaan ini menjalin komunikasi antara dua perangkat saat tidak terhubung ke jaringan yang sama. Jelas, dalam kondisi pemotretan 3D stereo yang buruk, yang paling diharapkan adalah koneksi 3G. Untuk merekam video 3D, sangat penting untuk dapat – dengan penundaan minimum – mengirimkan paket data untuk sinkronisasi. Selain itu, jika tidak ada koneksi internet, kami tidak akan dapat memotret. Oleh karena itu, perpustakaan Konektivitas Multipeer menjadi penyelamat. Selain itu, ini adalah solusi asli untuk platform Apple.

Namun, perlu dicatat bahwa tidak semuanya berjalan persis seperti yang kita inginkan. Saat berintegrasi dengan Konektivitas Multipeer, banyak bug terdeteksi, dan seluruh perpustakaan sangat tidak stabil dalam pengoperasiannya. Sebagian besar fitur yang dideklarasikan hanya ada dalam teori. Ketika perangkat beroperasi dalam segmen jaringan yang sama, Konektivitas Multipeer beroperasi lebih efektif; koneksi dibuat untuk jangka waktu yang dapat diterima; dispersi waktu pengiriman pesan yang diizinkan tercapai.

Namun, jika kita memiliki, relatif berbicara, kondisi pemotretan 3D stereo yang buruk, atau, katakanlah, ada banyak perangkat seluler di satu tempat, maka membangun koneksi menjadi seperti lotere. Seseorang merasa bahwa perpustakaan Apple belum sepenuhnya dikembangkan dan masih cukup mentah.

Menghubungkan Perangkat

Kami menerapkan protokol penautan otomatis di versi awal prototipe kami. Protokol itu sendiri terdiri dari seperangkat aturan dimana koordinator dipilih di antara perangkat peer – berdasarkan mayoritas – pada titik waktu awal.

Selanjutnya, koordinator secara berkala mengumpulkan statistik telemetri dari setiap perangkat dengan melewatkan penanda khusus dalam lingkaran di antara perangkat slave. Berdasarkan data telemetri ini, pasangan perangkat yang dipasang ke bingkai dibandingkan. Setelah pasangan telah diidentifikasi, master dan budak ditetapkan dalam pasangan, dan koneksi langsung antara mereka dibuat. Pada tahap ini, penautan selesai.

Pencarian Otomatis dan Independen

Bila perlu, pencarian otomatis dan independen (berdasarkan pengidentifikasi unik) untuk perangkat yang telah berpartisipasi dalam sesi sebelumnya dilakukan untuk sinkronisasi (memperoleh trek video yang direkam jika data gagal dimuat ke perangkat master pada saat perekaman). Pembacaan akselerometer terutama digunakan untuk mengidentifikasi perangkat mana yang sesuai dengan pasangan. Koordinator menghitung korelasi antara pasangan potensial. Jika korelasi melebihi ambang batas tertentu, perangkat dianggap sebagai pasangan potensial dan fitur sekunder selanjutnya diuji.

Karena kami tidak dapat sepenuhnya mengatasi masalah yang disebutkan di atas dengan Konektivitas Multipeer, kami memutuskan untuk sementara meninggalkan penautan otomatis, karena ini akan berdampak sangat negatif pada rata-rata pengguna dan merusak pengalaman pengguna.

Apa yang Kita Berakhir Dengan

Pada akhirnya, kami mencapai aplikasi yang sangat menarik dan berkualitas tinggi. Menonton video yang direkam melalui aplikasi ini memberi Anda perasaan yang sama seperti yang Anda dapatkan dari menonton film 3D di teater.

Tentu saja, mata manusia bekerja sedikit berbeda: Garis-garisnya bertemu pada titik tertentu dalam ruang dan bergantung pada titik fokus. Dalam kasus kami, mata selalu terlihat paralel. Namun, bahkan dengan fakta ini, efek stereo sangat terasa: Volume ruang terasa di latar depan, tengah, dan latar belakang hampir sama dengan di layar.

Anda memerlukan kacamata VR atau TV 3D untuk melihat video ini dengan benar.

Jadi, kami telah memungkinkan untuk menggunakan aplikasi Perekam Video Stereo untuk merekam video stereo 3D sendiri untuk kebutuhan bisnis Anda atau hanya untuk bersenang-senang!

Bekerja Pada Bug Dan Rencana Masa Depan

Tujuan kami tercapai: Kami mempelajari kriteria untuk membuat video 3D, dan kami membuat aplikasi yang memungkinkan setiap pengguna membuat video stereo. Tapi itu tidak semua semudah kedengarannya. Kami perlu mengerjakan beberapa hal. Kami memiliki banyak masalah dengan perpustakaan Konektivitas Multipeer. Kami ingin menggantinya atau mencari solusi agar aplikasi berfungsi dengan baik dengan akses Internet terbatas.

Kami juga perlu:

  • menerapkan pemfokusan sinkron dan pengukuran eksposur pada kedua perangkat, serta menerapkan perekaman trek audio stereo;
  • mengembangkan kerangka yang lebih pragmatis untuk perangkat;
  • mengintegrasikan mekanisme pemasangan perangkat otomatis;
  • memberikan dukungan untuk opsi perangkat yang berbeda dan dapat menangani resolusi video yang berbeda (saat ini, kami hanya dapat merekam video dengan versi iPhone yang sama — misalnya, iPhone 5S hanya dapat dipasangkan dengan iPhone 5S lainnya);
  • buat aplikasi versi Android.

Aplikasi Perekam Video Stereo kami sudah ada di App Store. Anda dapat menggunakannya untuk membuat video 3D. Kami yakin teknologi akan terus berkembang dan pada akhirnya akan ada lebih banyak solusi untuk membuat video stereoskopik. Kami akan berusaha mengikuti perkembangan zaman.

Silakan tinggalkan komentar dan ide Anda tentang penggunaan aplikasi ini. Kami akan berterima kasih atas pendapat dan umpan balik Anda.

Bacaan Lebih Lanjut tentang SmashingMag:

  • Empat Cara Membangun Aplikasi Seluler, Bagian 1: iOS Asli
  • Membuat Prototipe Aplikasi iOS Dan Android Dengan Sketch (Dengan Freebie)
  • Masa Depan Video Dalam Desain Web
  • Dasar-dasar Otomasi Uji Untuk Aplikasi, Game, dan Web Seluler