রেকর্ডিং এবং প্লেব্যাক ভূমিকা

প্ল্যাটফর্ম-নির্দিষ্ট নির্দেশিকা

অ্যান্ড্রয়েড (কোটলিন/জাভা)

অ্যান্ড্রয়েড এনডিকে (সি)

ইউনিটি (এআর ফাউন্ডেশন)

আনরিয়েল ইঞ্জিন

অধিকাংশ অগমেন্টেড রিয়েলিটি অভিজ্ঞতাই “রিয়েল-টাইম” হয়ে থাকে। এর জন্য ব্যবহারকারীকে একটি নির্দিষ্ট সময়ে একটি নির্দিষ্ট স্থানে থাকতে হয় এবং তার ফোনটি একটি বিশেষ এআর মোডে সেট করে একটি এআর অ্যাপ খুলে রাখতে হয়। উদাহরণস্বরূপ, যদি কোনো ব্যবহারকারী দেখতে চান যে তার বসার ঘরে একটি এআর সোফা কেমন দেখায়, তাহলে তাকে শারীরিকভাবে সেই ঘরে উপস্থিত থাকা অবস্থাতেই স্ক্রিনের পরিবেশে সোফাটি “স্থাপন” করতে হবে।

রেকর্ডিং এবং প্লেব্যাক এপিআই এই “রিয়েল-টাইম” প্রয়োজনীয়তা দূর করে, যা আপনাকে এমন এআর অভিজ্ঞতা তৈরি করতে সক্ষম করে যা যেকোনো জায়গায়, যেকোনো সময় দেখা যাবে। রেকর্ডিং এপিআই একটি ক্যামেরার ভিডিও স্ট্রিম, আইএমইউ ডেটা, বা আপনার পছন্দের অন্য যেকোনো কাস্টম মেটাডেটা একটি MP4 ফাইলে সংরক্ষণ করে। এরপর আপনি এই রেকর্ড করা ভিডিওগুলো প্লেব্যাক এপিআই-এর মাধ্যমে ARCore-এ ফিড করতে পারেন, যা MP4 ফাইলটিকে একটি লাইভ সেশন ফিডের মতোই বিবেচনা করবে। আপনি এখনও একটি লাইভ ক্যামেরা সেশন ব্যবহার করতে পারেন, কিন্তু এই নতুন এপিআই-এর সাহায্যে আপনার এআর অ্যাপ্লিকেশনগুলো সেই লাইভ সেশনের পরিবর্তে একটি আগে থেকে রেকর্ড করা MP4 ফাইল ব্যবহার করার বিকল্প বেছে নিতে পারে।

সাধারণ ব্যবহারকারীরাও এই ফিচারটির সুবিধা নিতে পারেন। বাস্তব জীবনে তাঁরা যেখানেই থাকুন না কেন, তাঁদের নিজস্ব গ্যালারি থেকে রেকর্ডিং এবং প্লেব্যাক এপিআই (API) দিয়ে রেকর্ড করা যেকোনো ভিডিও বের করে তাতে এআর (AR) অবজেক্ট, ইফেক্ট এবং ফিল্টার যোগ করতে বা প্লেব্যাক করতে পারবেন। এই ফিচারের সাহায্যে, ব্যবহারকারীরা অফিসে যাওয়ার পথে ট্রেনে বসে, বা বিছানায় শুয়ে-বসে আরাম করার সময়েও তাঁদের এআর শপিং করতে পারবেন।

রেকর্ডিং এবং প্লেব্যাক এপিআই ব্যবহার করে ডেভেলপ করার ক্ষেত্রসমূহ

রেকর্ডিং এবং প্লেব্যাক এপিআই এআর অ্যাপ তৈরির সময় ও স্থানের সীমাবদ্ধতা দূর করে। এখানে কিছু উপায় দেওয়া হলো, যার মাধ্যমে আপনি আপনার নিজের প্রোজেক্টে এটি ব্যবহার করতে পারেন।

একবার রেকর্ড করুন, যেকোনো জায়গায় পরীক্ষা করুন

