Obsługiwane formaty multimediów

W tym dokumencie opisujemy kodek mediów, kontener i protokoły sieciowe udostępniane przez platformę Androida.

W tabelach poniżej znajdziesz opis obsługi formatów multimediów wbudowanej w platformę Androida. TAK oznacza, że format jest dostępny na urządzeniach mobilnych i tabletach ze wszystkimi wersjami Androida. Jeśli określona platforma Androida jest określona, format jest dostępny na telefonach i tabletach z tą wersją oraz we wszystkich nowszych wersjach. Format może też być dostępny we wcześniejszych wersjach, ale nie jest to gwarantowane. Na urządzeniach innych niż telefony 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órych nie ma w tych tabelach. Dodatkowo w przypadku bezpośredniego użycia MediaCodec możesz uzyskać dostęp do dowolnych dostępnych formatów multimedialnych, niezależnie od obsługiwanych typów plików i formatów kontenerów.

Wsparcie audio

Format za pomocą kodera. Dekoder Szczegóły Typy plików
Formaty kontenerów
AAC LC TAK TAK Obsługa treści mono/stereo/5,0/5.1 ze standardowymi częstotliwościami próbkowania od 8 do 48 kHz. • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS RAW AAC (.aac, dekodowanie w Androidzie 3.1 i nowszych, kodowanie w Androidzie 4.0+, obsługa ADIF)
• MPEG-TS (.ts, bez możliwości przewijania, Android 3.0 i nowsze)
HE-AACv1 (AAC+) Androida 4.1 lub nowszego, TAK
HE-AACv2 (rozszerzony AAC+)   TAK Obsługa treści stereo/5,0/5.1 ze standardowymi częstotliwościami próbkowania od 8 do 48 kHz.
xHE-AAC   Android 9 i nowsze Obsługa maksymalnie 8-kanałowego materiału ze standardowymi częstotliwościami próbkowania od 8 do 48 kHz
AAC ELD (ulepszony AAC z niskim opóźnieniem) Androida 4.1 lub nowszego, Androida 4.1 lub nowszego, Obsługa treści mono/stereo ze standardowymi częstotliwościami próbkowania od 16 do 48 kHz
AMR-NB TAK TAK 4,75–12,2 kb/s, próbkowanie przy 8 kHz • 3GPP (.3gp)
• AMR (.amr)
AMR-WB TAK TAK 9 szybkości od 6,60 kb/s do 23,85 kb/s, próbkowanie przy 16 kHz
FLAC Androida 4.1 lub nowszego, Android 3.1 lub nowszy Mono/stereo (bez wielokanałowości). Częstotliwość próbkowania do 48 kHz (ale w przypadku urządzeń z wartością wyjściową 44,1 kHz zalecamy jej wartość do 44,1 kHz, ponieważ filtr dolnoprzepustowy od 48 do 44,1 kHz nie zawiera filtra dolnoprzepustowego). Zalecana opcja to 16 bitów; przy 24-bitach nie można zastosować dytheringu. • FLAC (.flac)
• MPEG-4 (.mp4, .m4a, Android 10 i nowszy)
MIDI   TAK MIDI typu 0 i 1. DLS w wersji 1 i 2. XMF i mobilne XMF. Obsługa formatów dzwonków RTTTL/RTX, OTA i iMelody • Wpisz 0 i 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
MP3   TAK Stała przepustowość mono/stereo 8–320 kb/s (CBR) lub zmienna szybkość transmisji bitów (VBR) • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android w wersji 10 i nowszej)
• Matroska (.mkv, Android 10 i nowsze)
Opus Android 10 i nowsze Android 5.0 lub nowszy • Ogg (.ogg)
• Matroska (.mkv)
PCM/WAVE Androida 4.1 lub nowszego, TAK 8- i 16-bitowy liniowy PCM (do ograniczenia sprzętowego). Częstotliwość próbkowania nieprzetworzonych nagrań PCM na częstotliwościach 8000, 16 000 i 44100 Hz. WAVE (.wav)
Vorbis   TAK   • Ogg (.ogg)
• Matroska (.mkv, Android 4.0 lub nowszy)
• MPEG-4 (.mp4, .m4a, Android 10 i nowsze)

