Format media yang didukung

Dokumen ini menjelaskan dukungan codec media, penampung, dan protokol jaringan yang disediakan oleh platform Android.

Tabel di bawah ini menjelaskan dukungan format media yang disertakan di platform Android. YA berarti format tersedia di perangkat genggam dan tablet yang menjalankan semua versi Android. Jika platform Android tertentu ditentukan, format ini tersedia di ponsel dan tablet yang menjalankan versi tersebut dan semua versi yang lebih baru. Format ini mungkin juga tersedia di versi sebelumnya, tetapi tidak dijamin. Pada faktor bentuk selain handset dan tablet, dukungan format media mungkin bervariasi.

Perhatikan bahwa perangkat seluler tertentu mungkin mendukung format atau jenis file tambahan yang tidak tercantum dalam tabel ini. Selain itu, jika Anda menggunakan MediaCodec secara langsung, Anda dapat mengakses format media yang tersedia, terlepas dari jenis file yang didukung dan format penampung.

Dukungan audio

Format Encoder Decoder Format Penampung Jenis File Detail
Ekstraktor Muxer
AAC LC YA YA • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF tidak didukung)
• MPEG-TS (.ts, tidak dapat dicari, Android 3.0+)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ADIF tidak didukung)
• MPEG-TS (tidak yakin) (.ts, tidak dapat dicari, Android 3.0+)
Dukungan untuk konten mono/stereo/5.0/5.1 dengan frekuensi sampling standar dari 8 hingga 48 kHz.
HE-AACv1 (AAC+) Android 4.1+ YA
HE-AACv2 (AAC+ ditingkatkan)   YA Dukungan untuk konten stereo/5.0/5.1 dengan frekuensi sampling standar dari 8 hingga 48 kHz.
xHE-AAC   Android 9+ Dukungan untuk konten hingga 8 saluran dengan frekuensi sampling standar dari 8 hingga 48 kHz
AAC ELD (AAC yang ditingkatkan dengan delay rendah) Android 4.1+ Android 4.1+ Dukungan untuk konten mono/stereo dengan frekuensi sampling standar dari 16 hingga 48 kHz
AMR-NB YA YA • 3GPP (.3gp)
• AMR (.amr)
• 3GPP (.3gp)
• AMR (.amr)
4,75 hingga 12,2 kbps dengan sampel @ 8 kHz
AMR-WB YA YA 9 frekuensi dari 6,60 kbit/dtk hingga 23,85 kbit/dtk dengan sampel @ 16 kHz
FLAC Android 4.1+ Android 3.1+ • FLAC (.flac)
• MPEG-4 (.mp4, .m4a, Android 10+)
• Matroska (.mkv)
Mono/Stereo (tanpa multisaluran). Frekuensi sampel hingga 48 kHz (tetapi hingga 44,1 kHz direkomendasikan di perangkat dengan output 44,1 kHz, karena downsampler 48 hingga 44,1 kHz tidak menyertakan filter low-pass). 16-bit direkomendasikan; tidak ada dithering yang diterapkan untuk 24-bit.
MIDI   YA • Tipe 0 dan 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
MIDI Jenis 0 dan 1. DLS Versi 1 dan 2. XMF dan Mobile XMF. Dukungan untuk format nada dering RTTTL/RTX, OTA, dan iMelody
MP3   YA • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10+)
• Matroska (.mkv, Android 10+)
Mono/Stereo 8-320 Kbps constant (CBR) atau variable bit-rate (VBR)
Opus Android 10+ Android 5.0+ • Ogg (.ogg)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• Ogg (.ogg)
• WebM (.webm)
PCM/WAVE Android 4.1+ YA WAVE (.wav) PCM linear 8- dan 16-bit (frekuensi hingga batas hardware). Frekuensi sampling untuk rekaman PCM mentah pada 8.000, 16.000, dan 44.100 Hz.
Vorbis   YA • Ogg (.ogg)
• Matroska (.mkv, Android 4.0+)
• MPEG-4 (.mp4, .m4a, Android 10+)
• WebM (.webm)  

Dukungan video

Format video

