Unterstützte Formate für ExoPlayer finden Sie eine Einführung in Medienformate im Allgemeinen. Dieselben Einschränkungen beim Laden, Extrahieren und Decodierungsströme können mit Transformer angewendet werden, obwohl Transformer das nicht unterstützt Gebündelte Softwaredecodermodule von ExoPlayer
Transformer nutzt auch MediaCodec
für die Codierung und muss ein Multiplexing durchführen, oder
mux, Ausgabemediendateien, die die unterstützten Ausgabeformate beschränkt. Weitere Informationen finden Sie unter
MediaCodec-Video-Codecs
finden Sie weitere Informationen
zu Codierungseinschränkungen und
MediaMuxer
finden Sie Einschränkungen für den Ausgabemediencontainer. Nur Transformator
gibt MP4-Dateien aus.
Standardmäßig verwendet Transformer
MediaMuxer
, InAppMuxer
ist jedoch noch in der Entwicklung
ist optional verfügbar, um einige der Einschränkungen von MediaMuxer
in Bezug auf
Referenzframe-Strukturen und unterstützte Beispielformate. Der Standard-Muxer wird
in einer zukünftigen Version zum In-App-Muxer werden.
Bildunterstützung
Transformer verwendet BitmapFactory
, um alle Bild-Assets zu laden und zu decodieren.
Transformer unterstützt alle Formate, die BitmapFactory unterstützt. Weitere Informationen finden Sie unter
Unterstützung von Bildern
für unterstützte Image-Typen. Bei Multi-Picture-Formaten (z.B. GIFs) ein einzelnes Bild
Frame aus dem Container wird angezeigt, wenn DefaultAssetLoaderFactory
verwendet.
Sonderformate
Transformer unterstützt Eingaben in neueren Medienformaten, die spezielle im Vergleich zu herkömmlichen Formaten.
HDR-Videos verarbeiten
Immer mehr Geräte unterstützen jetzt HDR-Video aufgenommen, sodass Sie lebendigere, und einen größeren Helligkeitsbereich.
Transformer unterstützt die Bearbeitung von HDR-Videos ab Android 13 (API-Level 33)
auf Geräten mit
der erforderlichen Codierungsunterstützung. Beim Bearbeiten von HDR-Videos kann jeder GL
Videoeffekte müssen 16-Bit-Gleitkomma-Farbkomponenten und BT.2020 verarbeiten können.
Farbraum. HDR_MODE_KEEP_HDR
ist der Standardmodus beim Erstellen des
Composition
. Wenn die HDR-Bearbeitung nicht unterstützt wird,
verwendet HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL
.
Die Umwandlung von HDR in SDR, auch als Tone-Mapping bezeichnet, wird von Android unterstützt
Ab Version 10 (API-Level 29) auf Geräten mit erforderlicher Decodierung und OpenGL
Support. Das ist hilfreich, wenn du HDR-Medien mit anderen Apps oder Diensten teilst,
die Aufnahme von HDR-Inhalten unterstützen. So aktivieren Sie die Tone-Mapping mithilfe des OpenGL-Aufrufs:
setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL)
beim Erstellen der
Composition
. Ab Android 12 (API-Level 31) MediaCodec
unterstützt auch die Tonzuordnung auf einigen Geräten, darunter alle Geräte mit
Android 13 oder höher, die HDR-Videos aufnehmen kann. Um die Tonzuordnung zu aktivieren, verwenden Sie
MediaCodec
ruft setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC)
an.
Umgang mit Medien in Zeitlupe
Videos in Zeitlupe enthalten Metadaten, die angeben, wie schnell jeder Abschnitt abgespielt werden soll. Bei der Abflachung wird eine neue basierend auf dem Zeitlupenvideo, aber in dem die Abschnitte beschleunigt werden. aufgrund von Metadaten verlangsamt oder verlangsamt, damit sie auch auf Playern korrekt wiedergegeben werden. die keine Metadaten in Zeitlupe anwenden.
Verwende den setFlattenForSlowMotion
-Builder, um Zeitlupen-Streams zusammenzufassen
für 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);
So kannst du Videos in Zeitlupe unterstützen, mit diesen speziellen Formaten arbeiten. Du musst nur die Games speichern und abspielen, eine vereinfachte Version des Videos anstelle des Originals.