Desteklenen biçimler

ExoPlayer'ın desteklediği biçimleri tanımlarken "medya biçimlerinin" birden fazla düzeyde tanımlandığını unutmayın. En düşükten en yükseğe doğru sırasıyla:

  • Medya örneklerinin biçimi (ör. video karesi veya ses karesi). Bunlar örnek biçimlerdir. Tipik bir video dosyasının en az iki örnek biçiminde medya içerdiğini unutmayın: biri video (ör. H.264) ve biri ses (ör. AAC).
  • Medya örneklerini ve ilişkili meta verileri barındıran kapsayıcının biçimi. Bunlar kapsayıcı biçimleridir. Medya dosyalarının tek bir kapsayıcı biçimi (ör. MP4) vardır ve bu biçim genellikle dosya uzantısında belirtilir. Yalnızca işitsel olan bazı biçimler (ör. MP3) için örnek ve kapsayıcı biçimlerinin aynı olabileceğini unutmayın.
  • DASH, SmoothStreaming ve HLS gibi uyarlanabilir akış teknolojileri. Bunlar medya biçimleri değildir ancak ExoPlayer'ın ne düzeyde destek sağladığını tanımlamak yine de gereklidir.

Aşağıdaki bölümlerde, ExoPlayer'ın en yüksekten en düşüğe her düzeyde sunduğu destek tanımlanmaktadır. Son iki bölümde, bağımsız altyazı biçimleri ve HDR video oynatma desteği açıklanmaktadır.

Uyarlanabilir akış

DASH

ExoPlayer, DASH'ı birden fazla kapsayıcı biçimiyle destekler. Medya akışları, video, ses ve metnin DASH manifestinde ayrı AdaptationSet öğelerinde tanımlanması gerektiği anlamına gelen bir şekilde demuxed olmalıdır (CEA-608, aşağıdaki tabloda açıklandığı gibi bir istisnadır). İçerdiği ses ve video örnek biçimleri de desteklenmelidir (ayrıntılar için örnek biçimleri bölümüne bakın).

Özellik Destekleniyor Yorumlar
Kapsayıcılar
FMP4 EVET Yalnızca demuxed akışlar
WebM EVET Yalnızca demuxed akışlar
Matroska EVET Yalnızca demuxed akışlar
MPEG-TS HAYIR Planlanmış destek yok
Altyazılar
TTML EVET Ham veya ISO/IEC 14496-30'a göre FMP4'e yerleştirilmiş
WebVTT EVET Ham veya ISO/IEC 14496-30'a göre FMP4'e yerleştirilmiş
CEA-608 EVET SCTE Erişilebilirlik tanımlayıcıları kullanılarak sinyal verildiğinde FMP4'e yerleştirilir
CEA-708 EVET SCTE Erişilebilirlik tanımlayıcıları kullanılarak sinyal verildiğinde FMP4'e yerleştirilir
Meta veri
EMSG meta verileri EVET FMP4'e yerleştirilmiş
İçerik koruması
Widevine EVET "cenc" şeması: API 19 ve üzeri; "cbcs" şeması: API 25 ve üzeri
PlayReady SL2000 EVET Android TV, yalnızca "cenc" şeması
ClearKey EVET API 21 ve üzeri, yalnızca "cenc" şeması
Canlı oynatma
Normal canlı oynatma EVET
Ultra düşük gecikmeli CMAF canlı oynatma EVET
Ortak Medya İstemcisi Verileri (CMCD) EVET Entegrasyon Kılavuzu

SmoothStreaming

ExoPlayer, FMP4 kapsayıcı biçimiyle SmoothStreaming'i destekler. Medya akışları, video, ses ve metnin SmoothStreaming manifest'indeki farklı StreamIndex öğelerinde tanımlanması gerektiği anlamına gelen bir şekilde birleştirilmelidir. İçerdiği ses ve video örnek biçimleri de desteklenmelidir (Ayrıntılar için örnek biçimleri bölümüne bakın).

Özellik Destekleniyor Yorumlar
Kapsayıcılar
FMP4 EVET Yalnızca demuxed akışlar
Altyazılar
TTML EVET FMP4'e yerleştirilmiş
İçerik koruması
PlayReady SL2000 EVET Yalnızca Android TV
Canlı oynatma
Normal canlı oynatma EVET
Ortak Medya İstemcisi Verileri (CMCD) EVET Entegrasyon Kılavuzu

HLS

ExoPlayer, birden fazla kapsayıcı biçimiyle HLS'yi destekler. İçerdiği ses ve video örnek biçimleri de desteklenmelidir (Ayrıntılar için örnek biçimleri bölümüne bakın). HLS içerik üreticilerini, burada açıklandığı gibi yüksek kaliteli HLS akışları oluşturmaya teşvik ediyoruz.

