รูปแบบสื่อที่รองรับ

เอกสารนี้อธิบายการรองรับตัวแปลงรหัสสื่อ คอนเทนเนอร์ และโปรโตคอลเครือข่ายที่แพลตฟอร์ม Android มีให้

ตารางด้านล่างอธิบายการรองรับรูปแบบสื่อที่ฝังอยู่ในแพลตฟอร์ม Android ใช่ หมายความว่ารูปแบบดังกล่าวพร้อมใช้งานบนอุปกรณ์พกพาและแท็บเล็ตที่ใช้ Android ทุกเวอร์ชัน เมื่อระบุแพลตฟอร์ม Android ที่เจาะจง รูปแบบดังกล่าวจะพร้อมใช้งานในโทรศัพท์มือถือและแท็บเล็ตที่ใช้เวอร์ชันนั้นและเวอร์ชันที่ใหม่กว่าทั้งหมด รูปแบบนี้อาจพร้อมใช้งานในเวอร์ชันก่อนหน้าด้วย แต่เราไม่รับประกัน รูปแบบของอุปกรณ์ที่ไม่ใช่โทรศัพท์มือถือและแท็บเล็ตอาจรองรับรูปแบบสื่อที่แตกต่างกัน

โปรดทราบว่าอุปกรณ์เคลื่อนที่บางรุ่นอาจรองรับรูปแบบหรือประเภทไฟล์เพิ่มเติมที่ไม่ได้แสดงในตารางเหล่านี้ นอกจากนี้ หากคุณใช้ MediaCodec โดยตรง คุณจะเข้าถึงรูปแบบสื่อใดก็ได้ที่มีให้ใช้งาน โดยไม่คำนึงถึงประเภทไฟล์และรูปแบบคอนเทนเนอร์ที่รองรับ

การรองรับเสียง

รูปแบบ โปรแกรมเปลี่ยนไฟล์ ตัวถอดรหัส รูปแบบคอนเทนเนอร์ประเภทไฟล์ รายละเอียด
เครื่องมือแยกข้อมูล ตัวรวม
AAC LC ใช่ ใช่ • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ไม่รองรับ ADIF)
• MPEG-TS (.ts, ไม่สามารถกรอได้, Android 3.0 ขึ้นไป)
• 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS raw AAC (.aac, ไม่รองรับ ADIF)
• MPEG-TS (ไม่แน่ใจ) (.ts, ไม่สามารถกรอได้, Android 3.0+)
รองรับเนื้อหาแบบโมโน/สเตอริโอ/5.0/5.1 ที่มีอัตราการสุ่มตัวอย่างมาตรฐานตั้งแต่ 8 ถึง 48 kHz
HE-AACv1 (AAC+) Android 4.1 ขึ้นไป ใช่
HE-AACv2 (AAC+ ที่ปรับปรุงแล้ว)   ใช่ รองรับเนื้อหาสเตอริโอ/5.0/5.1 ที่มีอัตราการสุ่มตัวอย่างมาตรฐานตั้งแต่ 8 ถึง 48 kHz
xHE-AAC   Android 9 ขึ้นไป รองรับเนื้อหาสูงสุด 8 แชนแนลที่มีอัตราการสุ่มตัวอย่างมาตรฐานตั้งแต่ 8 ถึง 48 kHz
AAC ELD (AAC แบบลดเวลาในการตอบสนอง) Android 4.1 ขึ้นไป Android 4.1 ขึ้นไป รองรับเนื้อหาโมโน/สเตอริโอที่มีอัตราการสุ่มตัวอย่างมาตรฐานตั้งแต่ 16 ถึง 48 kHz
AMR-NB ใช่ ใช่ • 3GPP (.3gp)
• AMR (.amr)
• 3GPP (.3gp)
• AMR (.amr)
4.75 ถึง 12.2 kbps ที่อัตราตัวอย่าง 8kHz
AMR-WB ใช่ ใช่ 9 อัตราตั้งแต่ 6.60 Kbps ถึง 23.85 Kbps ที่อัตราตัวอย่าง 16kHz
FLAC Android 4.1 ขึ้นไป Android 3.1 ขึ้นไป • FLAC (.flac)
• MPEG-4 (.mp4, .m4a, Android 10+)
• Matroska (.mkv)
โมโน/สเตอริโอ (ไม่มีหลายช่อง) อัตราการสุ่มตัวอย่างสูงสุด 48 kHz (แต่แนะนำให้ใช้สูงสุด 44.1 kHz ในอุปกรณ์ที่มีเอาต์พุต 44.1 kHz เนื่องจากตัวแปลงสัญญาณ 48 เป็น 44.1 kHz จะไม่มีตัวกรอง Low Pass) แนะนำ 16 บิต ใช้การปรับอัตราส่วนสัญญาณรบกวนสำหรับ 24 บิตไม่ได้
MIDI   ใช่ • ประเภท 0 และ 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
MIDI ประเภท 0 และ 1 DLS เวอร์ชัน 1 และ 2 XMF และ Mobile XMF รองรับรูปแบบเสียงเรียกเข้า RTTTL/RTX, OTA และ iMelody
MP3   ใช่ • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10+)
• Matroska (.mkv, Android 10+)
โมโน/สเตอริโอ 8-320 Kbps แบบคงที่ (CBR) หรืออัตราบิตแบบผันแปร (VBR)
Opus Android 10 ขึ้นไป Android 5.0 ขึ้นไป • Ogg (.ogg)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• Ogg (.ogg)
WebM (.webm)
PCM/WAVE Android 4.1 ขึ้นไป ใช่ WAVE (.wav) PCM แบบเชิงเส้น 8 และ 16 บิต (อัตราสูงสุดตามขีดจำกัดของฮาร์ดแวร์) อัตราการสุ่มตัวอย่างสำหรับการบันทึก PCM ดิบที่ 8000, 16000 และ 44100 Hz
Vorbis   ใช่ • Ogg (.ogg)
• Matroska (.mkv, Android 4.0+)
• MPEG-4 (.mp4, .m4a, Android 10+)
WebM (.webm)  

