Vedi i formati supportati da ExoPlayer pagina per un'introduzione formati multimediali in generale. Le stesse limitazioni al caricamento, all'estrazione i flussi di decodifica si applicano con Transformer, anche se Transformer non supporta Moduli di decodifica del software in bundle di ExoPlayer.
Transformer si basa anche su MediaCodec
per la codifica e deve effettuare il multiplexing, oppure
mux, file multimediali di output, che limita i formati di output supportati. Consulta
Codec video MediaCodec
per ulteriori informazioni sui limiti di codifica
MediaMuxer
per le limitazioni applicabili al container multimediale di output. Solo Transformer
crea file MP4.
Per impostazione predefinita, Transformer
utilizza MediaMuxer
, ma una InAppMuxer
in fase di sviluppo
è disponibile facoltativamente per evitare alcune delle limitazioni di MediaMuxer
relative
strutture del frame di riferimento e formati di esempio supportati. Il Muxer predefinito
diventerà il Muxer in-app in una release futura.
Supporto per le immagini
Transformer utilizza BitmapFactory
per caricare e decodificare tutti gli asset immagine, quindi
Transformer supporta tutti i formati supportati da BitmapFA. Consulta
Supporto immagini
per i tipi di immagine supportati. Per i formati multi-immagine (ad es. GIF), una singola immagine
il frame del contenitore viene visualizzato se DefaultAssetLoaderFactory
è
in uso.
Formati speciali
Transformer supporta la gestione dell'input nei formati multimediali più recenti che offrono rispetto ai formati convenzionali.
Gestione dei video HDR
Sempre più dispositivi supportano il video HDR acquisizioni, per immagini più vivide e accurate colori e una gamma di luminosità più ampia.
Transformer supporta la modifica di video HDR a partire da Android 13 (livello API 33)
su dispositivi che supportano
la codifica richiesta. Durante l'editing dei video HDR,
gli effetti video devono gestire componenti di colore in virgola mobile a 16 bit e BT.2020
spazio colore. HDR_MODE_KEEP_HDR
è la modalità predefinita durante la creazione
Composition
. Se l'editing HDR non è supportato,
utilizza HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL
.
La conversione da HDR in SDR, nota anche come mappatura dei toni, è supportata da Android
versione 10 (livello API 29) e successive sui dispositivi con decodifica e OpenGL richiesti
assistenza in tempo reale. Questa funzionalità è utile quando si condividono contenuti multimediali HDR con altri servizi o app che
non supportano l'importazione di contenuti HDR. Per attivare la mappatura dei toni utilizzando la chiamata OpenGL
setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL)
durante la creazione dell'elemento
Composition
. A partire da Android 12 (livello API 31), MediaCodec
supporta anche la mappatura dei toni su alcuni dispositivi, inclusi tutti quelli in esecuzione
Android 13 o versioni successive in grado di acquisire video HDR. Per attivare la mappatura dei toni utilizzando
MediaCodec
chiama setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC)
.
Gestione di contenuti multimediali in slow motion
I video in slow motion includono metadati che indicano la velocità con cui ogni sezione dello stream. Appiattimento è il processo di produzione di una nuova Video stream basati sul video in slow motion, ma in cui le sezioni sono velocizzate o rallentati in base ai metadati, in modo che vengano riprodotti correttamente anche sui giocatori che non applicano metadati in slow motion.
Per uniformare gli stream in slow motion, utilizza lo strumento per la creazione di setFlattenForSlowMotion
su EditedMediaItem
.
Kotlin
val editedMediaItem = EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build() val transformer = Transformer.Builder(context).addListener(transformerListener).build() transformer.start(editedMediaItem, outputPath)
Java
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build(); Transformer transformer = new Transformer.Builder(context).addListener(transformerListener).build(); transformer.start(editedMediaItem, outputPath);
In questo modo potrai supportare i video in slow motion senza doverti preoccupare per gestire questi formati speciali. Tutto quello che devi fare è memorizzare e riprodurre o su una versione bidimensionale del video anziché quella originale.