Özellik Destekleniyor Yorumlar
Kapsayıcılar
MPEG-TS EVET
FMP4/CMAF EVET
ADTS (AAC) EVET
MP3 EVET
Altyazılar
CEA-608 EVET
CEA-708 EVET
WebVTT EVET
Meta veri
ID3 EVET
SCTE-35 HAYIR
İçerik koruması
AES-128 EVET
Örnek AES-128 HAYIR
Widevine EVET API 19 ve üzeri ("cenc" şeması) ve 25 ve üzeri ("cbcs" şeması)
PlayReady SL2000 EVET Yalnızca Android TV
Sunucu kontrolü
Delta güncellemeleri EVET
Oynatma listesinin yeniden yüklenmesini engelleme EVET
Önceden yükleme ipuçlarının yüklenmesini engelleme EVET Uzunluğu tanımlanmamış bayt aralıkları hariç
Canlı oynatma
Normal canlı oynatma EVET
Düşük gecikmeli HLS (Apple) EVET
Düşük gecikmeli HLS (Topluluk) HAYIR
Ortak Medya İstemcisi Verileri (CMCD) EVET Entegrasyon Kılavuzu

Kademeli kapsayıcı biçimleri

Aşağıdaki kapsayıcı biçimlerindeki akışlar doğrudan ExoPlayer tarafından oynatılabilir. İçerdiği ses ve video örnek biçimleri de desteklenmelidir (Ayrıntılar için Örnek biçimleri bölümüne bakın). Resim kapsayıcısı ve biçim desteği için Resimler bölümüne bakın.

Kapsayıcı biçimi Destekleniyor Yorumlar
MP4 EVET
M4A EVET
FMP4 EVET
WebM EVET
Matroska EVET
MP3 EVET Bazı akışlar yalnızca sabit bit hızı araması kullanılarak aranabilir**
Ogg EVET Vorbis, Opus ve FLAC içeren
WAV EVET
MPEG-TS EVET
MPEG-PS EVET
FLV EVET Atlanabilir değil*
ADTS (AAC) EVET Yalnızca sabit bit hızı araması kullanılarak aranabilir**
FLAC EVET FLAC kitaplığını veya ExoPlayer kitaplığındaki FLAC çıkarıcısını kullanma***
AMR EVET Yalnızca sabit bit hızı araması kullanılarak aranabilir**

* Kapsayıcı, medya oynatıcının etkili bir şekilde ilerleme yapmasına olanak tanıyacak meta veriler (ör. örnek dizin) sağlamadığından ilerleme desteklenmez. Arama yapılması gerekiyorsa daha uygun bir kapsayıcı biçimi kullanmanızı öneririz.

** Bu ayıklayıcılar, sabit bit hızı varsayımı kullanılarak yaklaşık aramayı etkinleştirmek için FLAG_ENABLE_CONSTANT_BITRATE_SEEKING işaretlerine sahiptir. Bu işlev varsayılan olarak etkin değildir. Bu işlevi destekleyen tüm ayıklayıcılarda etkinleştirmenin en kolay yolu, burada açıklandığı gibi DefaultExtractorsFactory.setConstantBitrateSeekingEnabled kullanmaktır.

*** FLAC kitaplığı çıkarıcı, tüm API düzeylerinde çerçeve tarafından işlenebilir ham ses çıkışı sağlar. ExoPlayer kitaplığı FLAC çıkarıcı, FLAC ses çerçeveleri çıkışı verir ve bu nedenle bir FLAC kod çözücüye (ör. FLAC'ı işleyen bir MediaCodec kod çözücü (API düzeyi 27'den itibaren gereklidir) veya FLAC'ın etkin olduğu FFmpeg kitaplığı) ihtiyaç duyar. Uygulama FLAC kitaplığı ile oluşturulduysa DefaultExtractorsFactory, uzantı çıkarıcıyı kullanır. Aksi takdirde ExoPlayer kitaplığı çıkarıcı kullanılır.

RTSP

ExoPlayer hem canlı hem de isteğe bağlı RTSP'yi destekler. Desteklenen örnek biçimler ve ağ türleri aşağıda listelenmiştir.

Desteklenen örnek biçimleri

  • H264 (SDP medya açıklaması, kod çözücü başlatma için fmtp özelliğinde SPS/PPS verilerini içermelidir).
  • AAC (ADTS bit akışı ile).
  • AC3.

Desteklenen ağ türleri

  • UDP tek yayın üzerinden RTP (çoklu yayın desteklenmez).
  • TCP kullanan RTSP üzerinden RTP, ardışık RTSP.

