ExoPlayer पर काम करने वाले फ़ॉर्मैट देखें पेज मीडिया फ़ॉर्मैट के लिए किया जा सकता है. लोड करने, एक्सट्रैक्ट करने, और स्ट्रीम डिकोड करने की प्रोसेस ट्रांसफ़ॉर्मर पर लागू होती है. हालांकि, ट्रांसफ़ॉर्मर इस पर काम नहीं करता ExoPlayer के बंडल किए हुए सॉफ़्टवेयर डिकोडर मॉड्यूल.
ट्रांसफ़ॉर्मर, एन्कोडिंग के लिए MediaCodec
का भी इस्तेमाल करता है. साथ ही, इसे मल्टीप्लेक्स में बदलना होता है या
mux, आउटपुट मीडिया फ़ाइलें है, जो इस्तेमाल किए जा सकने वाले आउटपुट फ़ॉर्मैट को सीमित करता है. यहां जाएं:
MediaCodec वीडियो कोडेक
कोड में बदलने के तरीकों की सीमाओं और
मीडियामक्सर
आउटपुट मीडिया कंटेनर पर लागू होने वाली सीमाओं के लिए. सिर्फ़ ट्रांसफ़ॉर्मर
MP4 फ़ाइलें उपलब्ध कराती हैं.
डिफ़ॉल्ट रूप से, Transformer
में MediaMuxer
का इस्तेमाल किया जाता है. हालांकि, InAppMuxer
पर काम जारी है
विकल्प के तौर पर उपलब्ध है, ताकि MediaMuxer
की कुछ पाबंदियों से बचा जा सके
और इस्तेमाल किए जा सकने वाले सैंपल फ़ॉर्मैट. डिफ़ॉल्ट मक्सर यह होगा
आने वाले समय में यह ऐप्लिकेशन इन-ऐप्लिकेशन मक्सर बन जाए.
इमेज से जुड़ी सुविधा
ट्रांसफ़ॉर्मर, सभी इमेज ऐसेट को लोड और डिकोड करने के लिए, BitmapFactory
का इस्तेमाल करता है. इसलिए,
ट्रांसफ़ॉर्मर, उन सभी फ़ॉर्मैट के साथ काम करता है जिन पर Bitmap तौर पर इस्तेमाल किया जाता है. यहां जाएं:
इमेज से जुड़ी सहायता
इस्तेमाल करें. मल्टी-पिक्चर फ़ॉर्मैट (जैसे, gif) के लिए, एक ही इमेज
कंटेनर से फ़्रेम तब दिखता है, जब DefaultAssetLoaderFactory
इस्तेमाल किया गया.
खास फ़ॉर्मैट
ट्रांसफ़ॉर्मर, इनपुट को ऐसे नए मीडिया फ़ॉर्मैट में हैंडल करने की सुविधा देता है जो खास करता है कंवेंशनल फ़ॉर्मैट की तुलना में.
एचडीआर वीडियो मैनेज करना
ज़्यादातर डिवाइसों पर एचडीआर वीडियो देखने की सुविधा अब काम कर रही है कैप्चर. इनमें ज़्यादा सटीक और ज़्यादा सटीक जानकारी दी जाती है रंग और रोशनी की ज़्यादा रेंज.
ट्रांसफ़ॉर्मर ऐप्लिकेशन की मदद से, Android 13 (एपीआई लेवल 33) और उसके बाद के वर्शन वाले एचडीआर वीडियो में बदलाव किए जा सकते हैं
जिन डिवाइसों पर कोड में बदलने की सुविधा की ज़रूरत होती है. एचडीआर वीडियो में बदलाव करते समय, किसी भी जीएल
वीडियो इफ़ेक्ट को 16-बिट फ़्लोटिंग पॉइंट कलर कॉम्पोनेंट और BT.2020 को हैंडल करने की ज़रूरत होगी
कलर स्पेस. इसे बनाते समय HDR_MODE_KEEP_HDR
डिफ़ॉल्ट मोड होता है
Composition
. अगर एचडीआर में बदलाव करने की सुविधा काम नहीं करती है, तो ट्रांसफ़ॉर्मर
फिर से HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL
का इस्तेमाल करना शुरू कर देता है.
एचडीआर को एसडीआर में बदलने की सुविधा, Android पर काम करती है. इसे टोन-मैपिंग भी कहा जाता है
10 (एपीआई लेवल 29) और उसके बाद के वर्शन वाले डिवाइसों पर डिकोड करने की सुविधा और OpenGL
सहायता. यह एचडीआर मीडिया को ऐसे दूसरे ऐप्लिकेशन या सेवाओं के साथ शेयर करते समय काम आता है
एचडीआर कॉन्टेंट का डेटा डालने की सुविधा उपलब्ध नहीं है. OpenGL कॉल का इस्तेमाल करके टोन-मैपिंग चालू करने के लिए
setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL)
Composition
. Android 12 (एपीआई लेवल 31) के बाद के वर्शन, MediaCodec
कुछ डिवाइसों पर टोन-मैपिंग की सुविधा भी काम करती है. इनमें वे सभी डिवाइस भी शामिल हैं जिन पर ऐप्लिकेशन चल रहा है
एचडीआर क्वालिटी में वीडियो रिकॉर्ड करने के लिए, Android 13 या इसके बाद का वर्शन होना चाहिए. इसका इस्तेमाल करके टोन-मैपिंग चालू करने के लिए
MediaCodec
, setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC)
को कॉल करें.
स्लो मोशन वाले मीडिया को हैंडल करना
स्लो-मोशन वीडियो में हर सेक्शन की रफ़्तार दिखाने वाला मेटाडेटा शामिल होता है की स्ट्रीम चलाई जानी चाहिए. फ़्लैटनिंग एक नया विज्ञापन बनाने की प्रोसेस है स्लो-मोशन वीडियो के आधार पर वीडियो स्ट्रीम किया जाता है, लेकिन जहां सेक्शन तेज़ हो जाते हैं या मेटाडेटा के आधार पर धीमा कर दिया जाता है, ताकि वे प्लेयर पर भी सही तरीके से चलें जो स्लो मोशन वाले मेटाडेटा को लागू नहीं करते हैं.
स्लो-मोशन स्ट्रीम को फ़्लैट करने के लिए, setFlattenForSlowMotion
बिल्डर का इस्तेमाल करें
EditedMediaItem
पर तरीका.
Kotlin
val editedMediaItem = EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build() val transformer = Transformer.Builder(context).addListener(transformerListener).build() transformer.start(editedMediaItem, outputPath)
Java
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build(); Transformer transformer = new Transformer.Builder(context).addListener(transformerListener).build(); transformer.start(editedMediaItem, outputPath);
इस सुविधा की मदद से, बिना किसी चिंता के स्लो-मोशन वीडियो चलाए जा सकते हैं और इन खास फ़ॉर्मैट के हिसाब से काम करते हैं. आपको बस Google Play स्टोर वीडियो के मूल वर्शन के बजाय उसके सामान्य वर्शन को दिखाता है.