ট্রান্সফরমার ব্যবহার করে, আপনি একটি Composition
তৈরি করতে একাধিক মিডিয়া সম্পদ, যেমন ভিডিও, ছবি এবং অডিও ফাইল একত্রিত করতে পারেন।
একটি রচনা রপ্তানি করা হচ্ছে
একটি MediaItem
এ রূপান্তর (যেমন প্রভাব বা ছাঁটাই করা সম্পাদনা) প্রয়োগ করতে, আপনার একটি EditedMediaItem
তৈরি করা উচিত যাতে এটিতে রূপান্তরগুলি প্রয়োগ করা হয়েছে এমন সম্পদের প্রতিনিধিত্ব করে৷
EditedMediaItem
অবজেক্টগুলি তারপরে একটি EditedMediaItemSequence
তৈরি করতে একসাথে সংযুক্ত করা যেতে পারে। উদাহরণস্বরূপ, আপনি দুটি সম্পাদিত ভিডিও সহ একটি EditedMediaItemSequence
তৈরি করতে পারেন৷ একটি EditedMediaItemSequence
এর ভিতরের আইটেমগুলি ক্রমানুসারে অর্ডার করা হয় এবং সময়মতো ওভারল্যাপ হয় না।
একটি Composition
হল এক বা একাধিক EditedMediaItemSequence
বস্তুর সমন্বয়। Composition
সমস্ত EditedMediaItemSequence
অবজেক্ট একসাথে মিশ্রিত করা হয়, যা আপনাকে ভিডিও এবং অডিও সম্পদ একত্রিত করতে দেয়।
ট্রান্সফরমার ব্যবহার করে Composition
বস্তু রপ্তানি করা যেতে পারে.
এখানে একটি ভিডিও সম্পদ তৈরি এবং রপ্তানি করার একটি উদাহরণ রয়েছে যা দুটি সম্পাদিত ভিডিও ক্লিপ সমন্বিত, একটি অডিও ট্র্যাকের সাথে আচ্ছাদিত:
কোটলিন
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)
জাভা
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);
সমর্থিত ব্যবহারের ক্ষেত্রে উদাহরণ
এটি একটি অ-সম্পূর্ণ তালিকা ব্যবহারের ক্ষেত্রে যা ট্রান্সফরমার API কম্পোজিশনের সাথে সমর্থন করে:
- ক্রমানুসারে অডিও, ছবি এবং ভিডিও সম্পদ একত্রিত করা। যাইহোক, একটি ক্রম সব আইটেম একই ট্র্যাক থাকতে হবে. উদাহরণস্বরূপ, আপনার কাছে একটি ক্রম থাকতে পারে না যাতে একটি অডিও ফাইল থাকে, একটি ভিডিও ফাইল অনুসরণ করে।
- একটি ভিডিও সম্পদে ব্যাকগ্রাউন্ড অডিও যোগ করা হচ্ছে।
- একটি রচনায় প্রভাব যুক্ত করা হচ্ছে।
- উন্নত ভিজ্যুয়াল মানের SDR আউটপুট তৈরি করতে SDR-তে টোন ম্যাপিং HDR ইনপুট।
বর্তমান সীমাবদ্ধতা
একটি কম্পোজিশনের মধ্যে সিকোয়েন্সগুলিকে অবশ্যই Transformer.start()
এ বর্ণিত শর্তগুলি পূরণ করতে হবে। উপরন্তু, রচনাগুলির সাথে কাজ করার সময় নিম্নলিখিত ক্রিয়াকলাপগুলি এখনও সমর্থিত নয়:
- একটি অফসেট সহ একটি
EditedMediaItemSequence
এর প্লেব্যাক শুরু হচ্ছে৷ - ক্রসফেডিং ভিডিও বা অডিও ট্র্যাক
বৈশিষ্ট্য অনুরোধ
ট্রান্সফরমার API-এর জন্য আপনার কাছে কোনো বৈশিষ্ট্যের অনুরোধ থাকলে, Media3 GitHub সংগ্রহস্থলে একটি সমস্যা ফাইল করুন।