Örnek biçimler

ExoPlayer varsayılan olarak Android'in platform kod çözücülerini kullanır. Bu nedenle, desteklenen örnek biçimleri ExoPlayer yerine temel platforma bağlıdır. Android cihazlar tarafından desteklenen örnek biçimlerle ilgili dokümanlar için Desteklenen medya biçimleri bölümüne bakın. Cihazların, listelenenler dışında ek biçimleri de destekleyebileceğini unutmayın.

ExoPlayer, Android'in platform kod çözücülerine ek olarak yazılım kod çözücü uzantılarından da yararlanabilir. Bunlar manuel olarak oluşturulmalı ve bunlardan yararlanmak isteyen projelere dahil edilmelidir. Şu anda AV1, VP9, FLAC, Opus, FFmpeg, MIDI ve IAMF için yazılım kod çözücü kitaplıkları sağlıyoruz.

FFmpeg kitaplığı

FFmpeg kitaplığı, çeşitli ses örneği biçimlerinin kodunu çözmeyi destekler. Kitaplığı oluştururken hangi kod çözücülerin ekleneceğini kitaplığın README.md dosyasında belirtildiği gibi seçebilirsiniz. Aşağıdaki tabloda, ses örneği biçiminden ilgili FFmpeg kod çözücü adına bir eşleme sağlanmaktadır.

Örnek biçim Kod çözücü adları
Vorbis vorbis
Opus opus
FLAC flac
ALAC alac
PCM μ-law pcm_mulaw
PCM A-law pcm_alaw
MP1, MP2, MP3 mp3
AMR-NB amrnb
AMR-WB amrwb
AAC aac
AC-3 ac3
E-AC-3 eac3
DTS, DTS-HD dca
TrueHD mlp truehd

Resimler

ExoPlayer aşağıdaki resim biçimlerini destekler. Farklı bir biçim grubu için destek sağlayabilecek harici kitaplıklarla nasıl entegrasyon sağlayacağınızı öğrenmek için Resim Yükleme Kitaplıkları başlıklı makaleyi inceleyin.

Resim biçimi Destekleniyor Notlar
BMP EVET
GIF HAYIR Ayıklayıcı desteği yok
JPEG EVET
JPEG Hareketli Fotoğraf EVET Hareketsiz resim ve video desteklenir.
JPEG Ultra HDR EVET Android 14'ten önceki sürümlerde veya HDR olmayan ekranlarda SDR'ye geri döner.
PNG EVET
WebP EVET
HEIF/HEIC EVET
HEIC Hareketli Fotoğraf Kısmen Yalnızca hareketsiz resim desteklenir*
AVIF (referans) EVET Yalnızca Android 14 ve sonraki sürümlerde kodu çözülür

* HEIC hareketli fotoğrafların video kısmı MetadataRetriever ile elde edilebilir ve bağımsız bir dosya olarak oynatılabilir.

Bağımsız altyazı biçimleri

ExoPlayer, çeşitli biçimlerde bağımsız altyazı dosyalarını destekler. Altyazı dosyaları, medya öğeleri sayfasında açıklandığı şekilde harici olarak yüklenebilir.

Kapsayıcı biçimi Destekleniyor MIME türü
WebVTT EVET MimeTypes.TEXT_VTT
TTML / SMPTE-TT EVET MimeTypes.APPLICATION_TTML
SubRip EVET MimeTypes.APPLICATION_SUBRIP
SubStationAlpha (SSA/ASS) EVET MimeTypes.TEXT_SSA

HDR video oynatma

ExoPlayer, MP4'te Dolby Vision ve Matroska/WebM'de HDR10+ dahil olmak üzere çeşitli kapsayıcılarda yüksek dinamik aralıklı (HDR) videoyu ayıklama işlemini yönetir. HDR içeriğin kodunu çözme ve görüntüleme, Android platformu ve cihazın desteğine bağlıdır. HDR kod çözme/görüntüleme özelliklerini kontrol etme ve Android sürümleri genelinde HDR desteğinin sınırlamaları hakkında bilgi edinmek için HDR Video Oynatma başlıklı makaleyi inceleyin.

Belirli bir codec profilinin desteğini gerektiren bir HDR akışı oynatırken ExoPlayer'ın varsayılan MediaCodec seçicisi, codec listesinin üst kısmında aynı MIME türü için bu profili desteklemeyen başka bir kod çözücü olsa bile bu profili destekleyen bir kod çözücü (varsa) seçer. Bu durum, akış aynı MIME türü için donanım kod çözücüsünün kapasitesini aştığında yazılım kod çözücü seçilmesine neden olabilir.