Desteklenen biçimler

Genel olarak medya biçimlerine giriş için ExoPlayer destekli biçimler sayfasını inceleyin. Transformer, ExoPlayer'ın paketlenmiş yazılım kod çözücü modüllerini desteklemese de akışları yükleme, ayıklama ve kod çözme konusunda aynı sınırlamalar Transformer için de geçerlidir.

Transformer, kodlama için de MediaCodec kullanır ve çıkış medya dosyalarını çoklaması (mux) gerekir. Bu durum, desteklenen çıkış biçimlerini sınırlar. Kodlama sınırlamaları hakkında daha fazla bilgi için MediaCodec video codec'leri, çıkış medya kapsayıcısında geçerli olan sınırlamalar için ise MediaMuxer başlıklı makaleyi inceleyin. Transformer yalnızca MP4 dosyaları oluşturur.

Transformer varsayılan olarak MediaMuxer kullanır ancak MediaMuxer'ın referans çerçevesi yapıları ve desteklenen örnek biçimlerle ilgili bazı sınırlamalarını önlemek için isteğe bağlı olarak InAppMuxer kullanılabilir. Varsayılan muxer, gelecekteki bir sürümde uygulama içi muxer olacaktır.

Resim desteği

Transformer, tüm resim öğelerini yüklemek ve kodunu çözmek için BitmapFactory kullanır. Bu nedenle Transformer, BitmapFactory'nin desteklediği tüm biçimleri destekler. Desteklenen resim türleri için Resim desteği bölümüne bakın. Çok resimli biçimlerde (ör. GIF'ler) DefaultAssetLoaderFactory kullanılırsa kapsayıcıdan tek bir resim karesi gösterilir.

Özel biçimler

Transformer, geleneksel biçimlere kıyasla özel özellikler sunan yeni medya biçimlerindeki girişlerin işlenmesini destekler.

HDR videoları işleme

HDR video çekimini destekleyen cihazların sayısı giderek artıyor. Bu sayede daha canlı ve doğru renkler elde ediliyor ve daha geniş bir parlaklık aralığı sunuluyor.

Transformer, gerekli kodlama desteğine sahip cihazlarda Android 13 (API düzeyi 33) ve sonraki sürümlerdeki HDR videoların düzenlenmesini destekler. HDR videolar düzenlenirken tüm GL video efektlerinin 16 bit kayan nokta renk bileşenlerini ve BT.2020 renk alanını işlemesi gerekir. HDR_MODE_KEEP_HDR, Composition oluşturulurken varsayılan moddur. HDR düzenleme desteklenmiyorsa dönüştürücü, HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL kullanmaya geri döner.

Ton eşleme olarak da bilinen HDR'yi SDR'ye dönüştürme, Android 10 (API düzeyi 29) ve sonraki sürümlerde gerekli kod çözme ve OpenGL desteğine sahip cihazlarda desteklenir. Bu özellik, HDR içerik alımını desteklemeyen diğer uygulamalara veya hizmetlere HDR medya paylaşırken kullanışlıdır. OpenGL kullanarak ton eşlemeyi etkinleştirmek için setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL) oluştururken Composition çağrısı yapın. Android 12'den (API düzeyi 31) itibaren MediaCodec HDR video çekebilen Android 13 veya sonraki sürümlerin yüklü olduğu tüm cihazlar da dahil olmak üzere bazı cihazlarda ton eşleme de desteklenir. MediaCodec çağrısını kullanarak ton eşlemeyi etkinleştirmek için setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC).

Ağır çekim medyaları işleme

Ağır çekim videolar, akışın her bölümünün oynatılması gereken hızı belirten meta veriler içerir. Düzleştirme, yavaşlatılmış videoya dayalı yeni bir video akışı oluşturma işlemidir. Bu işlemde, bölümler meta verilere göre hızlandırılır veya yavaşlatılır. Böylece, yavaşlatılmış meta verileri uygulamayan oynatıcılarda bile doğru şekilde oynatılır.

Yavaş hareketli akışları düzleştirmek için setFlattenForSlowMotion oluşturucu yöntemini EditedMediaItem üzerinde kullanın.

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);

Bu sayede, bu özel biçimleri işleme konusunda endişelenmenize gerek kalmadan ağır çekim videoları destekleyebilirsiniz. Tek yapmanız gereken, videonun orijinali yerine düzleştirilmiş sürümünü saklayıp oynatmak.