การรองรับวิดีโอ

รูปแบบวิดีโอ

รูปแบบ โปรแกรมเปลี่ยนไฟล์ ตัวถอดรหัส รูปแบบคอนเทนเนอร์ประเภทไฟล์ รายละเอียด
เครื่องมือแยกข้อมูล ตัวรวม
H.263 ใช่ ใช่ • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
รองรับ H.263 ไม่บังคับใน Android 7.0 ขึ้นไป
H.264 AVC
โปรไฟล์พื้นฐาน (BP)
Android 3.0+ ใช่ • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, เสียง AAC เท่านั้น ไม่สามารถกรอได้, Android 3.0 ขึ้นไป)
• Matroska (.mkv)
• 3GPP (.3gp)
• MPEG-4 (.mp4)
H.264 AVC
โปรไฟล์หลัก (MP)
Android 6.0 ขึ้นไป ใช่ ต้องใช้โปรแกรมถอดรหัส และแนะนำให้ใช้โปรแกรมเข้ารหัส
H.265 HEVC Android 5.0 ขึ้นไป • MPEG-4 (.mp4)
• Matroska (.mkv)
• MPEG-4 (.mp4) โปรไฟล์หลักระดับ 3 สำหรับอุปกรณ์เคลื่อนที่และโปรไฟล์หลักระดับ 4.1 สำหรับ Android TV
MPEG-4 SP   ใช่ • MPEG-4 (.mp4) • MPEG-4 (.mp4)  
VP8 Android 4.3 ขึ้นไป Android 2.3.3 ขึ้นไป WebM (.webm)
• Matroska (.mkv, Android 4.0+)
WebM (.webm) Streamable ใช้ได้ใน Android 4.0 ขึ้นไปเท่านั้น
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) ต้องใช้โปรแกรมเปลี่ยนไฟล์และโปรแกรมถอดรหัสตั้งแต่ Android 14 เป็นต้นไป
APV Android 16 ปีขึ้นไป Android 16 ปีขึ้นไป • MPEG-4 (.mp4) • MPEG-4 (.mp4) โปรแกรมเปลี่ยนไฟล์และโปรแกรมถอดรหัสเป็นสิ่งจําเป็นตั้งแต่ Android 16 เป็นต้นไป

คําแนะนําเกี่ยวกับการเข้ารหัสวิดีโอ

ตารางด้านล่างแสดงโปรไฟล์และพารามิเตอร์การเข้ารหัสวิดีโอของเฟรมเวิร์กสื่อ Android ที่แนะนำสำหรับการเล่นโดยใช้ตัวแปลงรหัสโปรไฟล์ Baseline ของ H.264 คำแนะนำเดียวกันนี้ใช้กับตัวแปลงรหัสโปรไฟล์หลักได้ด้วย ซึ่งใช้ได้ใน Android 6.0 ขึ้นไปเท่านั้น

  SD (คุณภาพต่ำ) SD (คุณภาพสูง) HD 720p (ไม่พร้อมให้บริการในอุปกรณ์ทุกรุ่น)
ความละเอียดของวิดีโอ 176 x 144 พิกเซล 480 x 360 พิกเซล 1280 x 720 พิกเซล
อัตราเฟรมของวิดีโอ 12 FPS 30 fps 30 fps
อัตราบิตของวิดีโอ 56 Kbps 500 Kbps 2 Mbps
ตัวแปลงรหัสเสียง AAC-LC AAC-LC AAC-LC
ช่องเสียง 1 (โมโน) 2 (สเตอริโอ) 2 (สเตอริโอ)
อัตราบิตของเสียง 24 Kbps 128 Kbps 192 Kbps