Lepsza obsługa filmów

Formaty wideo

Format za pomocą kodera. Dekoder Szczegóły Typy plików
Formaty kontenerów
H.263 TAK TAK Obsługa H.263 jest opcjonalna na Androidzie 7.0 i nowszych • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
H.264 AVC
Profil podstawowy (BP)
Android 3.0+ TAK • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, tylko dźwięk w formacie AAC, bez możliwości przewijania, Android 3.0 i nowsze)
• Matroska (.mkv)
H.264 AVC
Profil główny (MP)
Android 6.0 lub nowszy TAK Dekoder jest wymagany, zalecamy użycie kodera.
H.265 HEVC Android 5.0 lub nowszy Profil główny (poziom 3) na urządzeniach mobilnych i profil główny 4.1 w przypadku urządzeń z Androidem TV • MPEG-4 (.mp4)
• Matroska (.mkv)
MPEG-4 SP   TAK   3GPP (.3gp),
VP8 Androida 4.3 lub nowszego, Android 2.3.3 lub nowszy Funkcja transmisji strumieniowej dostępna tylko na urządzeniach z Androidem 4.0 lub nowszym WebM (.webm)
• Matroska (.mkv, Android 4.0 lub nowszy)
wersja 9 Androida 4.4 lub nowszego, WebM (.webm)
• Matroska (.mkv)
AV1 Android 14 i nowsze Android 10 i nowsze Od wprowadzenia Androida 14 korzystanie z kodera i dekodera jest obowiązkowe. • MPEG-4 (.mp4)
• Matroska (.mkv)

Rekomendacje dotyczące kodowania filmów

W tabeli poniżej znajdziesz profile i parametry kodowania wideo platformy Android Media, które zalecamy przy odtwarzaniu przy użyciu kodeka H.264 Baseline Profile. Te same zalecenia dotyczą kodeka profilu głównego, który jest dostępny tylko w systemie Android 6.0 i nowszych.

  SD (niska jakość) SD (wysoka jakość) HD 720p (nie dotyczy na wszystkich urządzeniach)
Rozdzielczość wideo 176 x 144 piks. 480 x 360 piks. 1280 x 720 piks.
Liczba klatek w filmie 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

W tabeli poniżej znajdziesz profile i parametry kodowania filmów na platformie Android Media zalecane w przypadku odtwarzania przy użyciu kodeka multimedialnego VP8.

  SD (niska jakość) SD (wysoka jakość) HD 720p (nie dotyczy na wszystkich urządzeniach) HD 1080p (nie dotyczy na wszystkich urządzeniach)
Rozdzielczość wideo 320 x 180 piks. 640 x 360 piks. 1280 x 720 piks. 1920 x 1080 piks.
Liczba klatek w filmie 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 wideo

Implementacje urządzeń muszą obsługiwać dynamiczną rozdzielczość wideo i przełączanie liczby klatek przy użyciu standardowych interfejsów API Androida w tym samym strumieniu w przypadku wszystkich kodeków VP8, VP9, H.264 i H.265 w czasie rzeczywistym i do maksymalnej rozdzielczości obsługiwanej przez każdy kodek na urządzeniu.

Implementacje obsługujące dekoder Dolby Vision muszą być zgodne z tymi wytycznymi:

  • Dostarczenie modułu wyodrębniania danych obsługującego Dolby Vision.
  • Prawidłowo wyświetlaj treści Dolby Vision na ekranie urządzenia lub na standardowym porcie wyjściowym wideo (np. HDMI).
  • Ustaw indeks śledzenia zgodnych wstecznie warstw podstawowych (jeśli występuje) na 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ć atomy mdat, ale musi poprzedzać atom ftyp.
  • W przypadku kontenerów 3GPP, MPEG-4 i WebM fragmenty audio i wideo odpowiadające tym samym przesunięciem czasowym nie mogą być większe niż 500 KB. Aby zminimalizować dryf dźwiękowy/wideo, spróbuj przeplatać dźwięk i obraz 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 i nowsze
