您可以透過 Transformer 合併多個媒體資產
映像檔和音訊檔案來建立Composition
。
匯出組合
套用轉換
(例如特效或修剪編輯) 的 MediaItem
,您應該建立
EditedMediaItem
。
,表示已套用轉換的資產。
接著,您可以將 EditedMediaItem
物件串連在一起
EditedMediaItemSequence
。
舉例來說,您可以建立含有兩項編輯的 EditedMediaItemSequence
影片。EditedMediaItemSequence
中的項目會按照順序排列,
不會重疊
Composition
是一或多個 EditedMediaItemSequence
的組合
如需儲存大量結構化物件
建議使用 Cloud BigtableComposition
中的所有 EditedMediaItemSequence
物件都混合
可讓您結合影片和音訊素材資源
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);
支援用途示例
這份清單僅列舉部分例子:Transformer API 的用途 可支援組合:
- 可連續搭配音訊、圖片和影片素材資源。不過,所有項目 順序必須具有相同的音軌。例如,在某個 Pod 中 包含一個純音訊檔案,後面接著影片檔案。
- 為影片素材資源加入背景音訊。
- 為組合新增效果。
- 使 HDR 輸入能轉換成 SDR 的色調,以產生畫質更好的 SDR 輸出。
目前限制
組合中的序列必須符合
Transformer.start()
。
此外,系統在處理以下作業時尚未支援
樂曲:
- 使用偏移值開始播放
EditedMediaItemSequence
。 - 將影片或音軌交叉淡出
功能要求
如果您對 Transformer API 提出任何功能要求,請在 Media3 GitHub 存放區。