การแก้ไขเนื้อหาหลายรายการ

เมื่อใช้ Transformer คุณจะรวมเนื้อหาสื่อ หลายรายการเข้าด้วยกันได้ เช่น วิดีโอ รูปภาพ และไฟล์เสียงเพื่อสร้าง Composition

การส่งออกการเรียบเรียง

วิธีใช้การเปลี่ยนรูปแบบ (เช่น เอฟเฟกต์หรือการตัดแต่ง) ใน MediaItem คุณควรสร้างองค์ประกอบ EditedMediaItem เพื่อแสดงเนื้อหาที่มีการเปลี่ยนรูปแบบ

จากนั้นสามารถเรียงต่อกันออบเจ็กต์ EditedMediaItem รายการเข้าด้วยกันเพื่อสร้าง EditedMediaItemSequence ตัวอย่างเช่น คุณสามารถสร้าง EditedMediaItemSequence ที่มีการแก้ไข 2 รายการ วิดีโอ รายการใน EditedMediaItemSequence จะเรียงลำดับตามกันและ ไม่ซ้อนทับกันตามเวลา

Composition เป็นชุดค่าผสมของ EditedMediaItemSequence อย่างน้อย 1 รายการ ออบเจ็กต์ วัตถุทั้ง EditedMediaItemSequence รายการใน Composition ผสมกัน ทำให้คุณรวมเนื้อหาวิดีโอและเสียงไว้ด้วยกันได้

คุณส่งออกออบเจ็กต์ Composition รายการได้โดยใช้ Transformer

ต่อไปนี้คือตัวอย่างการสร้างและส่งออกชิ้นงานวิดีโอที่ประกอบด้วย วิดีโอคลิปที่ตัดต่อแล้วซ้อนทับกับแทร็กเสียง:

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);

ตัวอย่าง Use Case ที่รองรับ

นี่เป็นรายการกรณีการใช้งานโดยสังเขปที่ Transformer API รองรับการเรียบเรียงเพลง:

  • การรวมเนื้อหาเสียง รูปภาพ และวิดีโอตามลำดับ อย่างไรก็ตาม รายการทั้งหมด ในลำดับต้องมีแทร็กเดียวกัน ตัวอย่างเช่น คุณไม่สามารถมีลำดับ ที่มีไฟล์เสียงเท่านั้น ตามด้วยไฟล์วิดีโอ
  • การเพิ่มเสียงที่เล่นอยู่เบื้องหลังลงในเนื้อหาวิดีโอ
  • การเพิ่มเอฟเฟกต์ในการเรียบเรียง
  • การแมปโทนสี HDR ที่ป้อนเป็น SDR เพื่อสร้างเอาต์พุต SDR ที่มีคุณภาพของภาพที่ดียิ่งขึ้น

ข้อจำกัดปัจจุบัน

ลำดับในการเรียบเรียงต้องเป็นไปตามเงื่อนไขที่ระบุไว้ใน Transformer.start() นอกจากนี้ ระบบยังไม่รองรับการดำเนินการต่อไปนี้เมื่อทำงานร่วมกับ การเรียบเรียง:

  • เริ่มเล่น EditedMediaItemSequence ด้วยออฟเซ็ต
  • แทร็กเสียงหรือแทร็กวิดีโอครอสเฟด

คำขอฟีเจอร์

หากคุณมีคำขอฟีเจอร์สำหรับ Transformer API โปรดแจ้งปัญหาใน ที่เก็บ Media3 GitHub