멀티 애셋 수정

Transformer를 사용하면 동영상, 텍스트, 이미지 등 여러 미디어 애셋을 이미지, 오디오 파일을 생성하여 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)

자바

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 API 사용 사례를 컴포지션에서 지원합니다.

  • 오디오, 이미지, 동영상 애셋을 순차적으로 결합합니다. 하지만 모든 항목은 한 시퀀스는 동일한 트랙을 사용해야 합니다. 예를 들어 특정 시퀀스를 오디오 전용 파일과 동영상 파일을 차례로 포함합니다.
  • 동영상 애셋에 백그라운드 오디오 추가
  • 컴포지션에 효과 추가
  • HDR 입력을 SDR에 톤 매핑하여 더 나은 화질 SDR 출력을 생성합니다.

현재 제한사항

컴포지션 내의 시퀀스는 다음에 설명된 조건을 충족해야 합니다. Transformer.start() 또한 다음 작업은 음악작품:

  • 오프셋이 있는 EditedMediaItemSequence의 재생을 시작합니다.
  • 동영상 또는 오디오 트랙 크로스페이딩

기능을 요청함

Transformer API에 대한 기능 요청이 있는 경우 Media3 GitHub 저장소.