Dokumen ini menjelaskan codec media, penampung, dan dukungan 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 tersebut akan 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 dapat bervariasi.
Perhatikan bahwa perangkat seluler tertentu mungkin mendukung format atau jenis file tambahan yang tidak tercantum dalam tabel ini. Selain itu, jika menggunakan MediaCodec secara langsung, Anda dapat mengakses salah satu format media yang tersedia, terlepas dari jenis file dan format penampung yang didukung.
Dukungan audio
Format | Encoder | Decoder | Format Penampung Jenis File | Detail | |
---|---|---|---|---|---|
Ekstraktor | Muxer | ||||
AAC LC | YA | YA |
• 3GPP (.3gp) • ADTS raw AAC (.aac, ADIF tidak didukung) • MPEG-TS (.ts, tidak dapat digeser, Android 3.0+) |
• 3GPP (.3gp) • ADTS raw AAC (.aac, ADIF tidak didukung) • MPEG-TS (not sure) (.ts, not seekable, Android 3.0+) |
Dukungan untuk konten mono/stereo/5.0/5.1 dengan frekuensi pengambilan sampel 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 pengambilan sampel 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 pengambilan sampel 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 direkomendasikan hingga 44,1 kHz di perangkat dengan output 44,1 kHz, karena penurun sampel 48 hingga 44,1 kHz tidak menyertakan filter tingkat rendah). Direkomendasikan 16-bit; tidak ada dither yang diterapkan untuk 24-bit. | |
MIDI | YA |
• Jenis 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 konstan (CBR) atau kecepatan bit variabel (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, AAC hanya audio, tidak dapat digeser, 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 decoder bersifat wajib mulai Android 14. |
APV | Android 16+ | Android 16+ | • MPEG-4 (.mp4) | • MPEG-4 (.mp4) | Encoder dan decoder bersifat wajib mulai Android 16. |
Rekomendasi encoding video
Tabel di bawah ini 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 ini mencantumkan profil encoding video framework media Android dan parameter 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
Penerapan perangkat harus mendukung resolusi video dinamis dan peralihan kecepatan frame 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 dengan kemampuan 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 mendukung kompatibilitas mundur (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 setiap atommdat
, tetapi harus menggantikan atomftyp
. - 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+ Lossless: Android 10+ Transparansi: Android 4.2.1+ |
Android 4.0+ Lossless: Android 4.2.1+ Transparansi: Android 4.2.1+ |
Encoding lossless dapat dicapai di Android 10 menggunakan kualitas 100. | WebP (.webp) |
HEIF | Android 8.0+ | HEIF (.heic; .heif) | ||
AVIF (profil dasar pengukuran) | Android 14+ | Android 14+ | Encoder dan decoder bersifat wajib mulai Android 14. | AVIF (.avif) |
Protokol jaringan
Protokol jaringan berikut didukung untuk pemutaran audio dan video:
- RTSP (RTP, SDP)
- Streaming progresif HTTP/HTTPS
- Protokol draf streaming langsung HTTP/HTTPS:
- Hanya file media MPEG-2 TS
- Protokol versi 3 Android 4.0 dan yang lebih baru
- Protokol versi 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: buffering 10-bit, metadata (statis, dinamis, dan tidak ada), fungsi transfer, dan penanganan ruang warna.
Untuk memastikan konsistensi bagi developer dan mengatasi kasus penggunaan HDR utama, kami mewajibkan OEM untuk mendukung beberapa format dasar di perangkat yang mendukung HDR:
- Untuk pemutaran konten profesional, seperti streaming film, kami mewajibkan HDR10.
- Untuk perekaman 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 (tidak ada dukungan HLG, hanya PQ): SDR (Peta tone dari HLG ke SDR di backend) Perangkat yang tidak mendukung HDR: SDR (Peta tone dari HLG ke SDR di backend) |
Kasus penggunaan 2: Perekaman kamera native atau impor dari galeri pengguna (Backend aplikasi mendukung HDR)
Format pengambilan | Format upload | Format pengiriman |
HLG | HLG | Sama dengan kasus penggunaan perekaman dalam aplikasi |
HDR10+ | HLG
Petakan tone dari HDR10+ (PQ) ke HLG sebelum mengupload menggunakan API transformer |
Sama dengan kasus penggunaan perekaman dalam aplikasi |
DV8.4 | HLG
(DV8.4 menggunakan HLG dan bitstream akan berperilaku seperti HLG sehingga tidak diperlukan pemetaan tone) |
Sama dengan kasus penggunaan perekaman dalam aplikasi |
Kasus penggunaan 3: Backend aplikasi tidak mendukung HDR
Format pengambilan | Format upload | Format pengiriman |
Format apa pun | SDR
Peta tone dari HLG ke SDR sebelum upload menggunakan API transformer |
SDR |