ตารางด้านล่างแสดงโปรไฟล์และพารามิเตอร์การเข้ารหัสวิดีโอของเฟรมเวิร์กสื่อ Android ที่แนะนำสำหรับการเล่นโดยใช้ตัวแปลงรหัสสื่อ VP8

  SD (คุณภาพต่ำ) SD (คุณภาพสูง) HD 720p (ไม่พร้อมให้บริการในอุปกรณ์ทุกรุ่น) HD 1080p (ไม่พร้อมให้บริการในอุปกรณ์ทุกเครื่อง)
ความละเอียดของวิดีโอ 320 x 180 พิกเซล 640 x 360 พิกเซล 1280 x 720 พิกเซล 1920 x 1080 พิกเซล
อัตราเฟรมของวิดีโอ 30 fps 30 fps 30 fps 30 fps
อัตราบิตของวิดีโอ 800 Kbps 2 Mbps 4 Mbps 10 Mbps

คําแนะนําในการถอดรหัสวิดีโอ

การติดตั้งใช้งานอุปกรณ์ต้องรองรับความละเอียดวิดีโอแบบไดนามิกและการเปลี่ยนอัตราเฟรมผ่าน API มาตรฐานของ Android ภายในสตรีมเดียวกันสำหรับตัวแปลงรหัส VP8, VP9, H.264 และ H.265 ทั้งหมดแบบเรียลไทม์และสูงสุดถึงความละเอียดสูงสุดที่ตัวแปลงรหัสแต่ละรายการในอุปกรณ์รองรับ

การใช้งานที่รองรับโปรแกรมถอดรหัส Dolby Vision ต้องเป็นไปตามหลักเกณฑ์ต่อไปนี้

  • ระบุโปรแกรมแยกที่สามารถแยกไฟล์ Dolby Vision
  • แสดงเนื้อหา Dolby Vision บนหน้าจออุปกรณ์หรือพอร์ตเอาต์พุตวิดีโอมาตรฐานอย่างเหมาะสม (เช่น HDMI)
  • ตั้งค่าดัชนีแทร็กของเเลเยอร์ฐานที่เข้ากันได้แบบย้อนหลัง (หากมี) ให้เหมือนกับดัชนีแทร็กของเเลเยอร์ Dolby Vision ที่รวม

ข้อกำหนดในการสตรีมวิดีโอ

เนื้อหาวิดีโอที่สตรีมผ่าน HTTP หรือ RTSP มีข้อกำหนดเพิ่มเติมดังนี้

  • สำหรับคอนเทนเนอร์ 3GPP และ MPEG-4 อะตอม moov ต้องอยู่ก่อนอะตอม mdat แต่ต้องอยู่หลังอะตอม ftyp
  • สำหรับคอนเทนเนอร์ 3GPP, MPEG-4 และ WebM แท็บเล็ตเสียงและวิดีโอที่สอดคล้องกับการเลื่อนเวลาเดียวกันต้องอยู่ห่างกันไม่เกิน 500 KB หากต้องการลดการเลื่อนเวลาของเสียง/วิดีโอนี้ ให้ลองสลับเสียงและวิดีโอเป็นกลุ่มเล็กๆ

การรองรับรูปภาพ

รูปแบบ โปรแกรมเปลี่ยนไฟล์ ตัวถอดรหัส รายละเอียด ประเภทไฟล์
รูปแบบคอนเทนเนอร์
BMP   ใช่   BMP (.bmp)
GIF   ใช่   GIF (.gif)
JPEG ใช่ ใช่ Base+progressive JPEG (.jpg)
PNG ใช่ ใช่   PNG (.png)
WebP Android 4.0 ขึ้นไป
ไม่มีการสูญเสีย: Android 10 ขึ้นไป
โปร่งใส: Android 4.2.1 ขึ้นไป
Android 4.0 ขึ้นไป
เสียงแบบไม่สูญเสียคุณภาพ: Android 4.2.1 ขึ้นไป
เสียงแบบโปร่งใส: Android 4.2.1 ขึ้นไป
คุณสามารถเข้ารหัสแบบไม่สูญเสียข้อมูลใน Android 10 โดยใช้คุณภาพ 100 WebP (.webp)
HEIF   Android 8.0 ขึ้นไป   HEIF (.heic; .heif)
AVIF (โปรไฟล์พื้นฐาน) Android 14 ขึ้นไป Android 14 ขึ้นไป ต้องใช้โปรแกรมเปลี่ยนไฟล์และโปรแกรมถอดรหัสตั้งแต่ Android 14 เป็นต้นไป AVIF (.avif)

