Transformer के काम करने के तरीके को कंट्रोल करने के लिए, एपीआई सर्फ़ेस में जाकर विकल्प कॉन्फ़िगर किए जा सकते हैं. इसके अलावा, इंटरफ़ेस के लिए कस्टम तरीके से लागू करने की प्रोसेस लिखकर, फ़ंक्शनैलिटी के कुछ हिस्सों को पूरी तरह से बदला जा सकता है और उन्हें पास किया जा सकता है. इस पेज पर, कुछ उदाहरण दिए गए हैं.
कोडेक कॉन्फ़िगरेशन को कंट्रोल करना
डिफ़ॉल्ट रूप से, Transformer, काम करने वाले रिज़ॉल्यूशन पर वापस आ जाएगा. ऐसा तब होगा, जब डिवाइस का हार्डवेयर एनकोडर, अनुरोध किए गए आउटपुट रिज़ॉल्यूशन को स्वीकार नहीं करेगा. उदाहरण के लिए, Transformer, आउटपुट की चौड़ाई और ऊंचाई को 2 या 16 के मल्टीपल के तौर पर अलाइन कर सकता है. ऐसा अक्सर हार्डवेयर एनकोडर के लिए ज़रूरी होता है. इस व्यवहार को बंद किया जा सकता है, ताकि अगर Transformer, अनुरोध किए गए आउटपुट रिज़ॉल्यूशन को जनरेट न कर पाए, तो वह गड़बड़ी का मैसेज दिखाए:
Kotlin
transformerBuilder.setEncoderFactory( DefaultEncoderFactory.Builder(context).setEnableFallback(false).build() )
Java
transformerBuilder.setEncoderFactory( new DefaultEncoderFactory.Builder(context).setEnableFallback(false).build());
इसी तरह, DefaultEncoderFactory, setRequestedVideoEncoderSettings विकल्प के साथ, कस्टम एनकोडिंग सेटिंग का इस्तेमाल करने की सुविधा भी देता है.
कोडेक को सेट अप करने के तरीके पर पूरा कंट्रोल पाने के लिए, एनकोडर और डिकोडर के लिए फ़ैक्ट्री को पूरी तरह से बदला जा सकता है.
कस्टम मक्सर
Transformer.setMuxerFactory को कॉल करके, मीडिया कंटेनर लिखने के लिए कस्टम मक्सर सेट किया जा सकता है. उदाहरण के लिए, अगर ऐप्लिकेशन लेवल पर अपना मक्सर लागू किया जाता है, तो रैपर लिखा जा सकता है. यह रैपर, Muxer
इंटरफ़ेस को लागू करता है. इसके बाद, इसे Transformer में इंजेक्ट करने के लिए, setMuxerFactory का इस्तेमाल किया जा सकता है.
अगर आपका कस्टम मक्सर, MP4 में बदलाव करने वाली सूचियों में नेगेटिव टाइमस्टैंप लिखने की सुविधा देता है, तो आपको यह पक्का करना चाहिए कि
Muxer.Factory#supportsWritingNegativeTimestampsInEditList दिखाए
true. इससे Transformer, ऑप्टिमाइज़ेशन कर सकता है. जैसे, MP4 में बदलाव करने वाली सूचियों का इस्तेमाल करके, सिर्फ़ ट्रिम करने से जुड़े बदलाव करना. इसके लिए, वीडियो को फिर से एनकोड करने की ज़रूरत नहीं होती. डिफ़ॉल्ट InAppMp4Muxer के लिए, यह सुविधा पहले से ही उपलब्ध है.