সমর্থিত ফরম্যাট

সাধারণভাবে মিডিয়া ফর্ম্যাটগুলির পরিচিতির জন্য ExoPlayer সমর্থিত ফর্ম্যাট পৃষ্ঠাটি দেখুন৷ ট্রান্সফরমারের সাথে লোডিং, এক্সট্র্যাক্টিং এবং ডিকোডিং স্ট্রীমের একই সীমাবদ্ধতা প্রযোজ্য, যদিও ট্রান্সফরমার ExoPlayer-এর বান্ডিল করা সফ্টওয়্যার ডিকোডার মডিউল সমর্থন করে না।

ট্রান্সফরমার এনকোডিংয়ের জন্য MediaCodec উপর নির্ভর করে এবং মাল্টিপ্লেক্স, বা mux , আউটপুট মিডিয়া ফাইলের প্রয়োজন, যা সমর্থিত আউটপুট ফর্ম্যাটগুলিকে সীমাবদ্ধ করে। এনকোডিং সীমাবদ্ধতা সম্পর্কে আরও তথ্যের জন্য MediaCodec ভিডিও কোডেক এবং আউটপুট মিডিয়া কন্টেইনারে প্রযোজ্য সীমাবদ্ধতার জন্য MediaMuxer দেখুন। ট্রান্সফরমার শুধুমাত্র MP4 ফাইল আউটপুট.

ডিফল্টরূপে, Transformer MediaMuxer ব্যবহার করে, কিন্তু একটি কাজের অগ্রগতি InAppMuxer ঐচ্ছিকভাবে রেফারেন্স ফ্রেম কাঠামো এবং সমর্থিত নমুনা বিন্যাসের আশেপাশে MediaMuxer এর কিছু সীমাবদ্ধতা এড়াতে উপলব্ধ। ডিফল্ট muxer ভবিষ্যতে রিলিজে অ্যাপ-মধ্যস্থ muxer হয়ে যাবে।

ইমেজ সমর্থন

ট্রান্সফরমার সমস্ত ইমেজ সম্পদ লোড এবং ডিকোড করার জন্য BitmapFactory ব্যবহার করে, তাই ট্রান্সফরমার BitmapFactory যে সমস্ত ফর্ম্যাট করে তা সমর্থন করে। সমর্থিত ছবির প্রকারের জন্য চিত্র সমর্থন দেখুন। বহু-ছবি বিন্যাসের জন্য (যেমন gifs), যদি DefaultAssetLoaderFactory ব্যবহার করা হয় তবে ধারক থেকে একটি একক চিত্র ফ্রেম প্রদর্শিত হয়।

বিশেষ বিন্যাস

ট্রান্সফরমার নতুন মিডিয়া ফরম্যাটে ইনপুট হ্যান্ডলিং সমর্থন করে যা প্রচলিত ফরম্যাটের তুলনায় বিশেষ বৈশিষ্ট্য প্রদান করে।

HDR ভিডিও পরিচালনা করা

আরও বেশি সংখ্যক ডিভাইস এখন HDR ভিডিও ক্যাপচার সমর্থন করে, আরও প্রাণবন্ত, নির্ভুল রঙ এবং একটি বৃহত্তর উজ্জ্বলতার পরিসর দেয়।

ট্রান্সফরমার প্রয়োজনীয় এনকোডিং সমর্থন সহ ডিভাইসগুলিতে Android 13 (API স্তর 33) থেকে HDR ভিডিও সম্পাদনা করতে সমর্থন করে। HDR ভিডিও সম্পাদনা করার সময়, যেকোনো GL ভিডিও ইফেক্টকে 16-বিট ফ্লোটিং পয়েন্ট কালার কম্পোনেন্ট এবং BT.2020 কালার স্পেস পরিচালনা করতে হবে। Composition তৈরি করার সময় HDR_MODE_KEEP_HDR হল ডিফল্ট মোড। যদি HDR সম্পাদনা সমর্থিত না হয়, তাহলে ট্রান্সফরমার HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL ব্যবহার করে ফিরে আসে।

HDR কে SDR-এ রূপান্তর করা, যা টোন-ম্যাপিং নামেও পরিচিত, প্রয়োজনীয় ডিকোডিং এবং OpenGL সমর্থন সহ ডিভাইসগুলিতে Android 10 (API স্তর 29) থেকে সমর্থিত। HDR বিষয়বস্তু গ্রহণ সমর্থন করে না এমন অন্যান্য অ্যাপ বা পরিষেবাগুলিতে HDR মিডিয়া শেয়ার করার সময় এটি কার্যকর। Composition তৈরি করার সময় OpenGL কল setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL) ব্যবহার করে টোন-ম্যাপিং সক্ষম করতে। অ্যান্ড্রয়েড 12 (এপিআই লেভেল 31) থেকে, MediaCodec কিছু ডিভাইসে টোন-ম্যাপিংকেও সমর্থন করে, যার মধ্যে Android 13 বা তার বেশি চলমান ডিভাইসগুলি HDR ভিডিও ক্যাপচার করতে পারে। MediaCodec কল setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC) ব্যবহার করে টোন-ম্যাপিং সক্ষম করতে।

ধীর গতির মিডিয়া পরিচালনা করা

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

স্লো-মোশন স্ট্রীম সমতল করতে, EditedMediaItemsetFlattenForSlowMotion বিল্ডার পদ্ধতি ব্যবহার করুন।

কোটলিন

val editedMediaItem =
    EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build()
val transformer =
    Transformer.Builder(context).addListener(transformerListener).build()
transformer.start(editedMediaItem, outputPath)

জাভা

EditedMediaItem editedMediaItem =
    new EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build();
Transformer transformer =
    new Transformer.Builder(context).addListener(transformerListener).build();
transformer.start(editedMediaItem, outputPath);

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