প্রতিবার কোনো AR ফিচার পরীক্ষা করার জন্য সশরীরে কোনো স্থানে যাওয়ার পরিবর্তে, আপনি রেকর্ডিং API ব্যবহার করে একটি ভিডিও রেকর্ড করতে পারেন এবং তারপর যেকোনো সামঞ্জস্যপূর্ণ ডিভাইসে তা প্লেব্যাক করতে পারেন। কোনো শপিং মলে একটি অভিজ্ঞতা তৈরি করছেন? কোনো পরিবর্তন পরীক্ষা করার জন্য প্রতিবার সেখানে যাওয়ার কোনো প্রয়োজন নেই। শুধু একবার আপনার পরিদর্শনের ভিডিও রেকর্ড করুন এবং তারপর নিজের ডেস্কের আরামদায়ক পরিবেশ থেকেই এর উন্নতি ও পরিমার্জন করতে থাকুন।

পুনরাবৃত্তির সময় হ্রাস করুন

আপনি যে প্রতিটি অ্যান্ড্রয়েড ডিভাইস সমর্থন করতে চান এবং যে প্রতিটি পরিস্থিতি পরীক্ষা করতে চান, তার জন্য আলাদা করে ভিডিও রেকর্ড করার পরিবর্তে, আপনি একবার ভিডিওটি রেকর্ড করে পুনরাবৃত্তির পর্যায়ে একাধিক ভিন্ন ডিভাইসে তা প্লেব্যাক করতে পারেন।

ডেভেলপমেন্ট টিম জুড়ে ম্যানুয়াল টেস্টের বোঝা কমান

প্রতিটি নতুন ফিচারের জন্য কাস্টম ডেটাসেট তৈরি করার পরিবর্তে, ARCore-এর ডেপথ বা সর্বশেষ ট্র্যাকিং উন্নতিগুলো অন্তর্ভুক্ত করে এমন নতুন ফিচার চালু করার সময় আগে থেকে রেকর্ড করা ডেটাসেটগুলো ব্যবহার করুন।

ডিভাইসের সামঞ্জস্যতা

রেকর্ডিং এবং প্লেব্যাক এপিআই (API) ব্যবহার করে ডেটা রেকর্ড করার জন্য আপনার ARCore প্রয়োজন হবে, কিন্তু প্লেব্যাক করার জন্য এটির প্রয়োজন হবে না। এই ফিচারটি ব্যবহার করে রেকর্ড করা MP4 ফাইলগুলো মূলত অতিরিক্ত ডেটাসহ ভিডিও ফাইল, যা যেকোনো ভিডিও প্লেয়ার দিয়ে দেখা যায়। আপনি অ্যান্ড্রয়েডের ExoPlayer বা এমন যেকোনো সামঞ্জস্যপূর্ণ প্লেয়ার দিয়ে এগুলো পরীক্ষা করতে পারেন, যা MP4 ডিমাক্স করতে এবং ARCore দ্বারা যোগ করা অতিরিক্ত ডেটা পরিচালনা করতে সক্ষম।

প্লেব্যাকের জন্য ভিডিও এবং এআর ডেটা কীভাবে রেকর্ড করা হয়

ARCore রেকর্ড করা সেশনগুলোকে টার্গেট ডিভাইসে MP4 ফাইলে সংরক্ষণ করে। এই ফাইলগুলোতে একাধিক ভিডিও ট্র্যাক এবং অন্যান্য বিবিধ ডেটা থাকে। এই সেশনগুলো সংরক্ষিত হয়ে গেলে, আপনি আপনার অ্যাপকে লাইভ ক্যামেরা সেশনের পরিবর্তে এই ডেটা ব্যবহার করার নির্দেশ দিতে পারেন।

একটি রেকর্ডিংয়ে কী থাকে?

ARCore নিম্নলিখিত ডেটা H.264 ভিডিওতে ধারণ করে। আপনি ট্র্যাক পরিবর্তন করতে সক্ষম এমন যেকোনো MP4-উপযোগী ভিডিও প্লেয়ারে এটি অ্যাক্সেস করতে পারেন। সর্বোচ্চ-রেজোলিউশনের ট্র্যাকটি তালিকার প্রথমে থাকে, কারণ কিছু MP4-উপযোগী ভিডিও প্লেয়ার আপনাকে কোন ভিডিও ট্র্যাকটি চালাবেন তা বেছে নেওয়ার সুযোগ না দিয়েই তালিকার প্রথম ট্র্যাকটি স্বয়ংক্রিয়ভাবে চালিয়ে দেয়।

প্রাথমিক ভিডিও ট্র্যাক (সিপিইউ ইমেজ ট্র্যাক)