Bezstratny: Android 10 i nowsze
Przejrzystość: Android 4.2.1 i nowsze
Android 4.0 i nowsze
Bezstratny: Android 4.2.1 i nowsze
Przejrzystość: Android 4.2.1 i nowsze
Kodowanie bezstratne 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 i nowsze Android 14 i nowsze Od wprowadzenia Androida 14 korzystanie z kodera i dekodera jest obowiązkowe. AVIF (.avif),

Protokoły sieciowe

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

  • RTSP (RTP, SDP)
  • Strumieniowe przesyłanie progresywne HTTP/HTTPS
  • Protokół roboczy transmisji na żywo HTTP/HTTPS:
    • Tylko pliki multimedialne MPEG-2 TS
    • Protokół 3 w Androidzie 4.0 lub nowszym
    • Protokół w wersji 2 dla Androida 3.x
    • Nieobsługiwane w wersjach starszych niż Android 3.0

Uwaga: protokół HTTPS nie jest obsługiwany w wersjach wcześniejszych niż 3.1.

Formaty filmów HDR

Producenci OEM mogą włączyć dowolny format HDR wybrany przez siebie w architekturze HDR na Androidzie, która spełnia podstawowe potrzeby formatów HDR: 10-bitowe bufory, metadane (statyczny, dynamiczny i brak), funkcję przenoszenia i obsługę przestrzeni kolorów.

Aby zapewnić deweloperom spójność i uwzględnić najważniejsze przypadki użycia technologii HDR, wymagamy od producentów OEM, aby na urządzeniach, które obsługują HDR, obsługiwały kilka podstawowych formatów:

  • Aby umożliwić odtwarzanie profesjonalnych treści, takich jak strumieniowanie filmów, wymagany jest format HDR10.
  • W przypadku przechwytywania i odtwarzania treści użytkowników wymagamy standardu HLG10, aby zapewnić spójne wrażenia na wszystkich urządzeniach z Androidem.

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

Format Funkcja transferu Metadane Kodek Głębia bitowa
HLG10 HLG Nie Ogrzewanie, wentylacja i klimatyzacja 10-bitowy
HDR10 PQ Statyczne Ogrzewanie, wentylacja i klimatyzacja 10-bitowy
HDR10+ PQ Statyczne Ogrzewanie, wentylacja i klimatyzacja 10-bitowy
Dolby Vision 8.4 HLG Dynamiczne Ogrzewanie, wentylacja i klimatyzacja 10-bitowy

Rekomendacje dotyczące obsługi formatu

Format zapisu Format przesyłania Format wyświetlania
HLG Obsługa zaplecza aplikacji HDR HLG Urządzenia obsługujące HDR (HLG):

HLG

Urządzenia obsługują technologię HDR (brak obsługi HLG, tylko w jakości PQ):

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

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

Przypadek użycia 2. Nagrywanie aparatem natywnym lub importowanie danych z galerii użytkownika (backend aplikacji obsługuje HDR)

Format zapisu Format przesyłania Format wyświetlania
HLG HLG Tak samo jak w przypadku przechwytywania w aplikacji
HDR10+ HLG

Mapa tonów z HDR10+ (PQ) na HLG przed przesłaniem za pomocą interfejsów API transformera

Tak samo jak w przypadku przechwytywania w aplikacji
DV8.4 HLG

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

Tak samo jak w przypadku przechwytywania w aplikacji

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

Format zapisu Format przesyłania Format wyświetlania
Dowolny format SDR

Mapa tonów z HLG na SDR przed przesłaniem za pomocą interfejsów API transformera

SDR