Obsługiwane formaty mediów

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

Tabele poniżej opisują obsługę formatów mediów wbudowaną w platformę Android. TAK oznacza, że format jest dostępny na wszystkich wersjach Androida. Jeśli określona jest konkretna platforma Android, format jest dostępny dla tej wersji i wszystkich późniejszych wersji. Format może być również dostępny we wcześniejszych wersjach, ale nie jest to gwarantowane.

Uwaga: określone urządzenie przenośne może obsługiwać dodatkowe formaty lub typy plików, które nie są wymienione w tych tabelach. Ponadto, jeśli używasz MediaCodecdirectly, możesz uzyskać dostęp do każdego z dostępnych formatów multimedialnych, niezależnie od obsługiwanych typów plików i formatów kontenerów.

Obsługa audio

.

Format Enkoder Dekoder Szczegóły Typy plików
Formaty kontenerów
AAC LC YES YES Obsługa formatów 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 Android 3.1+, kodowanie w Android 4.0+, ADIF nie obsługiwane)
– MPEG-TS (.ts, not seekable, Android 3.0+)
HE-AACv1 (AAC+) Android 4.1+ YES
HE-AACv2 (enhanced AAC+) YES Wsparcie dla stereo/5.Zawartość 0/5.1 o standardowej częstotliwości próbkowania od 8 do 48 kHz.
xHE-AAC Android 9+ Obsługa do 8-kanałowej zawartości o standardowej częstotliwości próbkowania od 8 do 48 kHz
AAC ELD (enhanced low delay AAC) Android 4.1+ Android 4.1+ Obsługa treści mono/stereo o standardowej częstotliwości próbkowania od 16 do 48 kHz
AMR-NB YES YES 4.75 do 12,2 kbit/s próbkowane @ 8kHz – 3GPP (.3gp)
– AMR (.amr)
AMR-WB YES YES 9 od 6.60 kbit/s do 23.85 kbit/s próbkowane @ 16kHz
FLAC Android 4.1+ Android 3.1+ Mono/Stereo (brak wielokanałowości). Częstotliwość próbkowania do 48 kHz (ale zaleca się do 44,1 kHz na urządzeniach z wyjściem 44,1 kHz, ponieważ sampler 48 na 44,1 kHz nie zawiera filtra dolnoprzepustowego). Zalecany 16-bitowy; brak ditheru dla 24-bitowego. – FLAC (.flac)
– MPEG-4 (.mp4, .m4a, Android 10+)
MIDI YES MIDI Typ 0 i 1. DLS Wersja 1 i 2. XMF i Mobile XMF. Wsparcie dla formatów dzwonków RTTTL/RTX, OTA i iMelody – Typ 0 i 1 (.mid, .xmf, .mxmf)
– RTTTL/RTX (.rtttl, .rtx)
– OTA (.ota)
– iMelody (.imy)
MP3 YES Mono/Stereo 8-320Kbps stała (CBR) lub zmienna bit-rate (VBR) – MP3 (.mp3)
– MPEG-4 (.mp4, .m4a, Android 10+)
– Matroska (.mkv, Android 10+)
Opus Android 10+ Android 5.0+ – Ogg (.ogg)
– Matroska (.mkv)
PCM/WAVE Android 4.1+ YES 8- i 16-bitowe liniowe PCM (szybkość do limitu sprzętowego). Samplingi dla surowych nagrań PCM przy 8000, 16000 i 44100 Hz. WAVE (.wav)
Vorbis YES – Ogg (.ogg)
– Matroska (.mkv, Android 4.0+)
– MPEG-4 (.mp4, .m4a, Android 10+)

Wsparcie wideo

Formaty wideo

.

Format Enkoder Dekoder Detale Typy plików
Formaty kontenerów
H.263 Tak Tak Wsparcie dla H.263 jest opcjonalna w Android 7.0+ – 3GPP (.3gp)
– MPEG-4 (.mp4)
– Matroska (.mkv)
H.264 AVC
Baseline Profile (BP)
Android 3.0+ YES – 3GPP (.3gp)
– MPEG-4 (.mp4)
– MPEG-TS (.ts, tylko audio AAC, bez możliwości przeglądania, Android 3.0+)
– Matroska (.mkv)
H.264 AVC
Main Profile (MP)
Android 6.0+ Tak Dekoder jest wymagany, koder jest zalecany.
H.265 HEVC Android 5.0+ Main Profile Level 3 dla urządzeń mobilnych i Main Profile Level 4.1 dla Android TV – MPEG-4 (.mp4)
– Matroska (.mkv)
MPEG-4 SP YES 3GPP (.3gp)
VP8 Android 4.3+ Android 2.3.3+ Streamable only in Android 4.0 and above – WebM (.webm)
– Matroska (.mkv, Android 4.0+)
VP9 Android 4.4+ – WebM (.webm)
– Matroska (.mkv)
AV1 Android 10+ Dekoder jest opcjonalny. – MPEG-4 (.mp4)
– Matroska (.mkv)

