Obsługiwane formaty multimediów

Ten dokument opisuje obsługę kodeków multimedialnych, kontenerów i protokołów sieciowych na platformie Android.

Tabele poniżej opisują formaty multimediów obsługiwane przez platformę Android. Odpowiedź „TAK” oznacza, że format jest dostępny na urządzeniach przenośnych i tabletach z wszystkimi wersjami Androida. Jeśli określono konkretną platformę Androida, format jest dostępny na telefonach i tabletach z tą wersją oraz we wszystkich nowszych wersjach. Format może być też dostępny w wersjach wcześniejszych, ale nie jest to gwarantowane. W przypadku formatów innych niż telefony komórkowe i tablety obsługa formatów multimediów może się różnić.

Pamiętaj, że dane urządzenie mobilne może obsługiwać dodatkowe formaty lub typy plików, które nie są wymienione w tych tabelach. Jeśli dodatkowo używasz MediaCodec bezpośrednio, możesz uzyskać dostęp do dowolnego z dostępnych formatów multimediów niezależnie od obsługiwanych typów plików i formatów kontenerów.

Wsparcie audio

Format za pomocą kodera. Dekoder Typy plików Formaty kontenerów Szczegóły
Ekstraktor Muxer
AAC LC TAK TAK • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF nieobsługiwany)
• MPEG-TS (.ts, nie można przeskakiwać, Android 3.0+)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF nieobsługiwany)
• MPEG-TS (niepewne) (.ts, nieobsługiwane przeskakiwanie, Android 3.0 lub nowszy)
Obsługa treści mono/stereo/5.0/5.1 z standardową częstotliwością próbkowania od 8 do 48 kHz.
HE-AACv1 (AAC+) Android 4.1 lub nowszy TAK
HE-AACv2 (ulepszone AAC+)   TAK Obsługa treści stereo/5.0/5.1 ze standardową częstotliwością próbkowania od 8 do 48 kHz.
xHE-AAC   Android 9 lub nowszy Obsługa treści z maksymalnie 8 kanałami przy standardowych częstotliwościach próbkowania od 8 do 48 kHz
AAC ELD (ulepszona wersja AAC o małym opóźnieniu) Android 4.1 lub nowszy Android 4.1 lub nowszy Obsługa treści mono lub stereo ze standardową częstotliwością próbkowania od 16 do 48 kHz
AMR-NB TAK TAK • 3GPP (.3gp)
• AMR (.amr)
• 3GPP (.3gp)
• AMR (.amr)
4,75–12,2 kb/s próbkowane z częstotliwością 8 kHz
AMR-WB TAK TAK 9 szybkości od 6,60 kb/s do 23,85 kb/s z próbkowaniem 16 kHz
FLAC Android 4.1 lub nowszy Android 3.1 lub nowszy • FLAC (.flac)
• MPEG-4 (.mp4, .m4a, Android 10 lub nowszy)
• Matroska (.mkv)
Mono/Stereo (bez kanałów dodatkowych). Częstotliwości próbkowania do 48 kHz (ale na urządzeniach z wyjściami 44,1 kHz zalecamy stosowanie częstotliwości do 44,1 kHz, ponieważ konwerter w dół z 48 kHz na 44,1 kHz nie zawiera filtra dolnoprzepustowego). Zalecamy 16-bitową rozdzielczość. W przypadku 24-bitowej rozdzielczości nie stosuje się ditheringu.
MIDI   TAK • Typ 0 i 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
Typ MIDI 0 i 1. DLS w wersji 1 i 2. XMF i Mobile XMF. Obsługa formatów dzwonków RTTTL/RTX, OTA i iMelody
MP3   TAK • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10 lub nowszy)
• Matroska (.mkv, Android 10 lub nowszy)
Mono/Stereo 8–320 kb/s CBR lub VBR
Opus Android 10 lub nowszy Android 5.0 lub nowszy • Ogg (.ogg)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• Ogg (.ogg)
WebM (.webm)
PCM/WAVE Android 4.1 lub nowszy TAK WAVE (.wav) 8- i 16-bitowy PCM liniowy (szybkość do limitu sprzętowego). Częstotliwości próbkowania dla nieprzetworzonych nagrań PCM o częstotliwości 8000, 16000 i 44100 Hz.
Vorbis   TAK • Ogg (.ogg)
• Matroska (.mkv, Android 4.0 lub nowszy)
• MPEG-4 (.mp4, .m4a, Android 10 lub nowszy)
WebM (.webm)  

Obsługa filmów

Formaty wideo