Format Encoder Decoder Format Penampung Jenis File Detail
Ekstraktor Muxer
H.263 YA YA • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
Dukungan untuk H.263 bersifat opsional di Android 7.0+
H.264 AVC
Profil Dasar Pengukuran (BP)
Android 3.0+ YA • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, hanya audio AAC, tidak dapat dicari, Android 3.0+)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
H.264 AVC
Profil Utama (MP)
Android 6.0+ YA Decoder bersifat wajib, encoder direkomendasikan.
H.265 HEVC Android 5.0+ • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) Profil Utama Level 3 untuk perangkat seluler dan Profil Utama Level 4.1 untuk Android TV
MPEG-4 SP   YA • MPEG-4 (.mp4) • MPEG-4 (.mp4)  
VP8 Android 4.3+ Android 2.3.3+ • WebM (.webm)
• Matroska (.mkv, Android 4.0+)
• WebM (.webm) Streaming hanya dapat dilakukan di Android 4.0 dan yang lebih baru
VP9 Android 4.4+ • WebM (.webm)
• Matroska (.mkv)
• MPEG-4 (.mp4)
• WebM (.webm)
AV1 Android 14+ Android 10+ • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) Encoder dan dekoder wajib ada mulai Android 14.
APV Android 16+ Android 16+ • MPEG-4 (.mp4) • MPEG-4 (.mp4) Encoder dan decoder wajib ada mulai Android 16.

Rekomendasi encoding video

Tabel di bawah mencantumkan profil dan parameter encoding video framework media Android yang direkomendasikan untuk pemutaran menggunakan codec Profil Dasar Pengukuran H.264. Rekomendasi yang sama berlaku untuk codec Profil Utama, yang hanya tersedia di Android 6.0 dan yang lebih baru.

  SD (Kualitas rendah) SD (Kualitas tinggi) HD 720p (Tidak semua perangkat tersedia)
Resolusi video 176 x 144 px 480 x 360 px 1280 x 720 px
Frekuensi gambar video 12 fps 30 fps 30 fps
Kecepatan bit video 56 Kbps 500 Kbps 2 Mbps
Codec audio AAC-LC AAC-LC AAC-LC
Saluran audio 1 (mono) 2 (stereo) 2 (stereo)
Kecepatan bit audio 24 Kbps 128 Kbps 192 Kbps

Tabel di bawah mencantumkan profil dan parameter encoding video framework media Android yang direkomendasikan untuk pemutaran menggunakan codec media VP8.

  SD (Kualitas rendah) SD (Kualitas tinggi) HD 720p (Tidak semua perangkat tersedia) HD 1080p (Tidak tersedia di semua perangkat)
Resolusi video 320 x 180 px 640 x 360 px 1280 x 720 px 1920 x 1080 px
Frekuensi gambar video 30 fps 30 fps 30 fps 30 fps
Kecepatan bit video 800 Kbps 2 Mbps 4 Mbps 10 Mbps

Rekomendasi dekode video

Implementasi perangkat harus mendukung pengalihan resolusi video dan kecepatan frame dinamis melalui API Android standar dalam streaming yang sama untuk semua codec VP8, VP9, H.264, dan H.265 secara real time dan hingga resolusi maksimum yang didukung oleh setiap codec di perangkat.

Penerapan yang mendukung decoder Dolby Vision harus mengikuti pedoman berikut:

  • Menyediakan ekstraktor yang kompatibel dengan Dolby Vision.
  • Menampilkan konten Dolby Vision dengan benar di layar perangkat atau di port output video standar (misalnya, HDMI).
  • Tetapkan indeks trek lapisan dasar yang kompatibel dengan sistem lama (jika ada) agar sama dengan indeks trek lapisan Dolby Vision gabungan.

Persyaratan streaming video

Ada persyaratan tambahan untuk konten video yang diputar dengan streaming melalui HTTP atau RTSP:

  • Untuk penampung 3GPP dan MPEG-4, atom moov harus mendahului atom mdat, tetapi harus mengikuti atom ftyp.
  • Untuk penampung 3GPP, MPEG-4, dan WebM, sampel audio dan video yang berhubungan dengan beda waktu yang sama tidak boleh memiliki selisih lebih dari 500 KB. Untuk meminimalkan kecenderungan audio/video ini, sebaiknya sisipkan audio dan video dalam potongan yang berukuran lebih kecil.

Dukungan gambar

