Unterstützte Medienformate

In diesem Dokument wird die Unterstützung für Media-Codecs, Container und Netzwerkprotokolle beschrieben, die von der Android-Plattform bereitgestellt wird.

In den folgenden Tabellen wird die Unterstützung für Media-Formate 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 späteren Versionen verfügbar. Das Format ist möglicherweise auch in früheren Versionen verfügbar, dies wird jedoch nicht garantiert. Auf anderen Formfaktoren als Smartphones und Tablets kann die Unterstützung für Mediaformate variieren.

Ein bestimmtes Mobilgerät unterstützt möglicherweise zusätzliche Formate oder Dateitypen, die in diesen Tabellen nicht aufgeführt sind. Wenn Sie einen MediaCodec direkt verwenden, können Sie außerdem unabhängig von den unterstützten Dateitypen und Containerformaten auf alle verfügbaren Mediaformate zugreifen.

Audio-Unterstützung

Format Encoder Decodierer Dateitypen und Containerformate Details
Extrahierer Muxer
AAC LC JA JA • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS Raw AAC (.aac, ADIF wird nicht unterstützt)
• MPEG-TS (.ts, nicht suchbar, Android 3.0+)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS-Roh-AAC (.aac, ADIF wird nicht unterstützt)
• MPEG-TS (nicht sicher) (.ts, nicht suchbar, Android 3.0+)
Unterstützung von Mono-/Stereo-/5.0-/5.1-Inhalten mit Standard-Abtastraten von 8 bis 48 kHz.
HE-AACv1 (AAC+) Android 4.1 oder höher JA
HE-AACv2 (enhanced AAC+)   JA Unterstützung von Stereo-/5.0-/5.1-Inhalten mit Standard-Abtastraten von 8 bis 48 kHz.
xHE-AAC   Android 9 oder höher Unterstützung von bis zu 8‑Kanal-Inhalten 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 von Mono-/Stereo-Inhalten mit Standard-Abtastraten von 16 bis 48 kHz
AMR‑NB JA JA • 3GPP (.3gp)
• AMR (.amr)
• 3GPP (.3gp)
• AMR (.amr)
4,75 bis 12,2 kbit/s, Samplingrate 8 kHz
AMR‑WB JA JA 9 Raten von 6,60 kbit/s bis 23,85 kbit/s, abgetastet bei 16 kHz
FLAC Android 4.1 oder höher Android 3.1 und höher • FLAC (.flac)
• MPEG‑4 (.mp4, .m4a, Android 10+)
• Matroska (.mkv)
Mono/Stereo (kein Mehrkanal). Abtastraten bis zu 48 kHz (auf Geräten mit 44,1 kHz-Ausgabe wird jedoch eine Abtastrate von bis zu 44,1 kHz empfohlen, da der Downsampler von 48 auf 44,1 kHz keinen Tiefpassfilter enthält). 16 Bit werden empfohlen. Bei 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 der Klingeltonformate RTTTL/RTX, OTA und iMelody
MP3   JA • MP3 (.mp3)
• MPEG‑4 (.mp4, .m4a, Android 10+)
• Matroska (.mkv, Android 10+)
Mono/Stereo, 8–320 kbit/s, konstante (CBR) oder variable Bitrate (VBR)
Opus Android 10 und 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 8- und 16-Bit-PCM (Raten bis zum Limit der Hardware). Abtastraten für PCM-Rohaufnahmen bei 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

Format Encoder Decodierer Dateitypen und Containerformate Details
Extrahierer Muxer
H.263 JA JA • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
Unterstützung für H.263 ist in 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+)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
H.264 AVC
Main Profile (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 und höher Android 2.3.3 oder höher • WebM (.webm)
• Matroska (.mkv, Android 4.0 oder höher)
• WebM (.webm) Nur auf Android 4.0 und höher streamen
VP9 Android 4.4 oder höher • WebM (.webm)
• Matroska (.mkv)
• MPEG-4 (.mp4)
• WebM (.webm)
AV1 Android 14 und höher Android 10 und höher • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) Ab Android 14 sind Encoder und Decoder obligatorisch.
APV Android 16 und höher Android 16 und höher • MPEG-4 (.mp4) • MPEG-4 (.mp4) Ab Android 16 sind Encoder und Decoder obligatorisch.

Empfehlungen für die Videocodierung

In der folgenden Tabelle sind die Videocodierungsprofile und ‑parameter des Android-Media-Frameworks aufgeführt, die für die Wiedergabe mit dem H.264-Baseline-Profil-Codec empfohlen werden. Dieselben Empfehlungen gelten für den Main-Profil-Codec, der nur in Android 6.0 und höher verfügbar ist.

  SD (niedrige Qualität) SD (hohe Qualität) HD 720p (auf allen Geräten nicht verfügbar)
Videoauflösung 176 × 144 px 480 × 360 px 1280 × 720 px
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-Frameworks aufgeführt, die für die Wiedergabe mit dem VP8-Mediacodec empfohlen werden.

  SD (niedrige Qualität) SD (hohe Qualität) HD 720p (auf allen Geräten nicht verfügbar) HD 1080p (auf allen Geräten nicht verfügbar)
Videoauflösung 320 × 180 px 640 × 360 px 1280 × 720 px 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 Videodecodierung

