एक से ज़्यादा ऐसेट में बदलाव करना

ट्रांसफ़ॉर्मर का इस्तेमाल करके, एक से ज़्यादा मीडिया ऐसेट को आपस में जोड़ा जा सकता है. जैसे, वीडियो, Composition बनाने के लिए, इमेज और ऑडियो फ़ाइलें.

कंपोज़िशन एक्सपोर्ट करना

ट्रांसफ़ॉर्मेशन लागू करने के लिए MediaItem में (जैसे कि इफ़ेक्ट या काट-छांट करना) है, तो आपको ऐसी EditedMediaItem इसका इस्तेमाल उस ऐसेट को दिखाने के लिए किया जाता है जिस पर बदलाव लागू किए गए हैं.

इसके बाद, EditedMediaItem ऑब्जेक्ट को साथ जोड़कर एक EditedMediaItemSequence. उदाहरण के लिए, दो बदलाव करके एक EditedMediaItemSequence बनाया जा सकता है वीडियो. EditedMediaItemSequence में मौजूद आइटम एक क्रम में लगाए जाते हैं और समय ओवरलैप नहीं करते.

Composition, एक या ज़्यादा EditedMediaItemSequence का कॉम्बिनेशन होता है ऑब्जेक्ट हैं. Composition में सभी EditedMediaItemSequence ऑब्जेक्ट मिले हैं साथ में, वीडियो और ऑडियो ऐसेट को एक साथ जोड़ा जा सकता है.

ट्रांसफ़ॉर्मर का इस्तेमाल करके, Composition ऑब्जेक्ट एक्सपोर्ट किए जा सकते हैं.

यहां एक ऐसी वीडियो ऐसेट को बनाने और एक्सपोर्ट करने का उदाहरण दिया गया है जिसमें दो शामिल हैं ऑडियो ट्रैक के साथ ओवरले की गई वीडियो क्लिप में बदलाव किया गया है:

Kotlin

val transformer = ... // Set up Transformer instance

val video1 = EditedMediaItem.Builder(
  MediaItem.fromUri(video1Uri))
  .build()

val video2 = EditedMediaItem.Builder(
  MediaItem.fromUri(video2Uri))
  .build()

val videoSequence = EditedMediaItemSequence(
  video1, video2)

val backgroundAudio = EditedMediaItem.Builder(
  MediaItem.fromUri(audioUri))
  .build()

val backgroundAudioSequence = EditedMediaItemSequence(
  ImmutableList.of(backgroundAudio),
  /* isLooping= */ true) // Loop audio track through duration of videoSequence

val composition = Composition.Builder(
  videoSequence,
  backgroundAudioSequence)
  .build()

val filePath = ... // Provide file path to save Composition

transformer.start(composition, filePath)

Java

Transformer transformer = ... // Set up Transformer instance

EditedMediaItem video1 = new EditedMediaItem.Builder(
  MediaItem.fromUri(video1Uri))
  .build();

EditedMediaItem video2 = new EditedMediaItem.Builder(
  MediaItem.fromUri(video2Uri))
  .build();

EditedMediaItemSequence videoSequence = new EditedMediaItemSequence(
  video1, video2);

EditedMediaItem backgroundAudio = new EditedMediaItem.Builder(
  MediaItem.fromUri(audioUri))
  .build();

EditedMediaItemSequence backgroundAudioSequence = new EditedMediaItemSequence(
  ImmutableList.of(backgroundAudio),
  /* isLooping= */ true); // Loop audio track through duration of videoSequence

String filePath = ... // Provide file path to save Composition

Composition composition = new Composition.Builder(
  videoSequence,
  backgroundAudioSequence)
  .build();

transformer.start(composition, filePath);

इस्तेमाल किए जा सकने वाले उदाहरणों के बारे में जानकारी

इस सूची में, Transformer API के इस्तेमाल के और भी उदाहरण शामिल नहीं किए गए हैं. कंपोज़िशन के साथ काम करता है:

  • ऑडियो, इमेज, और वीडियो ऐसेट को एक ही क्रम में जोड़ा जा सकता है. हालांकि, सभी आइटम क्रम में एक जैसे ट्रैक होने चाहिए. उदाहरण के लिए, आपके विज्ञापनों में कोई क्रम नहीं हो सकता इसमें सिर्फ़ ऑडियो वाली फ़ाइल होती है. इसके बाद, एक वीडियो फ़ाइल होती है.
  • किसी वीडियो ऐसेट में बैकग्राउंड ऑडियो जोड़ना.
  • किसी कंपोज़िशन में इफ़ेक्ट जोड़ना.
  • टोन, एचडीआर इनपुट को एसडीआर में मैप कर रही है, ताकि बेहतर विज़ुअल क्वालिटी वाला एसडीआर आउटपुट जनरेट किया जा सके.

मौजूदा सीमाएं

कंपोज़िशन के क्रम, यहां दी गई शर्तों के मुताबिक होने चाहिए Transformer.start(). इसके अलावा, साथ काम करते समय ये कार्रवाइयां अभी तक काम नहीं करती हैं कंपोज़िशन:

  • ऑफ़सेट के साथ EditedMediaItemSequence का प्लेबैक शुरू हो रहा है.
  • वीडियो या ऑडियो ट्रैक को क्रॉसफ़ेड करना

सुविधा के अनुरोध

अगर आपको Transformer API के लिए कोई सुविधा अनुरोध करना है, तो Media3 GitHub रिपॉज़िटरी.