Format Encoder Decoder Detail Jenis File
Format Penampung
BMP   YA   BMP (.bmp)
GIF   YA   GIF (.gif)
JPEG YA YA Dasar+progresif JPEG (.jpg)
PNG YA YA   PNG (.png)
WebP Android 4.0+
Tanpa kehilangan data: Android 10+
Transparansi: Android 4.2.1+
Android 4.0+
Tanpa kehilangan data: Android 4.2.1+
Transparansi: Android 4.2.1+
Encoding tanpa kehilangan data dapat dicapai di Android 10 menggunakan kualitas 100. WebP (.webp)
HEIF Android 10+
(melalui MediaCodec atau HeifWriter; tidak ada di Bitmap.compress)
Android 9.0+ Perangkat opsional. Periksa ImageDecoder.isMimeTypeSupported("image/heif") untuk dukungan 8-bit. Dekode 10-bit memerlukan profil HEVC Main10 opsional. HEIF (.heic; .heif)
AVIF (profil dasar pengukuran) Android 14+
(melalui MediaCodec; tidak ada di Bitmap.compress)
Android 12+ Dekode 8-bit didukung mulai Android 12+. Dekode 10-bit bersifat opsional; periksa ImageDecoder.isMimeTypeSupported("image/avif") untuk dukungan 10-bit (meskipun salah, 8-bit tetap berfungsi). AVIF (.avif)

Protokol jaringan

Protokol jaringan berikut didukung untuk pemutaran audio dan video:

  • RTSP (RTP, SDP)
  • Streaming progresif HTTP/HTTPS
  • Draf protokol live streaming HTTP/HTTPS:
    • Hanya file media MPEG-2 TS
    • Versi protokol 3 Android 4.0 dan yang lebih baru
    • Versi protokol 2 Android 3.x
    • Tidak didukung sebelum Android 3.0

Note: HTTPS tidak didukung sebelum Android 3.1.

Format video HDR

OEM dapat mengaktifkan format HDR apa pun yang mereka pilih dengan arsitektur HDR Android, yang menyediakan kebutuhan inti format HDR: buffer 10-bit, metadata (statis, dinamis, dan tidak ada), fungsi transfer, dan penanganan ruang warna.

Untuk memastikan konsistensi bagi developer dan menangani kasus penggunaan HDR utama, kami mewajibkan OEM mendukung beberapa format dasar di perangkat yang mendukung HDR:

  • Untuk pemutaran konten profesional, seperti streaming film, kami mewajibkan HDR10.
  • Untuk pengambilan dan pemutaran konten buatan pengguna, kami mewajibkan HLG10 untuk memberikan pengalaman yang konsisten di seluruh perangkat Android.

OEM yang menambahkan dukungan HDR harus mendukung format ini, tetapi juga dapat mendukung format tambahan seperti HDR10+ atau Dolby Vision.

Format Fungsi Transfer Metadata Codec Depth Bit
HLG10 HLG Tidak HEVC 10-bit
HDR10 PQ Statis HEVC 10-bit
HDR10+ PQ Statis HEVC 10-bit
Dolby Vision 8.4 HLG Dinamis HEVC 10-bit

Rekomendasi penanganan format

Format pengambilan Format upload Format pengiriman
HLG Backend Aplikasi mendukung HDR HLG Perangkat yang mendukung HDR (HLG):

HLG

Perangkat mendukung HDR (tanpa dukungan HLG, hanya PQ):

SDR (Pemetaan tone dari HLG ke SDR di backend)

Perangkat yang tidak mendukung HDR: SDR (Pemetaan nada dari HLG ke SDR di backend)

Kasus penggunaan 2: Pengambilan gambar dengan kamera native atau impor dari galeri pengguna (Backend aplikasi mendukung HDR)

Format pengambilan Format upload Format pengiriman
HLG HLG Sama seperti kasus penggunaan perekaman dalam aplikasi
HDR10+ HLG

Memetakan tone dari HDR10+ (PQ) ke HLG sebelum diupload menggunakan API transformer

Sama seperti kasus penggunaan pengambilan gambar dalam aplikasi
DV8.4 HLG

(DV8.4 menggunakan HLG dan bitstream akan berperilaku seperti HLG sehingga tidak memerlukan pemetaan nuansa)

Sama seperti kasus penggunaan perekaman dalam aplikasi

Kasus penggunaan 3: Backend aplikasi tidak mendukung HDR

Format pengambilan Format upload Format pengiriman
Format apa pun SDR

Memetakan nada dari HLG ke SDR sebelum mengupload menggunakan API transformer

SDR