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) • 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ć atomymdat
, ale musi poprzedzać atomftyp
. - 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 |