Format za pomocą kodera. Dekoder Typy plików Formaty kontenerów Szczegóły
Ekstraktor Muxer
H.263 TAK TAK • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
Obsługa H.263 jest opcjonalna w Androidzie 7.0 i nowszych
H.264 AVC
profil podstawowy (BP)
Android 3.0+ TAK • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, tylko dźwięk AAC, brak możliwości przeskakiwania, Android 3.0+)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
H.264 AVC
Profil główny (MP)
Android 6.0 lub nowszy TAK Dekoder jest wymagany, a koder jest zalecany.
H.265 HEVC Android 5.0 lub nowszy • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) Profil główny na poziomie 3 na urządzeniach mobilnych i profil główny na poziomie 4.1 na Androidzie TV
MPEG-4 SP   TAK • MPEG-4 (.mp4) • MPEG-4 (.mp4)  
VP8 Android 4.3 lub nowszy Android 2.3.3 lub nowszy WebM (.webm)
• Matroska (.mkv, Android 4.0 lub nowszy)
WebM (.webm) Możliwość przesyłania strumieniowego tylko w Androidzie 4.0 lub nowszym
VP9 Android 4.4 lub nowszy WebM (.webm)
• Matroska (.mkv)
• MPEG-4 (.mp4)
WebM (.webm)
AV1 Android 14 lub nowszy Android 10 lub nowszy • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) Koder i dekoder są obowiązkowe od wersji Android 14.
APV Android 16 lub nowszy Android 16 lub nowszy • MPEG-4 (.mp4) • MPEG-4 (.mp4) Koder i dekoder są obowiązkowe od Androida 16.

Rekomendacje dotyczące kodowania filmów

Tabela poniżej zawiera listę profili i parametrów kodowania wideo w ramach frameworku multimediów na Androida zalecanych do odtwarzania za pomocą profilu podstawowego kodeka H.264. Te same zalecenia dotyczą profilu głównego, który jest dostępny tylko w Androidzie 6.0 i nowszych.

  SD (niska jakość) SD (wysoka jakość) HD 720p (nie dotyczy na wszystkich urządzeniach)
Rozdzielczość wideo 176 x 144 pikseli 480 x 360 pikseli 1280 x 720 pikseli
liczba klatek na sekundę, 12 kl./s 30 klatek/s 30 klatek/s
Szybkość transmisji wideo 56 kb/s 500 Kb/s 2 Mb/s
Kodek audio AAC-LC AAC-LC AAC-LC
Kanały audio 1 (mono) 2 (stereo) 2 (stereo)
Szybkość transmisji dźwięku 24 Kb/s 128 Kb/s 192 kb/s

Tabela poniżej zawiera profile i parametry kodowania wideo w ramach platformy multimedialnej Androida zalecane do odtwarzania za pomocą kodeka multimedialnego VP8.

  SD (niska jakość) SD (wysoka jakość) HD 720p (nie dotyczy na wszystkich urządzeniach) HD 1080p (nie dotyczy wszystkich urządzeń)
Rozdzielczość wideo 320 x 180 pikseli 640 x 360 pikseli 1280 x 720 pikseli 1920 x 1080 piks.
liczba klatek na sekundę, 30 klatek/s 30 klatek/s 30 klatek/s 30 klatek/s
Szybkość transmisji wideo 800 Kb/s 2 Mb/s 4 Mb/s 10 Mb/s

Rekomendacje dotyczące dekodowania filmów

Implementacje urządzeń muszą obsługiwać dynamiczną zmianę rozdzielczości i częstotliwości klatek za pomocą standardowych interfejsów API Androida w ramach tego samego strumienia dla wszystkich kodeków VP8, VP9, H.264 i H.265 w czasie rzeczywistym oraz do maksymalnej rozdzielczości obsługiwanej przez każdy z tych kodeków na urządzeniu.

Implementacje obsługujące dekoder Dolby Vision muszą spełniać te wytyczne:

  • Podaj narzędzie do wyodrębniania danych obsługujące Dolby Vision.
  • Prawidłowo wyświetlać treści Dolby Vision na ekranie urządzenia lub na standardowym wyjściu wideo (np. HDMI).
  • Ustaw indeks ścieżki warstw podstawowych zgodnych wstecznie (jeśli są obecne) tak, aby był taki sam jak indeks ścieżki połączonej warstwy Dolby Vision.

Wymagania dotyczące strumieniowego przesyłania filmów

W przypadku treści wideo przesyłanych strumieniowo przez HTTP lub RTSP obowiązują dodatkowe wymagania:

  • W przypadku kontenerów 3GPP i MPEG-4 atom moov musi poprzedzać dowolny atom mdat, ale musi być poprzedzony atomem ftyp.
  • W przypadku kontenerów 3GPP, MPEG-4 i WebM próbki audio i wideo odpowiadające temu samemu przesunięciu czasowym mogą różnić się o nie więcej niż 500 KB. Aby zminimalizować różnice między dźwiękiem a obrazem, rozważ przeplatanie dźwięku i obrazu w mniejszych fragmentach.

