Obsługiwane formaty

Zobacz formaty obsługiwane przez ExoPlayer , gdzie znajdziesz wprowadzenie z formatami multimedialnymi. Te same ograniczenia dotyczące wczytywania, wyodrębniania i strumienie dekodowania są stosowane w Transformer, chociaż Transformer nie obsługuje Moduły dekodera oprogramowania ExoPlayer dostarczane w pakiecie.

Transformer korzysta też z kodowania MediaCodec i musi korzystać z multipleksa lub mux, wyjściowe pliki multimedialne, które ograniczają obsługiwane formaty wyjściowe. Zobacz Kodeki wideo MediaCodec znajdziesz więcej informacji o ograniczeniach kodowania MediaMuxer aby poznać ograniczenia dotyczące wyjściowego kontenera multimediów. Tylko Transformer generuje pliki MP4.

Domyślnie Transformer używa MediaMuxer, a InAppMuxer w toku jest opcjonalnie dostępna, aby uniknąć niektórych ograniczeń usługi MediaMuxer dotyczących struktury ramek odniesienia i obsługiwane formaty przykładowych. Domyślny Muxer będzie w przyszłej wersji.

Obsługa obrazów

Transformer używa BitmapFactory do wczytywania i dekodowania wszystkich komponentów z obrazem, Transformer obsługuje wszystkie formaty, które obsługuje BitmapFactory. Zobacz Obsługa obrazów o obsługiwanych typach obrazów. W przypadku formatów z kilkoma obrazami (np. GIF) jeden obraz ramka z kontenera jest wyświetlana, jeśli DefaultAssetLoaderFactory ma wartość .

Specjalne formaty

Transformer obsługuje dane wejściowe w nowszych formatach multimediów, które zapewniają w porównaniu z formatami konwencjonalnymi.

Praca z filmami HDR

Coraz więcej urządzeń obsługuje teraz filmy HDR , dając bardziej żywe i dokładne i zwiększyć zakres jasności.

Transformer obsługuje edytowanie filmów HDR już od Androida 13 (poziom interfejsu API 33) na urządzeniach z wymaganą obsługą kodowania. Podczas edytowania filmów HDR każdy efekty wideo muszą obsługiwać 16-bitowe komponenty koloru zmiennoprzecinkowego i BT.2020 przestrzeni kolorów. HDR_MODE_KEEP_HDR to domyślny tryb przy tworzeniu Composition Jeśli edycja HDR nie jest obsługiwana, Transformer wraca do użycia HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL.

Konwersja HDR na SDR (nazywana też mapowaniem tonów) jest obsługiwana na Androidzie. 10 (poziom interfejsu API 29) i nowsze na urządzeniach z wymaganym dekodowaniem i trybem OpenGL . Jest to przydatne podczas udostępniania multimediów HDR innym aplikacjom lub usługom, nie obsługują przetwarzania treści HDR. Aby włączyć mapowanie tonów przez wywołanie OpenGL setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL) podczas tworzenia Composition MediaCodec – od Androida 12 (poziom interfejsu API 31) obsługuje też mapowanie tonów na niektórych urządzeniach, w tym na wszystkich urządzeniach Android 13 lub nowszy, który umożliwia nagrywanie filmów HDR. Aby włączyć mapowanie tonów za pomocą: MediaCodec zadzwoń pod numer setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC).

Obsługa multimediów w zwolnionym tempie

W filmach w zwolnionym tempie znajdują się metadane wskazujące szybkość, z jaką każdy fragment transmisji strumieniowej. Spłaszczanie to proces tworzenia nowego jest to strumień wideo oparty na zwolnionym tempie, ale w przypadku których sekcje są przyspieszone. lub wolniej na podstawie metadanych, aby odtwarzały poprawnie nawet na innych urządzeniach bez metadanych zwolnionego tempa.

Aby dopracować strumienie w zwolnionym tempie, użyj kreatora setFlattenForSlowMotion 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);

Dzięki temu możesz odtwarzać filmy w zwolnionym tempie, nie martwiąc się o to, do obsługi tych specjalnych formatów. Wystarczy przechowywać i odtwarzać skróconą wersję filmu, a nie oryginału.