Dieses Dokument beschreibt die Unterstützung von Mediencodecs, Containern und Netzwerkprotokollen durch die Android-Plattform.
Die folgenden Tabellen beschreiben die Unterstützung von Medienformaten durch die Android-Plattform. YES bedeutet, dass das Format auf allen Android-Versionen verfügbar ist. Wenn eine bestimmte Android-Plattform angegeben ist, ist das Format für diese Version und alle späteren Versionen verfügbar. Das Format kann auch in früheren Versionen verfügbar sein, dies ist jedoch nicht garantiert.
Bitte beachten Sie, dass ein bestimmtes mobiles Gerät zusätzliche Formate oder Dateitypen unterstützen kann, die nicht in diesen Tabellen aufgeführt sind. Wenn Sie außerdem einenMediaCodec direkt verwenden, können Sie auf jedes der verfügbaren Medienformate zugreifen, unabhängig von den unterstützten Dateitypen und Containerformaten.
Audio-Unterstützung
Format | Encoder | Decoder | Details | Dateitypen Containerformate |
---|---|---|---|---|
AAC LC | Ja | Ja | Unterstützung für Mono/Stereo/5.0/5.1-Inhalte mit Standard-Abtastraten von 8 bis 48 kHz. | – 3GPP (.3gp) – MPEG-4 (.mp4, .m4a) – ADTS raw AAC (.aac, dekodierbar in Android 3.1+, kodierbar in Android 4.0+, ADIF nicht unterstützt) – MPEG-TS (.ts, nicht suchbar, Android 3.0+) |
HE-AACv1 (AAC+) | Android 4.1+ | Ja | ||
HE-AACv2 (enhanced AAC+) | Ja | Unterstützung für Stereo/5.0/5.1-Inhalte mit Standardabtastraten von 8 bis 48 kHz. | ||
xHE-AAC | Android 9+ | Unterstützung für bis zu 8-Kanal-Inhalte mit Standardabtastraten von 8 bis 48 kHz | ||
AAC ELD (enhanced low delay AAC) | Android 4.1+ | Android 4.1+ | Unterstützung für Mono/Stereo-Inhalte mit Standard-Abtastraten von 16 bis 48 kHz | |
AMR-NB | Ja | Ja | 4.75 bis 12,2 kbps abgetastet @ 8kHz | – 3GPP (.3gp) – AMR (.amr) |
AMR-WB | Ja | Ja | 9 Raten von 6.60 kbit/s bis 23,85 kbit/s abgetastet bei 16kHz | |
FLAC | Android 4.1+ | Android 3.1+ | Mono/Stereo (kein Mehrkanal). Abtastraten bis zu 48 kHz (bei Geräten mit 44,1 kHz-Ausgang wird jedoch bis zu 44,1 kHz empfohlen, da der 48-auf-44,1-kHz-Downsampler keinen Tiefpassfilter enthält). 16-Bit empfohlen; bei 24-Bit wird kein Dither angewendet. | – FLAC (.flac) – MPEG-4 (.mp4, .m4a, Android 10+) |
MIDI | YES | MIDI Typ 0 und 1. DLS Version 1 und 2. XMF und Mobile XMF. Unterstützung für Klingeltonformate RTTTL/RTX, OTA und iMelody | – Typ 0 und 1 (.mid, .xmf, .mxmf) – RTTTL/RTX (.rtttl, .rtx) – OTA (.ota) – iMelody (.imy) |
|
MP3 | Ja | Mono/Stereo 8-320Kbps konstante (CBR) oder variable Bitrate (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+ | Ja | 8- und 16-bit lineare PCM (Raten bis zum Limit der Hardware). Samplingraten für PCM-Rohaufnahmen bei 8000, 16000 und 44100 Hz. | WAVE (.wav) |
Vorbis | Ja | – Ogg (.ogg) – Matroska (.mkv, Android 4.0+) – MPEG-4 (.mp4, .m4a, Android 10+) |
Videounterstützung
Videoformate
Format | Encoder | Decoder | Details | Dateitypen Containerformate |
---|---|---|---|---|
H.263 | Ja | Ja | Unterstützung für H.263 ist optional in Android 7.0+ | – 3GPP (.3gp) – MPEG-4 (.mp4) – Matroska (.mkv) |
H.264 AVC Baseline Profile (BP) |
Android 3.0+ | Ja | – 3GPP (.3gp) – MPEG-4 (.mp4) – MPEG-TS (.ts, nur AAC-Audio, nicht suchbar, Android 3.0+) – Matroska (.mkv) |
|
H.264 AVC Hauptprofil (MP) |
Android 6.0+ | Ja | Der Decoder wird benötigt, der Encoder wird empfohlen. | |
H.265 HEVC | Android 5.0+ | Main Profile Level 3 für mobile Geräte und Main Profile Level 4.1 für Android TV | – MPEG-4 (.mp4) – Matroska (.mkv) |
|
MPEG-4 SP | Ja | 3GPP (.3gp) | ||
VP8 | Android 4.3+ | Android 2.3.3+ | Streambar nur in Android 4.0 und höher | – WebM (.webm) – Matroska (.mkv, Android 4.0+) |
VP9 | Android 4.4+ | – WebM (.webm) – Matroska (.mkv) |
||
AV1 | Android 10+ | Der Decoder ist optional. | – MPEG-4 (.mp4) – Matroska (.mkv) |
Empfehlungen für die Videokodierung
In der folgenden Tabelle sind die Videokodierungsprofile und -parameter des Android Media Frameworks aufgeführt, die für die Wiedergabe mit dem H.264 Baseline Profile Codec. Die gleichen Empfehlungen gelten für den Main Profile Codec, der nur in Android 6.0 und höher verfügbar ist.
SD (Niedrige Qualität) | SD (Hohe Qualität) | HD 720p (N/A auf allen Geräten) | |
---|---|---|---|
Videoauflösung | 176 x 144 px | 480 x 360 px | 1280 x 720 px |
Videobildrate | 12 fps | 30 fps | 30 fps |
Video-Bitrate | 56 Kbps | 500 Kbps | 2 Mbps |
Audio-Codec | AAC-LC | AAC-LC | AAC-LC |
Audiokanäle | 1 (mono) | 2 (stereo) | 2 (stereo) |
Audio-Bitrate | 24 Kbps | 128 Kbps | 192 Kbps |
In der folgenden Tabelle sind die Videocodierungsprofile und -parameter des Android Media Frameworks aufgeführt, die für die Wiedergabe mit dem VP8-Mediencodec empfohlen werden.
SD (Niedrige Qualität) | SD (Hohe Qualität) | HD 720p (N/A auf allen Geräten) | HD 1080p (N/A auf allen Geräten) | |
---|---|---|---|---|
Videoauflösung | 320 x 180 px | 640 x 360 px | 1280 x 720 px | 1920 x 1080 px |
Video-Bildrate | 30 fps | 30 fps | 30 fps | 30 fps |
Video-Bitrate | 800 Kbps | 2 Mbps | 4 Mbps | 10 Mbps |
Empfehlungen für die Videodekodierung
Geräteimplementierungen müssen die dynamische Umschaltung von Videoauflösung und Bildrate über die StandardAndroid-APIs innerhalb desselben Streams für alle VP8, VP9, H.264, und H.265 Codecs in Echtzeit und bis zur maximalen Auflösung, die von jedem Codec auf dem Gerät unterstützt wird, unterstützen.
Implementierungen, die den Dolby Vision Decoder unterstützen, müssen diese Richtlinien befolgen:
- Bieten Sie einen Dolby Vision-fähigen Extraktor an.
- Stellen Sie Dolby Vision-Inhalte ordnungsgemäß auf dem Bildschirm des Geräts oder auf einem Standard-Videoausgang (z. B. HDMI) dar.
- Stellen Sie den Spurindex der rückwärtskompatiblen Basisschicht(en) (falls vorhanden) so ein, dass er mit dem Spurindex der kombinierten Dolby Vision-Schicht übereinstimmt.
Video-Streaming-Anforderungen
Für Videoinhalte, die über HTTP oder RTSP gestreamt werden, gibt es zusätzliche Anforderungen:
- Für 3GPP- und MPEG-4-Container muss das
moov
-Atom allenmdat
-Atomen vorausgehen, aber demftyp
-Atom folgen. - Für 3GPP-, MPEG-4- und WebM-Container dürfen Audio- und Video-Samples, die demselben Zeitversatz entsprechen, nicht mehr als 500 KB voneinander entfernt sein. Um diese Audio-/Videoabweichung zu minimieren, sollten Audio und Video in kleineren Chunk-Größen verschachtelt werden.
Bildunterstützung
Format | Encoder | Decoder | Details | Dateitypen Behälterformate |
---|---|---|---|---|
BMP | Ja | BMP (.bmp) | ||
GIF | Ja | GIF (.gif) | ||
JPEG | Ja | Ja | Basis+progressiv | JPEG (.jpg) |
PNG | Ja | Ja | PNG (.png) | |
WebP | Android 4.0+ Los: Android 10+ Transparenz: Android 4.2.1+ |
Android 4.0+ Lossless: Android 4.2.1+ Transparenz: Android 4.2.1+ |
Lossless encoding can be achieved on Android 10 using a quality of 100. | WebP (.webp) |
HEIF | Android 8.0+ | HEIF (.heic; .heif) |
Netzwerkprotokolle
Die folgenden Netzwerkprotokolle werden für die Audio- und Videowiedergabe unterstützt:
- RTSP (RTP, SDP)
- HTTP/HTTPS progressives Streaming
- HTTP/HTTPS Live-Streaming-Protokollentwurf:
- Nur MPEG-2 TS Mediendateien
- Protokollversion 3 Android 4.0 und höher
- Protokollversion 2 Android 3.x
- Nicht unterstützt vor Android 3.0
Hinweis: HTTPS wird nicht unterstützt vor Android 3.1.