ExoPlayer'ın desteklediği biçimleri tanımlarken, makine öğreniminin "medya biçimleri" birden çok düzeyde tanımlanır. En düşük seviyeden en yüksek olanları şunlardır:
- Bağımsız medya örneklerinin biçimi (video karesi veya kare gibi) . Bunlar örnek biçimlerdir. Tipik bir video dosyasının en az iki örnek biçimde medya içermeli, video için bir (örneğin, H.264) ve ses için (örneğin, AAC).
- Medya örneklerini barındıran ve ilişkili kapsayıcının biçimi meta verilerdir. Bunlar kapsayıcı biçimleridir. Medya dosyasının tek bir kapsayıcısı vardır biçimindedir (örneğin, MP4). Not bazı yalnızca ses biçimleri (örneğin, MP3), örnek ve kapsayıcı biçimleri için aynı olabilir.
- DASH, SmoothStreaming ve HLS gibi uyarlanabilir akış teknolojileri. Bu bu tür medya biçimleri değildir; ancak yine de hangi reklamların ne zaman aşağıdaki adımları izleyin.
Aşağıdaki bölümlerde ExoPlayer'ın desteğinin her bir düzeyde, en yüksekten başlayıp en yüksek düzeye kadar tanımlanmaktadır. en düşük olanı seçin. Son iki bölümde bağımsız altyazı biçimleri için destek açıklanmaktadır ve HDR video oynatma gibi özellikleri kullanır.
Uyarlanabilir akış
DASH
ExoPlayer, birden çok kapsayıcı biçimiyle DASH'i destekler. Medya akışları:
demuxed; yani video, ses ve metnin farklı
DASH manifestindeki AdaptationSet
öğeleri (CEA-608,
) kullanılabilir. İçerikteki ses ve video örnek biçimleri,
(bkz.
örnek biçimler bölümüne bakın).
Özellik | Destekleniyor | Yorumlar |
---|---|---|
Kapsayıcılar | ||
FMP4 | EVET | Yalnızca devre dışı bırakılan akışlar |
WebM | EVET | Yalnızca devre dışı bırakılan akışlar |
Matroska | EVET | Yalnızca devre dışı bırakılan akışlar |
MPEG-TS | HAYIR | Planlanmış destek yok |
Altyazılar | ||
TTML | EVET | ISO/IEC 14496-30'a uygun olarak ham veya FMP4'e yerleştirilmiştir |
WebVTT | EVET | ISO/IEC 14496-30'a uygun olarak ham veya FMP4'e yerleştirilmiştir |
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" schema: API 19+; "Cbcs" şema: API 25+ |
PlayReady SL2000 | EVET | Android TV, "cenc" yalnızca şema |
Anahtarı Temizle | EVET | API 21+, "cenc" yalnızca şema |
Canlı oynatma | ||
Düzenli canlı oynatma | EVET | |
Ultra düşük gecikmeli CMAF canlı oynatma | EVET | |
Ortak Medya İstemci Verileri (CMCD) | EVET | Entegrasyon Kılavuzu |
Düzgün yayın
ExoPlayer, FMP4 kapsayıcı biçimiyle SmoothStreaming'i destekler. Medya akışları Para kazanma özelliği devre dışı bırakılmalıdır; diğer bir deyişle, video, ses ve metin ayrı ayrı tanımlanmalıdır. SmoothStreaming manifestindeki StreamIndex öğeleri. İçerikteki ses ve video örnek biçimleri de desteklenmelidir (bkz. örnek biçimler bölümüne bakın).
Özellik | Destekleniyor | Yorumlar |
---|---|---|
Kapsayıcılar | ||
FMP4 | EVET | Yalnızca devre dışı bırakılan akışlar |
Altyazılar | ||
TTML | EVET | FMP4'e yerleştirilmiş |
İçerik koruması | ||
PlayReady SL2000 | EVET | Yalnızca Android TV |
Canlı oynatma | ||
Düzenli canlı oynatma | EVET | |
Ortak Medya İstemci Verileri (CMCD) | EVET | Entegrasyon Kılavuzu |
HLS
ExoPlayer, birden fazla container biçimiyle HLS'yi destekler. İçerikteki ses ve video örnek biçimleri de desteklenmelidir (bkz. örnek biçimler bölümüne bakın). Biz HLS içerik üreticilerini yüksek kaliteli HLS akışları oluşturmaya kesinlikle teşvik eder. açıklandığı gibi burada bulabilirsiniz.
Ö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 | ||
Kimlik 3 | EVET | |
SCTE-35 | HAYIR | |
İçerik koruması | ||
AES-128 | EVET | |
Örnek AES-128 | HAYIR | |
Widevine | EVET | API 19+ ("cenc" şeması) ve 25+ ("cbcs" şeması) |
PlayReady SL2000 | EVET | Yalnızca Android TV |
Sunucu denetimi | ||
Delta güncellemeleri | EVET | |
Oynatma listesinin yeniden yüklenmesini engelleme | EVET | |
Önceden yükleme ipuçlarının yüklenmesini engelleme | EVET | Uzunlukları tanımlanmamış bayt aralıkları hariç |
Canlı oynatma | ||
Düzenli canlı oynatma | EVET | |
Düşük gecikmeli HLS (Apple) | EVET | |
Düşük gecikmeli HLS (Topluluk) | HAYIR | |
Ortak Medya İstemci Verileri (CMCD) | EVET | Entegrasyon Kılavuzu |
Progresif kapsayıcı biçimleri
Aşağıdaki kapsayıcı biçimlerindeki akışlar doğrudan ExoPlayer tarafından oynatılabilir. İçerilen ses ve video örnek biçimleri de desteklenmelidir (bkz. Örnek biçimler bölümüne bakın). Görüntü kapsayıcısı ve biçim desteği için bkz. Resimler.
Kapsayıcı biçimi | Destekleniyor | Yorumlar |
---|---|---|
MP4 | EVET | |
M4A | EVET | |
FMP4 | EVET | |
WebM | EVET | |
Matroska | EVET | |
MP3 | EVET | Bazı canlı yayınlarda yalnızca sabit bit hızı sarması ile arama yapılabilir.** |
Ogg | EVET | Vorbis, Opus ve FLAC içerir |
WAV | EVET | |
MPEG-TS | EVET | |
MPEG-PS | EVET | |
FLV | EVET | Aranamaz* |
ADTS (AAC) | EVET | Yalnızca sabit bit hızında sarma kullanıldığında aranabilir** |
FLAC | EVET | FLAC kitaplığını veya ExoPlayer kitaplığındaki FLAC ayıklayıcısını kullanarak*** |
AMR | EVET | Yalnızca sabit bit hızında sarma kullanıldığında aranabilir** |
* Kapsayıcı meta veri (örneğin, örnek dizin) kullanarak bir medya oynatıcının verimli bir şekilde arama yapmasını sağlar. Sarma işlemi gerekiyorsa daha uygun bir kapsayıcı biçimi kullanmanızı öneririz.
** Bu ayıklayıcılarda FLAG_ENABLE_CONSTANT_BITRATE_SEEKING
işareti vardır
Sabit bit hızı varsayımı kullanarak yaklaşık sarma özelliğini etkinleştirme. Bu
işlevi varsayılan olarak etkin değildir. Bunu etkinleştirmenin en basit yolu
destekleyen tüm ayıklayıcılar için otomatik olarak
Açıklandığı şekliyle DefaultExtractorsFactory.setConstantBitrateSeekingEnabled
burada bulabilirsiniz.
*** FLAC kitaplığı ayıklayıcısı, işlenebilecek ham ses çıkışını sağlar.
tüm API düzeylerinde
çerçeveye göre değerlendirebiliriz. ExoPlayer kitaplığı FLAC ayıklayıcı çıkışları
FLAC ses kareleri ve bu nedenle bir FLAC kod çözücü (örneğin, MediaCodec
FLAC'yi işleyen kod çözücü (API düzeyi 27'den itibaren gereklidir) veya
FLAC özellikli FFmpeg kitaplığı). DefaultExtractorsFactory
,
uygulama FLAC kitaplığı ile oluşturulmuşsa uzantı ayıklayıcıyı kullanın.
Aksi takdirde, ExoPlayer kitaplığı ayıklayıcısını kullanı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çimler
- H264 (STP medya açıklaması, fmtp dosyasındaki SPS/PPS verilerini içermelidir) özelliğini kullanabilirsiniz.
- AAC (ADTS bit akışı ile).
- AC3.
Desteklenen ağ türleri
- UDP tek noktaya yayın üzerinden RTP (çoklu yayın desteklenmez).
- Boşluklu RTSP, TCP kullanılarak RTSP üzerinden RTP.
Örnek biçimler
ExoPlayer, varsayılan olarak Android'in platform kod çözücülerini kullanır. Bu nedenle desteklenen örnek biçimleri ExoPlayer'a değil, temel platforma bağlıdır. Daha fazla bilgi için Desteklenen medya biçimleri dokümanlarına göz atabilirsiniz. Lütfen cihaz, listelenenlerin dışında ek biçimleri destekleyebilir.
ExoPlayer, Android'in platform kod çözücülerine ek olarak yazılım kod çözücü uzantıları. Bunların manuel olarak oluşturulması ve bunlardan faydalanmak isteyen projelerdir. Şu anda kod çözücü yazılımı sunuyoruz için kütüphaneler AV1 VP9, FLAC, Opus ve FFmpeg.
FFmpeg kitaplığı
FFmpeg kitaplığı şunları destekler: ve farklı ses örneği biçimlerinin kodunu çözmeyi başardık. Kampanya performansını kitaplığını oluştururken dahil edilecek kod çözücüler kitaplığının README.md öğesini destekler. İlgili içeriği oluşturmak için kullanılan aşağıdaki tabloda ses örneği biçiminden karşılık gelen FFmpeg kod çözücü adı.
Örnek biçim | Kod çözücü adları |
---|---|
Vorbis | Vorbis |
Opus | Opus |
FLAC | Flac |
ALAK | Alac |
PCM μ-yasalı | pcm_mulaw |
PCM A-Yasası | pcm_alaw |
MP1, MP2, MP3 | mp3 |
AMR ve NB | Amrnb |
AMR-WB | Amrwb |
AAC | aac |
KK-3 | ac3 |
E-AC-3 | eac3 |
DTS, DTS-HD | DCA |
Doğru HD | mlp truehd |
Resimler
ExoPlayer aşağıdaki resim biçimlerini destekler. Görüntüleyin Resim Yükleme Kitaplıkları için destek sağlayabilecek harici kitaplıklarla nasıl farklı biçim grubu.
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 veya sonraki sürümlerden önce SDR'ye dönerse HDR olmayan ekranlar |
PNG | EVET | |
WebP | EVET | |
HEIF/HEIC | EVET | |
HEIC Hareketli Fotoğraf | Kısmen | Yalnızca hareketsiz resim desteklenir* |
AVIF (referans değer) | EVET | Yalnızca Android 14 ve sonraki sürümlerde kod çözülmüş |
* HEIC hareketli fotoğrafların video kısmı MetadataRetriever ve tek başına bir dosya olarak oynatılır.
Bağımsız altyazı biçimleri
ExoPlayer, çeşitli biçimlerdeki bağımsız altyazı dosyalarını destekler. Alt başlık dosyaları, medya öğeleri sayfasında açıklandığı gibi farklı yöntemle yüklenebilir.
Kapsayıcı biçimi | Destekleniyor | MIME türü |
---|---|---|
WebVTT | EVET | MimeTürleri.TEXT_VTT |
TTML / SMPTE-TT | EVET | MimeTürleri.APPLICATION_TTML |
SubRip | EVET | MimeTürleri.APPLICATION_SUBRIP |
SubStationAlpha (SSA/ASS) | EVET | MimeTürleri.TEXT_SSA |
HDR video oynatma
ExoPlayer, çeşitli boyutlardaki yüksek dinamik aralıklı (HDR) videoları ayıklama işlemini gerçekleştirebilir MP4'te Dolby Vision ve Matroska/WebM'de HDR10+ dahil. Kod çözme HDR içeriğin görüntülenmesi, Android platformunun ve olanak tanır. Görüntüleyin HDR Video Oynatma HDR kod çözme/görüntüleme özelliklerini ve video çözünürlüğünü kontrol etme hakkında Android sürümlerinde HDR desteği.
Belirli bir codec profili için destek gerektiren bir HDR yayını oynatırken
ExoPlayer'ın varsayılan MediaCodec
seçicisi, bunu destekleyen bir kod çözücü seçer
profili (varsa) kullanılabilir. Ayrıca, bu MIME türü için aynı MIME türü için
bu profilin codec listesinde daha yukarıda görünmesini desteklemez. Bu,
akışın akış sınırını aştığı durumlarda, yazılım kod çözücü
özellikleri kullanılabilir.