Unterstützte Medienformate

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)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF nicht unterstützt)
• MPEG-TS (.ts, nicht suchbar, Android 3.0 und höher)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• 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 allen mdat-Atomen vorangestellt, aber dem ftyp-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