প্রাথমিক ভিডিও ফাইলটি পরবর্তীতে প্লেব্যাকের জন্য পরিবেশ বা দৃশ্য রেকর্ড করে। ডিফল্টরূপে, ARCore মোশন ট্র্যাকিংয়ের জন্য ব্যবহৃত 640x480 (VGA) সিপিইউ ইমেজটিকে প্রাথমিক ভিডিও স্ট্রিম হিসেবে রেকর্ড করে।

ARCore সেই (উচ্চ-রেজোলিউশনের) GPU টেক্সচারটি ক্যাপচার করে না, যা পাসথ্রু ক্যামেরা ইমেজ হিসেবে স্ক্রিনে রেন্ডার করা হয়।

প্লেব্যাকের সময় যদি আপনি একটি উচ্চ-রেজোলিউশনের ইমেজ স্ট্রিম পেতে চান, তবে আপনাকে এমন একটি ক্যামেরা কনফিগার করতে হবে যা কাঙ্ক্ষিত রেজোলিউশনের একটি সিপিইউ ইমেজ সরবরাহ করে। এক্ষেত্রে:

  • ARCore মোশন ট্র্যাকিংয়ের জন্য প্রয়োজনীয় 640x480 (VGA) সিপিইউ ইমেজ এবং কনফিগার করা ক্যামেরা কনফিগ দ্বারা নির্দিষ্ট হাই-রেজোলিউশন সিপিইউ ইমেজ, উভয়টির জন্যই অনুরোধ করবে।
  • দ্বিতীয় সিপিইউ ইমেজ স্ট্রিম ক্যাপচার করা অ্যাপের পারফরম্যান্সকে প্রভাবিত করতে পারে এবং বিভিন্ন ডিভাইসে এর প্রভাব ভিন্ন ভিন্ন হতে পারে।
  • প্লেব্যাকের সময়, ARCore রেকর্ডিংয়ের সময় ধারণ করা উচ্চ-রেজোলিউশনের সিপিইউ ইমেজটিকে জিপিইউ টেক্সচার হিসেবে ব্যবহার করবে।
  • উচ্চ-রেজোলিউশনের সিপিইউ ছবিটি MP4 রেকর্ডিংয়ের ক্ষেত্রে ডিফল্ট ভিডিও স্ট্রিম হয়ে যাবে।

রেকর্ডিং চলাকালীন নির্বাচিত ক্যামেরা কনফিগারেশনটি রেকর্ডিংয়ের সিপিইউ ইমেজ এবং প্রধান ভিডিও স্ট্রিম নির্ধারণ করে। আপনি যদি উচ্চ-রেজোলিউশনের সিপিইউ ইমেজসহ কোনো ক্যামেরা কনফিগারেশন নির্বাচন না করেন, তাহলে এই ভিডিওটি ফাইলের প্রথম ট্র্যাক হবে এবং আপনি যে ভিডিও প্লেয়ারই ব্যবহার করুন না কেন, এটিই ডিফল্টরূপে প্লে হবে।

ক্যামেরার গভীরতা মানচিত্রের ভিজ্যুয়ালাইজেশন

এটি ক্যামেরার ডেপথ ম্যাপের একটি ভিডিও ফাইল, যা ডিভাইসের হার্ডওয়্যার ডেপথ সেন্সর, যেমন টাইম-অফ-ফ্লাইট সেন্সর (বা ToF সেন্সর) থেকে রেকর্ড করে RGB চ্যানেল ভ্যালুতে রূপান্তর করা হয়েছে। এই ভিডিওটি শুধুমাত্র প্রিভিউ করার উদ্দেশ্যে ব্যবহার করা উচিত।

এপিআই কল ইভেন্ট

ARCore ডিভাইসটির জাইরোমিটার এবং অ্যাক্সেলেরোমিটার সেন্সর থেকে পরিমাপ রেকর্ড করে। এটি অন্যান্য ডেটাও রেকর্ড করে, যার মধ্যে কিছু সংবেদনশীল হতে পারে:

  • ডেটাসেট ফরম্যাট সংস্করণ
  • ARCore SDK সংস্করণ
  • এআর সংস্করণের জন্য গুগল প্লে পরিষেবা
  • ডিভাইস ফিঙ্গারপ্রিন্ট ( adb shell getprop ro.build.fingerprint এর আউটপুট)
  • এআর ট্র্যাকিংয়ের জন্য ব্যবহৃত সেন্সর সম্পর্কে অতিরিক্ত তথ্য
  • ARCore Geospatial API ব্যবহার করার সময়, ডিভাইসটির আনুমানিক অবস্থান, ম্যাগনেটোমিটার রিডিং এবং কম্পাস রিডিং