কাস্টমাইজেশন

Transformer-এর আচরণ নিয়ন্ত্রণ করতে, আপনি API সারফেসে বিকল্প কনফিগার করতে পারেন অথবা ইন্টারফেসের কাস্টম ইমপ্লিমেন্টেশন লিখে এবং সেগুলি পাস করে কার্যকারিতার অংশ সম্পূর্ণভাবে পরিবর্তন করতে পারেন। এই পৃষ্ঠায় কিছু উদাহরণ দেওয়া আছে।

কন্ট্রোল কোডেক কনফিগারেশন

ডিফল্ট হিসেবে, ডিভাইসের হার্ডওয়্যার এনকোডার অনুরোধ করা আউটপুট রেজোলিউশন গ্রহণ না করলে, Transformer কাজ করে এমন রেজোলিউশনে ফিরে যাবে। যেমন, Transformer, আউটপুটের প্রস্থ ও উচ্চতাকে ২ বা ১৬-এর মাল্টিপল হিসেবে অ্যালাইন করতে পারে, যা প্রায়শই হার্ডওয়্যার এনকোডারদের প্রয়োজন হয়। আপনি এই আচরণ বন্ধ করতে পারেন যাতে Transformer প্রয়োজনীয় আউটপুট রেজোলিউশন তৈরি করতে না পারলে তার পরিবর্তে একটি সমস্যা দেখায়:

Kotlin

transformerBuilder.setEncoderFactory(
  DefaultEncoderFactory.Builder(context).setEnableFallback(false).build()
)

জাভা

transformerBuilder.setEncoderFactory(
    new DefaultEncoderFactory.Builder(context).setEnableFallback(false).build());

একইভাবে, DefaultEncoderFactory বিকল্পের সাথে setRequestedVideoEncoderSettings বিকল্পে কাস্টম এনকোডিং সেটিং ব্যবহার করা যায়।

এছাড়াও, কোডেক কীভাবে সেট-আপ করা হয় তার উপর সম্পূর্ণ নিয়ন্ত্রণ পেতে, আপনি এনকোডার ও ডিকোডার ফ্যাক্টরি সম্পূর্ণভাবে পরিবর্তন করতে পারেন।

কাস্টম মিক্সার

আপনি Transformer.Builder.setMuxerFactory কল করে মিডিয়া কন্টেনার লেখার জন্য কাস্টম মিক্সার সেট করতে পারবেন। যেমন, আপনি যদি অ্যাপ্লিকেশন লেভেলে নিজের মক্সার প্রয়োগ করেন, তাহলে আপনি এমন র‍্যাপার লিখতে পারবেন যা Muxer ইন্টারফেস প্রয়োগ করে এবং তারপরে setMuxerFactory ব্যবহার করে এটিকে Transformer.Builder-এ ইনজেক্ট করতে পারবেন।

আপনার কাস্টম মিক্সার যদি MP4 এডিট লিস্টে নেগেটিভ টাইমস্ট্যাম্প লেখার সুবিধা দেয়, তাহলে আপনাকে নিশ্চিত করতে হবে যে Muxer.Factory#supportsWritingNegativeTimestampsInEditList থেকে true রিটার্ন করা হয়েছে। এর ফলে, Transformer, MP4 এডিট লিস্ট ব্যবহার করে শুধু-ট্রিম করা এডিটের মতো অপ্টিমাইজেশন করতে পারে, এর জন্য ভিডিওটি আবার এনকোড করার প্রয়োজন হয় না। ডিফল্ট InAppMp4Muxer-এর জন্য এটি আগেই কাজ করে।