โปรโตคอลเครือข่าย

โปรโตคอลเครือข่ายต่อไปนี้รองรับการเล่นเสียงและวิดีโอ

  • RTSP (RTP, SDP)
  • การสตรีมแบบเป็นขั้นเป็นตอนของ HTTP/HTTPS
  • โปรโตคอลฉบับร่างสตรีมมิงแบบสด HTTP/HTTPS:
    • ไฟล์สื่อ MPEG-2 TS เท่านั้น
    • โปรโตคอลเวอร์ชัน 3 Android 4.0 ขึ้นไป
    • โปรโตคอลเวอร์ชัน 2 Android 3.x
    • ไม่รองรับก่อน Android 3.0

หมายเหตุ: ระบบไม่รองรับ HTTPS ก่อน Android 3.1

รูปแบบวิดีโอ HDR

OEM สามารถเปิดใช้รูปแบบ HDR ใดก็ได้ที่ต้องการด้วยสถาปัตยกรรม HDR ของ Android ซึ่งตอบสนองความต้องการหลักของรูปแบบ HDR ได้แก่ บัฟเฟอร์ 10 บิต ข้อมูลเมตา (แบบคงที่ แบบไดนามิก และไม่มี) ฟังก์ชันการโอน และการจัดการพื้นที่สี

เรากำหนดให้ OEM ต้องรองรับรูปแบบพื้นฐาน 2-3 รูปแบบในอุปกรณ์ที่รองรับ HDR เพื่อให้นักพัฒนาแอปทำงานได้อย่างราบรื่นและรองรับกรณีการใช้งาน HDR ที่สำคัญ ดังนี้

  • สำหรับการเล่นเนื้อหาระดับมืออาชีพ เช่น สตรีมมิงภาพยนตร์ เรากำหนดให้ใช้ HDR10
  • สำหรับการบันทึกและเล่นเนื้อหาที่ผู้ใช้สร้างขึ้น เรากำหนดให้ใช้ HLG10 เพื่อให้อุปกรณ์ Android ทั้งหมดมอบประสบการณ์การใช้งานที่สอดคล้องกัน

OEM ที่เพิ่มการรองรับ HDR จะต้องรองรับรูปแบบเหล่านี้ แต่อาจรองรับรูปแบบเพิ่มเติมได้ด้วย เช่น HDR10+ หรือ Dolby Vision

รูปแบบ ฟังก์ชันการโอน ข้อมูลเมตา ตัวแปลงรหัส ความลึกของบิต
HLG10 HLG ไม่ HEVC 10 บิต
HDR10 PQ คงที่ HEVC 10 บิต
HDR10+ PQ คงที่ HEVC 10 บิต
Dolby Vision 8.4 HLG แบบไดนามิก HEVC 10 บิต

คําแนะนําในการจัดการรูปแบบ

รูปแบบการจับภาพ รูปแบบการอัปโหลด รูปแบบการนำส่ง
HLG แบ็กเอนด์ของแอปรองรับ HDR HLG อุปกรณ์ที่รองรับ HDR (HLG)

HLG

อุปกรณ์ที่รองรับ HDR (ไม่รองรับ HLG รองรับเฉพาะ PQ)

SDR (แผนที่โทนสีจาก HLG เป็น SDR ในแบ็กเอนด์)

อุปกรณ์ที่ไม่รองรับ HDR: SDR (การปรับโทนสีจาก HLG เป็น SDR ในแบ็กเอนด์)

กรณีการใช้งาน 2: การจับภาพจากกล้องที่มาพร้อมเครื่องหรือนำเข้าจากแกลเลอรีของผู้ใช้ (แบ็กเอนด์ของแอปรองรับ HDR)

รูปแบบการจับภาพ รูปแบบการอัปโหลด รูปแบบการนำส่ง
HLG HLG เหมือนกับกรณีการใช้งานการจับภาพในแอป
HDR10+ HLG

แมปโทนสีจาก HDR10+ (PQ) เป็น HLG ก่อนอัปโหลดโดยใช้ Transformer API

เหมือนกับกรณีการใช้งานการจับภาพในแอป
DV8.4 HLG

(DV8.4 ใช้ HLG และบิตสตรีมจะทำงานแบบ HLG จึงไม่ต้องทําการปรับโทนสี)

เหมือนกับกรณีการใช้งานการจับภาพในแอป

กรณีการใช้งาน 3: แบ็กเอนด์ของแอปไม่รองรับ HDR

รูปแบบการจับภาพ รูปแบบการอัปโหลด รูปแบบการนำส่ง
รูปแบบใดก็ได้ SDR

แมปโทนสีจาก HLG เป็น SDR ก่อนอัปโหลดโดยใช้ Transformer API

SDR