Zalecenia dotyczące kodowania wideo

W poniższej tabeli wymieniono profile i parametry kodowania wideo Android media framework zalecane do odtwarzania przy użyciu kodeka H.264 Baseline Profile. Te same zalecenia dotyczą kodeka Main Profile, który jest dostępny tylko w systemie Android 6.0 i nowszych.

.

SD (niska jakość) SD (wysoka jakość) HD 720p (nie dotyczy wszystkich urządzeń) urządzenia)
Rozdzielczość wideo 176 x 144 px 480 x 360 px 1280 x 720 px
Rozdzielczość obrazu wideo 12 fps 30 fps
30 fps
Bitrate wideo 56 Kbps 500 Kbps 2 Mbps
Kodek audio AAC-LC AAC-LC AAC-LC
Kanały audio 1 (mono) 2 (stereo)
Bitrate audio 24 Kbps 128 Kbps 192 Kbps

W poniższej tabeli wymieniono profile i parametry kodowania wideo Android Media Framework zalecane do odtwarzania przy użyciu kodeka VP8.

.

SD (niska jakość) SD (wysoka jakość) HD 720p (nie dotyczy wszystkich urządzeń) HD 1080p (nie dotyczy wszystkich urządzeń)
Rozdzielczość wideo 320 x 180 px 640 x 360 px 1280 x 720 px 1920 x 1080 px
Rozdzielczość klatek wideo 30 fps 30 fps 30 fps 30 fps
Bitrate wideo 800 Kbps 2 Mbps 4 Mbps 10 Mbps

.

Zalecenia dotyczące dekodowania wideo

Wdrożenia urządzeń muszą obsługiwać dynamiczne przełączanie rozdzielczości wideo i liczby klatek na sekundę poprzez standardowe API Androida w ramach tego samego strumienia dla wszystkich VP8, VP9, H.264, i H.265 kodeków w czasie rzeczywistym i do maksymalnej rozdzielczości obsługiwanej przez każdy kodek na urządzeniu.

Implementacje, które obsługują dekoder Dolby Vision muszą przestrzegać następujących wytycznych:

  • Zapewnij ekstraktor obsługujący Dolby Vision.
  • Właściwe wyświetlanie zawartości Dolby Vision na ekranie urządzenia lub na standardowym porcie wyjściowym wideo (np. HDMI).
  • Ustaw indeks ścieżki warstwy podstawowej (jeśli jest obecna) zgodnej wstecz, aby był taki sam jak indeks ścieżki połączonej warstwy Dolby Vision.

Wymagania dotyczące przesyłania strumieniowego wideo

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

  • W przypadku kontenerów 3GPP i MPEG-4 atom moov musi poprzedzać wszelkie atomy mdat, ale musi następować po atomie ftyp.
  • Dla kontenerów 3GPP, MPEG-4 i WebM, próbki audio i wideo odpowiadające temu samemu przesunięciu czasowemu nie mogą być oddalone od siebie o więcej niż 500 KB. Aby zminimalizować ten dryf audio/video, należy rozważyć interleaving audio i wideo w mniejszych rozmiarach kawałków.

Obsługa obrazów

.

Format Enkoder Dekoder Szczegóły Typy plików
Formaty kontenerów
BMP Tak BMP (.bmp)
GIF YES GIF (.gif)
JPEG YES YES Base+progressive JPEG (.jpg)
PNG YES YES PNG (.png)
WebP Android 4.0+
Bezstratny: Android 10+
Transparentność: Android 4.2.1+
Android 4.0+
Bezstratny: Android 4.2.1+
Przejrzystość: Android 4.2.1+
Kodowanie bezstratne można osiągnąć w systemie Android 10 przy użyciu jakości 100. WebP (.webp)
HEIF Android 8.0+ HEIF (.heic; .heif)

Protokoły sieciowe

Do odtwarzania audio i wideo obsługiwane są następujące protokoły sieciowe:

  • RTSP (RTP, SDP)
  • HTTP/HTTPS progressive streaming
  • HTTP/HTTPS live streaming draft protocol:
    • Tylko pliki multimedialneMPEG-2 TS
    • Protokół w wersji 3 Android 4.0 i wyżej
    • Protokół w wersji 2 Android 3.x
    • Nieobsługiwany przed Android 3.0

Uwaga: HTTPS nie jest obsługiwany przed Android 3.1.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.