In diesem Dokument wird die Unterstützung von Medien-Codecs, Containern und Netzwerkprotokollen beschrieben, die von der Android-Plattform bereitgestellt wird.
In den folgenden Tabellen wird die Unterstützung von Medienformaten beschrieben, die in die Android-Plattform integriert ist. „JA“ bedeutet, dass das Format auf Smartphones und Tablets mit allen Android-Versionen verfügbar ist. Wenn eine bestimmte Android-Plattform angegeben ist, ist das Format auf Smartphones und Tablets mit dieser Version und allen nachfolgenden Versionen verfügbar. Das Format ist möglicherweise auch in früheren Versionen verfügbar, aber das ist nicht garantiert. Bei anderen Formfaktoren als Smartphones und Tablets kann die Unterstützung von Medienformaten variieren.
Bestimmte Mobilgeräte unterstützen möglicherweise zusätzliche Formate oder Dateitypen, die in diesen Tabellen nicht aufgeführt sind. Wenn du einen MediaCodec direkt verwendest, kannst du unabhängig von den unterstützten Dateitypen und Containerformaten auf alle verfügbaren Medienformate zugreifen.
Audio-Unterstützung
Formatieren | Encoder | Decoder | Dateitypen – Containerformate | Details | |
---|---|---|---|---|---|
Extraktor | Muxer | ||||
AAC LC | JA | JA |
• 3GPP (.3gp) • ADTS raw AAC (.aac, ADIF nicht unterstützt) • MPEG-TS (.ts, nicht suchbar, Android 3.0 und höher) |
• 3GPP (.3gp) • ADTS raw AAC (.aac, ADIF nicht unterstützt) • MPEG-TS (nicht sicher) (.ts, nicht suchbar, Android 3.0 und höher) |
Unterstützung für Mono-/Stereo-/5.0-/5.1-Inhalte mit Standardabtastraten von 8 bis 48 kHz |
HE-AACv1 (AAC+) | Android 4.1 oder höher | JA | |||
HE-AACv2 (erweitertes AAC+) | JA | Unterstützung für Stereo-/5.0-/5.1-Inhalte mit Standardabtastraten von 8 bis 48 kHz | |||
xHE-AAC | Android 9 oder höher | Unterstützung von bis zu 8 Kanälen mit Standardabtastraten von 8 bis 48 kHz | |||
AAC ELD (Enhanced Low Delay AAC) | Android 4.1 oder höher | Android 4.1 oder höher | Unterstützung für Mono-/Stereoinhalte mit Standardabtastraten von 16 bis 48 kHz | ||
AMR-NB | JA | JA |
• 3GPP (.3gp) • AMR (.amr) |
• 3GPP (.3gp) • AMR (.amr) |
4,75 bis 12,2 kbit/s bei 8 kHz abgetastet |
AMR-WB | JA | JA | 9 Raten von 6,60 kbit/s bis 23,85 kbit/s bei 16 kHz Abtastrate | ||
FLAC | Android 4.1 oder höher | Android 3.1 und höher |
• FLAC (.flac) • MPEG-4 (.mp4, .m4a, Android 10 und höher) • Matroska (.mkv) |
Mono/Stereo (kein Mehrkanalton). Abtastraten bis zu 48 kHz (auf Geräten mit 44,1 kHz-Ausgabe werden jedoch bis zu 44,1 kHz empfohlen, da der Downsampler von 48 auf 44,1 kHz keinen Tiefpassfilter enthält). 16 Bit empfohlen; für 24 Bit wird kein Dithering angewendet. | |
MIDI | JA |
• Typ 0 und 1 (.mid, .xmf, .mxmf) • RTTTL/RTX (.rtttl, .rtx) • OTA (.ota) • iMelody (.imy) |
MIDI-Typ 0 und 1 DLS-Version 1 und 2 XMF und Mobile XMF. Unterstützung für Klingeltonformate RTTTL/RTX, OTA und iMelody | ||
MP3 | JA |
• MP3 (.mp3) • MPEG-4 (.mp4, .m4a, Android 10 und höher) • Matroska (.mkv, Android 10 und höher) |
Mono/Stereo 8–320 kbit/s konstant (CBR) oder variable Bitrate (VBR) | ||
Opus | Android 10 oder höher | Android 5.0 oder höher |
• Ogg (.ogg) • MPEG-4 (.mp4) • Matroska (.mkv) |
• Ogg (.ogg) • WebM (.webm) |
|
PCM/WAVE | Android 4.1 oder höher | JA | WAVE (.wav) | Lineare PCM mit 8 und 16 Bit (Bitrate bis zum Limit der Hardware) Abtastraten für Roh-PCM-Aufnahmen mit 8.000, 16.000 und 44.100 Hz. | |
Vorbis | JA |
• Ogg (.ogg) • Matroska (.mkv, Android 4.0 oder höher) • MPEG-4 (.mp4, .m4a, Android 10 oder höher) |
• WebM (.webm) |
Video support
Videoformate
Formatieren | Encoder | Decoder | Dateitypen – Containerformate | Details | |
---|---|---|---|---|---|
Extraktor | Muxer | ||||
H.263 | JA | JA |
• 3GPP (.3gp) • MPEG-4 (.mp4) • Matroska (.mkv) |
• 3GPP (.3gp) • MPEG-4 (.mp4) |
Die Unterstützung von H.263 ist unter Android 7.0 und höher optional. |
H.264 AVC Baseline-Profil (BP) |
Android 3.0 und höher | JA |
• 3GPP (.3gp) • MPEG-4 (.mp4) • MPEG-TS (.ts, nur AAC-Audio, nicht suchbar, Android 3.0 und höher) • Matroska (.mkv) |
• 3GPP (.3gp) • MPEG-4 (.mp4) |
|
H.264 AVC Hauptprofil (MP) |
Android 6.0 oder höher | JA | Der Decoder ist erforderlich, der Encoder wird empfohlen. | ||
H.265 HEVC | Android 5.0 oder höher |
• MPEG-4 (.mp4) • Matroska (.mkv) |
• MPEG-4 (.mp4) | Main Profile Level 3 für Mobilgeräte und Main Profile Level 4.1 für Android TV | |
MPEG-4 SP | JA | • MPEG-4 (.mp4) | • MPEG-4 (.mp4) | ||
VP8 | Android 4.3 oder höher | Android 2.3.3 und höher |
• WebM (.webm) • Matroska (.mkv, Android 4.0 und höher) |
• WebM (.webm) | Nur mit Android 4.0 oder höher streambar |
VP9 | Android 4.4 oder höher |
• WebM (.webm) • Matroska (.mkv) • MPEG-4 (.mp4) |
• WebM (.webm) | ||
AV1 | Android 14 oder höher | Android 10 oder höher |
• MPEG-4 (.mp4) • Matroska (.mkv) |
• MPEG-4 (.mp4) | Encoder und Decoder sind ab Android 14 obligatorisch. |
APV | Android 16 oder höher | Android 16 oder höher | • MPEG-4 (.mp4) | • MPEG-4 (.mp4) | Encoder und Decoder sind ab Android 16 obligatorisch. |
Empfehlungen für die Videocodierung
In der folgenden Tabelle sind die Videocodierungsprofile und -parameter des Android-Medien-Frameworks aufgeführt, die für die Wiedergabe mit dem H.264-Baseline-Profil-Codec empfohlen werden. Dieselben 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 (nicht auf allen Geräten verfügbar) | |
---|---|---|---|
Videoauflösung | 176 × 144 px | 480 x 360 px | 1.280 × 720 Pixel |
Video-Framerate | 12 fps | Frame-Rate: 30 fps | Frame-Rate: 30 fps |
Video-Bitrate | 56 kbit/s | 500 kbit/s | 2 Mbit/s |
Audio-Codec | AAC-LC | AAC-LC | AAC-LC |
Audiokanäle | 1 (Mono) | 2 (Stereo) | 2 (Stereo) |
Audio bitrate | 24 kbit/s | 128 Kbit/s | 192 kbit/s |
In der folgenden Tabelle sind die Videocodierungsprofile und -parameter des Android Media Framework aufgeführt, die für die Wiedergabe mit dem VP8-Medienkode empfohlen werden.
SD (niedrige Qualität) | SD (hohe Qualität) | HD 720p (nicht auf allen Geräten verfügbar) | HD 1080p (nicht auf allen Geräten verfügbar) | |
---|---|---|---|---|
Videoauflösung | 320 × 180 px | 640 x 360 px | 1.280 × 720 Pixel | 1920 × 1080 Pixel |
Video-Framerate | Frame-Rate: 30 fps | Frame-Rate: 30 fps | Frame-Rate: 30 fps | Frame-Rate: 30 fps |
Video-Bitrate | 800 kbit/s | 2 Mbit/s | 4 Mbit/s | 10 Mbit/s |
Empfehlungen für die Video-Decodierung
Geräteimplementierungen müssen die dynamische Umschaltung der Videoauflösung und der Framerate über die standardmäßigen Android APIs innerhalb desselben Streams für alle VP8-, VP9-, H.264- und H.265-Codecs in Echtzeit und bis zur maximalen Auflösung unterstützen, die von jedem Codec auf dem Gerät unterstützt wird.
Implementierungen, die den Dolby Vision-Decoder unterstützen, müssen diesen Richtlinien entsprechen:
- Einen Dolby Vision-fähigen Extractor bereitstellen.
- Dolby Vision-Inhalte korrekt auf dem Display des Geräts oder über einen Standard-Videoausgang (z.B. HDMI).
- Lege den Titelindex der rückwärtskompatiblen Basisebenen (falls vorhanden) so fest, dass er mit dem Titelindex der kombinierten Dolby Vision-Ebene übereinstimmt.
Anforderungen an das Videostreaming
Für Videoinhalte, die über HTTP oder RTSP gestreamt werden, gelten zusätzliche Anforderungen:
- Bei 3GPP- und MPEG-4-Containern muss das
moov
-Atom allenmdat
-Atomen vorangestellt, aber demftyp
-Atom folgen. - Bei 3GPP-, MPEG-4- und WebM-Containern dürfen Audio- und Video-Samples mit demselben Zeitversatz maximal 500 KB voneinander entfernt sein. Um diese Audio-/Video-Abweichung zu minimieren, solltest du Audio und Video in kleineren Chunk-Größen interleaven.
Bildunterstützung
Formatieren | Encoder | Decoder | Details | Dateitypen Containerformate |
---|---|---|---|---|
BMP | JA | BMP (.bmp) | ||
GIF | JA | GIF (.gif) | ||
JPEG | JA | JA | Basispreis + progressiver Preis | JPEG (JPG) |
PNG | JA | JA | PNG (.png) | |
WebP |
Android 4.0 oder höher Verlustfreie Wiedergabe: Android 10 oder höher Transparenz: Android 4.2.1 oder höher |
Android 4.0 oder höher Verlustfreie Wiedergabe: Android 4.2.1 oder höher Transparenz: Android 4.2.1 oder höher |
Unter Android 10 kann eine verlustfreie Codierung mit einer Qualität von 100 erreicht werden. | WebP (.webp) |
HEIF | Android 8.0 oder höher | HEIF (.heic; .heif) | ||
AVIF (Baseline-Profil) | Android 14 oder höher | Android 14 oder höher | Encoder und Decoder sind ab Android 14 obligatorisch. | AVIF (.avif) |
Netzwerkprotokolle
Die folgenden Netzwerkprotokolle werden für die Audio- und Videowiedergabe unterstützt:
- RTSP (RTP, SDP)
- HTTP/HTTPS-progressives Streaming
- HTTP/HTTPS-Livestreaming-Entwurfsprotokoll:
- Nur MPEG-2 TS-Mediendateien
- Protokollversion 3, Android 4.0 und höher
- Protokollversion 2, Android 3.x
- Vor Android 3.0 nicht unterstützt
Hinweis:HTTPS wird vor Android 3.1 nicht unterstützt.
HDR-Videoformate
OEMs können mit der Android-HDR-Architektur ein beliebiges HDR-Format aktivieren, das die wichtigsten Anforderungen von HDR-Formaten erfüllt: 10-Bit-Puffer, Metadaten (statisch, dynamisch und keine), Transferfunktion und Farbraumverwaltung.
Um für Entwickler für Einheitlichkeit zu sorgen und wichtige HDR-Anwendungsfälle zu berücksichtigen, müssen OEMs auf Geräten, die HDR unterstützen, einige Basisformate unterstützen:
- Für die Wiedergabe professioneller Inhalte wie Filmstreams ist HDR10 erforderlich.
- Für die Aufnahme und Wiedergabe von von Nutzern erstellten Inhalten ist HLG10 erforderlich, um eine einheitliche Wiedergabe auf allen Android-Geräten zu ermöglichen.
OEMs, die HDR-Unterstützung hinzufügen, müssen diese Formate unterstützen, können aber auch zusätzliche Formate wie HDR10+ oder Dolby Vision unterstützen.
Formatieren | Übertragungsfunktion | Metadaten | Codec | Bittiefe |
---|---|---|---|---|
HLG10 | HLG | Nein | HEVC | 10 Bit |
HDR10 | PQ | Statisch | HEVC | 10 Bit |
HDR10+ | PQ | Statisch | HEVC | 10 Bit |
Dolby Vision 8.4 | HLG | Dynamisch | HEVC | 10 Bit |
Empfehlungen zur Formatbehandlung
Aufnahmeformat | Upload-Format | Bereitstellungsformat |
HLG | App-Backend unterstützt HDR HLG | Geräte mit HDR-Unterstützung (HLG):
HLG Geräte mit HDR-Unterstützung (kein HLG-Support, nur PQ): SDR (Tone Map von HLG zu SDR im Backend) Geräte, die HDR nicht unterstützen: SDR (Tone Mapping von HLG nach SDR im Backend) |
Anwendungsfall 2: Aufnahme mit der Kamera oder Import aus der Galerie des Nutzers (App-Backend unterstützt HDR)
Aufnahmeformat | Upload-Format | Bereitstellungsformat |
HLG | HLG | Entspricht dem Anwendungsfall „In-App-Aufnahme“ |
HDR10+ | HLG
Vor dem Upload mithilfe von Transformer APIs von HDR10+ (PQ) zu HLG tonmappen |
Entspricht dem Anwendungsfall „In-App-Aufnahme“ |
DV8.4 | HLG
(DV8.4 verwendet HLG und der Bitstream verhält sich wie HLG, daher ist keine Tonmapping erforderlich) |
Entspricht dem Anwendungsfall „In-App-Aufnahme“ |
Anwendungsfall 3: HDR wird vom App-Backend nicht unterstützt
Aufnahmeformat | Upload-Format | Bereitstellungsformat |
Beliebiges Format | SDR
Vor dem Upload mithilfe von Transformer APIs von HLG zu SDR tonmappen |
SDR |