Geräteimplementierungen müssen dynamische Videoauflösungs- und Framerate-Wechsel ü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 die folgenden Richtlinien einhalten:

  • Stellen Sie einen Dolby Vision-kompatiblen Extractor bereit.
  • Dolby Vision-Inhalte werden auf dem Gerätebildschirm oder an einem Standard-Videoausgang (z.B. HDMI) korrekt angezeigt.
  • Lege den Track-Index der abwärtskompatiblen Basisebene(n) (falls vorhanden) auf denselben Wert wie den Track-Index der kombinierten Dolby Vision-Ebene fest.

Anforderungen an Videostreams

Für Videoinhalte, die über HTTP oder RTSP gestreamt werden, gelten zusätzliche Anforderungen:

  • Bei 3GPP- und MPEG-4-Containern muss das moov-Atom vor allen mdat-Atomen und nach dem ftyp-Atom stehen.
  • Bei 3GPP-, MPEG‑4- und WebM-Containern dürfen Audio- und Videobeispiele, die demselben zeitlichen Versatz entsprechen, nicht mehr als 500 KB voneinander entfernt sein. Um diese Audio-/Video-Abweichung zu minimieren, sollten Sie Audio und Video in kleineren Abschnitten verschachteln.

Bildunterstützung

Format Encoder Decodierer Details Dateitypen
Containerformate
BMP   JA   BMP (.bmp)
GIF   JA   GIF (.gif)
JPEG JA JA Grundpreis + progressiv JPEG (.jpg)
PNG JA JA   PNG (.png)
WebP Android 4.0 oder höher
Verlustfrei: Android 10 oder höher
Transparenz: Android 4.2.1 oder höher
Android 4.0 und höher
Verlustfrei: Android 4.2.1 und höher
Transparenz: Android 4.2.1 und höher
Die verlustfreie Codierung kann unter Android 10 mit einer Qualität von 100 erreicht werden. WebP (.webp)
HEIF Android 10 oder höher
(über MediaCodec oder HeifWriter; nicht in Bitmap.compress)
Android 9.0 oder höher Gerät optional. Informationen zur Unterstützung von 8‑Bit-Farben findest du unter ImageDecoder.isMimeTypeSupported("image/heif"). Für die 10‑Bit-Decodierung ist das optionale HEVC Main10-Profil erforderlich. HEIF (.heic; .heif)
AVIF (Baseline-Profil) Android 14 und höher
(über MediaCodec; nicht in Bitmap.compress)
Android 12 und höher Die 8‑Bit-Decodierung wird ab Android 12 unterstützt. Die 10‑Bit-Decodierung ist optional. Prüfen Sie ImageDecoder.isMimeTypeSupported("image/avif") auf 10‑Bit-Unterstützung (auch wenn „false“ zurückgegeben wird, funktioniert die 8‑Bit-Decodierung weiterhin). AVIF (.avif)

Netzwerkprotokolle

Die folgenden Netzwerkprotokolle werden für die Audio- und Videowiedergabe unterstützt:

  • RTSP (RTP, SDP)
  • Progressives Streaming über HTTP/HTTPS
  • HTTP/HTTPS-Livestreaming Protokollentwurf:
    • Nur MPEG-2 TS-Mediendateien
    • Protokollversion 3, Android 4.0 und höher
    • Protokollversion 2 Android 3.x
    • Wird 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 jedes beliebige HDR-Format aktivieren. Diese Architektur bietet die wichtigsten Anforderungen von HDR-Formaten: 10-Bit-Puffer, Metadaten (statisch, dynamisch und keine), Transferfunktion und Farbraumverarbeitung.

Damit Entwickler einheitliche Bedingungen vorfinden und wichtige HDR-Anwendungsfälle abgedeckt werden, müssen OEMs auf Geräten, die HDR unterstützen, einige grundlegende Formate unterstützen:

  • Für die Wiedergabe professioneller Inhalte wie Streamingfilme ist HDR10 erforderlich.
  • Für die Aufnahme und Wiedergabe von von Nutzern erstellten Inhalten ist HLG10 erforderlich, um eine einheitliche Nutzung 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.

Format Ü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 Formatierung

Aufnahmeformat Upload-Format Bereitstellungsformat
HLG App-Backend unterstützt HDR HLG Geräte, die HDR (HLG) unterstützen:

HLG

Geräte, die HDR unterstützen (keine HLG-Unterstützung, nur PQ):

SDR (Tone Mapping von HLG zu SDR im Backend)

Geräte, die HDR nicht unterstützen: SDR (Tone-Mapping von HLG zu SDR im Backend)

Anwendungsfall 2: Aufnahme mit der nativen Kamera oder Import aus der Galerie des Nutzers (App-Backend unterstützt HDR)

Aufnahmeformat Upload-Format Bereitstellungsformat
HLG HLG Wie beim Anwendungsfall „In-App-Aufnahme“
HDR10+ HLG

Tone-Mapping von HDR10+ (PQ) zu HLG vor dem Upload mit Transformer-APIs

Wie beim Anwendungsfall „In-App-Aufnahme“
DV8.4 HLG

(DV8.4 verwendet HLG und der Bitstream verhält sich wie HLG, daher ist kein Tone-Mapping erforderlich)

Wie beim Anwendungsfall „In-App-Aufnahme“

Anwendungsfall 3: Das App-Backend unterstützt kein HDR

Aufnahmeformat Upload-Format Bereitstellungsformat
Beliebiges Format SDR

HLG vor dem Hochladen mit Transformer-APIs in SDR umwandeln

SDR