Obsługa obrazu

Format za pomocą kodera. Dekoder Szczegóły Typy plików
Formaty kontenerów
BMP   TAK   BMP (.bmp),
GIF   TAK   GIF (.gif)
JPEG TAK TAK Podstawowy + progresywny JPEG (.jpg)
PNG TAK TAK   PNG (.png)
WebP Android 4.0 lub nowszy
Bezstratna kompresja: Android 10 lub nowszy
Przezroczystość: Android 4.2.1 lub nowszy
Android 4.0 lub nowszy
Bezstratne: Android 4.2.1 lub nowszy
Przejrzystość: Android 4.2.1 lub nowszy
Bezstratne kodowanie można uzyskać na Androidzie 10, używając jakości 100. WebP (.webp),
HEIF   Android 8.0+   HEIF (.heic; .heif)
AVIF (profil podstawowy) Android 14 lub nowszy Android 14 lub nowszy Koder i dekoder są obowiązkowe od wersji Android 14. AVIF (.avif)

Protokoły sieciowe

W przypadku odtwarzania dźwięku i obrazu obsługiwane są te protokoły sieciowe:

  • RTSP (RTP, SDP)
  • strumieniowe przesyłanie danych w formacie HTTP/HTTPS,
  • Transmisja na żywo przez HTTP/HTTPS protokółu draft:
    • tylko pliki multimedialne MPEG-2 TS;
    • Wersja protokołu 3. Android 4.0 lub nowszy
    • Wersja protokołu 2, Android 3.x
    • Nieobsługiwane w wersjach starszych niż Android 3.0

Uwaga: HTTPS nie jest obsługiwany w wersjach Androida starszych niż 3.1.

Formaty filmów HDR

Producenci OEM mogą włączyć dowolny format HDR za pomocą architektury HDR Androida, która zapewnia podstawowe potrzeby formatów HDR: 10-bitowe bufory, metadane (statyczne, dynamiczne i brak), funkcję przenoszenia i obsługę przestrzeni barw.

Aby zapewnić spójność dla deweloperów i uwzględnić kluczowe przypadki użycia HDR, wymagamy od producentów OEM obsługi kilku formatów podstawowych na urządzeniach obsługujących HDR:

  • W przypadku odtwarzania profesjonalnych treści, takich jak filmy strumieniowe, wymagamy HDR10.
  • W przypadku rejestrowania i odtwarzania treści generowanych przez użytkowników wymagamy HLG10, aby zapewnić spójne działanie na wszystkich urządzeniach z Androidem.

Producenci OEM, którzy dodają obsługę HDR, muszą obsługiwać te formaty, ale mogą też obsługiwać dodatkowe formaty, takie jak HDR10+ lub Dolby Vision.

Format Funkcja przenoszenia Metadane Kodek Głębia bitowa
HLG10 HLG Nie HEVC 10-bitowy
HDR10 PQ Statyczny HEVC 10-bitowy
HDR10+ PQ Statyczny HEVC 10-bitowy
Dolby Vision 8.4 HLG Dynamiczne HEVC 10-bitowy

Rekomendacje dotyczące formatu

Format nagrywania Format przesyłania Format dostarczania
HLG Wsparcie backendu aplikacji HDR HLG Urządzenia obsługujące HDR (HLG):

HLG

Urządzenia obsługujące HDR (bez obsługi HLG, tylko PQ):

SDR (mapa tonów z HLG na SDR na zapleczu)

Urządzenia, które nie obsługują HDR: SDR (mapowanie tonacji z HLG na SDR na zapleczu)

Przypadek 2. Natywne przechwytywanie za pomocą aparatu lub importowanie z galerii użytkownika (back-end aplikacji obsługuje HDR)

Format nagrywania Format przesyłania Format dostarczania
HLG HLG Taki sam jak w przypadku rejestrowania w aplikacji
HDR10+ HLG

Przekształcanie mapy tonalnej z HDR10+ (PQ) na HLG przed przesłaniem za pomocą interfejsów API dotyczących przekształcania

Taki sam jak w przypadku rejestrowania w aplikacji
DV8.4 HLG

(DV8.4 używa HLG, a bitstream będzie działać jak HLG, więc nie jest wymagane mapowanie tonów)

Taki sam jak w przypadku rejestrowania w aplikacji

Przypadek użycia 3. Backend aplikacji nie obsługuje HDR

Format nagrywania Format przesyłania Format dostarczania
dowolny format, SDR

mapowanie tonacji z HLG na SDR przed przesłaniem za pomocą interfejsów API transformera;

SDR