Tài liệu này mô tả khả năng hỗ trợ codec đa phương tiện, vùng chứa và giao thức mạng do nền tảng Android cung cấp.
Các bảng bên dưới mô tả khả năng hỗ trợ định dạng nội dung nghe nhìn được tích hợp vào nền tảng Android. CÓ nghĩa là định dạng này có trên thiết bị cầm tay và máy tính bảng chạy mọi phiên bản Android. Khi một nền tảng Android cụ thể được chỉ định, định dạng này sẽ có trên điện thoại và máy tính bảng chạy phiên bản đó và tất cả các phiên bản sau. Định dạng này cũng có thể có trong các phiên bản trước đó, nhưng điều này không được đảm bảo. Trên các kiểu dáng khác ngoài điện thoại di động và máy tính bảng, khả năng hỗ trợ định dạng nội dung nghe nhìn có thể khác nhau.
Xin lưu ý rằng một thiết bị di động cụ thể có thể hỗ trợ các định dạng hoặc loại tệp khác không có trong các bảng này. Ngoài ra, nếu sử dụng MediaCodec trực tiếp, bạn có thể truy cập vào mọi định dạng nội dung nghe nhìn hiện có, bất kể loại tệp và định dạng vùng chứa được hỗ trợ.
Hỗ trợ âm thanh
| Định dạng | Bộ mã hoá | Bộ giải mã | Định dạng vùng chứa của các loại tệp | Chi tiết | |
|---|---|---|---|---|---|
| Công cụ trích xuất | Muxer | ||||
| AAC LC | CÓ | CÓ |
• 3GPP (.3gp) • ADTS raw AAC (.aac, không được hỗ trợ ADIF) • MPEG-TS (.ts, không tìm kiếm được, Android 3.0 trở lên) |
• 3GPP (.3gp) • ADTS raw AAC (.aac, ADIF không được hỗ trợ) • MPEG-TS (không chắc chắn) (.ts, không tìm kiếm được, Android 3.0 trở lên) |
Hỗ trợ nội dung đơn âm/âm thanh nổi/5.0/5.1 với tốc độ lấy mẫu tiêu chuẩn từ 8 đến 48 kHz. |
| HE-AACv1 (AAC+) | Android 4.1 trở lên | CÓ | |||
| HE-AACv2 (AAC+ nâng cao) | CÓ | Hỗ trợ nội dung âm thanh nổi/5.0/5.1 với tốc độ lấy mẫu tiêu chuẩn từ 8 đến 48 kHz. | |||
| xHE-AAC | Android 9 trở lên | Hỗ trợ nội dung tối đa 8 kênh với tốc độ lấy mẫu tiêu chuẩn từ 8 đến 48 kHz | |||
| AAC ELD (AAC có độ trễ thấp nâng cao) | Android 4.1 trở lên | Android 4.1 trở lên | Hỗ trợ nội dung đơn âm/âm thanh nổi với tốc độ lấy mẫu tiêu chuẩn từ 16 đến 48 kHz | ||
| AMR-NB | CÓ | CÓ |
• 3GPP (.3gp) • AMR (.amr) |
• 3GPP (.3gp) • AMR (.amr) |
4,75 đến 12,2 kb/giây được lấy mẫu ở tốc độ 8 kHz |
| AMR-WB | CÓ | CÓ | 9 tốc độ từ 6,60 kbit/giây đến 23,85 kbit/giây được lấy mẫu ở tần số 16 kHz | ||
| FLAC | Android 4.1 trở lên | Android 3.1 trở lên |
• FLAC (.flac) • MPEG-4 (.mp4, .m4a, Android 10 trở lên) • Matroska (.mkv) |
Đơn âm/Âm thanh nổi (không có nhiều kênh). Tốc độ lấy mẫu lên đến 48 kHz (nhưng bạn nên dùng tốc độ lấy mẫu lên đến 44,1 kHz trên các thiết bị có đầu ra 44,1 kHz, vì bộ giảm mẫu từ 48 xuống 44,1 kHz không có bộ lọc thông thấp). Nên dùng 16 bit; không áp dụng phương pháp giảm răng cưa cho 24 bit. | |
| MIDI | CÓ |
• Loại 0 và 1 (.mid, .xmf, .mxmf) • RTTTL/RTX (.rtttl, .rtx) • OTA (.ota) • iMelody (.imy) |
MIDI loại 0 và 1. DLS phiên bản 1 và 2. XMF và Mobile XMF. Hỗ trợ các định dạng nhạc chuông RTTTL/RTX, OTA và iMelody | ||
| MP3 | CÓ |
• MP3 (.mp3) • MPEG-4 (.mp4, .m4a, Android 10 trở lên) • Matroska (.mkv, Android 10 trở lên) |
Âm thanh đơn kênh/âm thanh nổi có tốc độ bit không đổi (CBR) hoặc tốc độ bit thay đổi (VBR) từ 8 đến 320 Kb/giây | ||
| Opus | Android 10 trở lên | Android 5.0 trở lên |
• Ogg (.ogg) • MPEG-4 (.mp4) • Matroska (.mkv) |
• Ogg (.ogg) • WebM (.webm) |
|
| PCM/WAVE | Android 4.1 trở lên | CÓ | WAVE (.wav) | PCM tuyến tính 8 và 16 bit (tốc độ lên đến giới hạn của phần cứng). Tốc độ lấy mẫu cho bản ghi PCM thô ở 8000, 16000 và 44100 Hz. | |
| Vorbis | CÓ |
• Ogg (.ogg) • Matroska (.mkv, Android 4.0 trở lên) • MPEG-4 (.mp4, .m4a, Android 10 trở lên) |
• WebM (.webm) | ||
Hỗ trợ video
Định dạng video
| Định dạng | Bộ mã hoá | Bộ giải mã | Định dạng vùng chứa của các loại tệp | Chi tiết | |
|---|---|---|---|---|---|
| Công cụ trích xuất | Muxer | ||||
| H.263 | CÓ | CÓ |
• 3GPP (.3gp) • MPEG-4 (.mp4) • Matroska (.mkv) |
• 3GPP (.3gp) • MPEG-4 (.mp4) |
Android 7.0 trở lên không bắt buộc phải hỗ trợ H.263 |
| H.264 AVC Hồ sơ cơ sở (BP) |
Android™ 5.0 ® | CÓ |
• 3GPP (.3gp) • MPEG-4 (.mp4) • MPEG-TS (.ts, chỉ có âm thanh AAC, không tua được, Android 3.0 trở lên) • Matroska (.mkv) |
• 3GPP (.3gp) • MPEG-4 (.mp4) |
|
| H.264 AVC Cấu hình chính (MP) |
Android 6.0 trở lên | CÓ | Bạn phải có bộ giải mã, nên có bộ mã hoá. | ||
| H.265 HEVC | Android 5.0 trở lên |
• MPEG-4 (.mp4) • Matroska (.mkv) |
• MPEG-4 (.mp4) | Cấp độ 3 của Hồ sơ chính cho thiết bị di động và Cấp độ 4.1 của Hồ sơ chính cho Android TV | |
| MPEG-4 SP | CÓ | • MPEG-4 (.mp4) | • MPEG-4 (.mp4) | ||
| VP8 | Android 4.3 trở lên | Android 2.3.3 trở lên |
• WebM (.webm) • Matroska (.mkv, Android 4.0 trở lên) |
• WebM (.webm) | Chỉ có thể phát trực tuyến trên Android 4.0 trở lên |
| VP9 | Android 4.4 trở lên |
• WebM (.webm) • Matroska (.mkv) • MPEG-4 (.mp4) |
• WebM (.webm) | ||
| AV1 | Android 14 trở lên | Android 10 trở lên |
• MPEG-4 (.mp4) • Matroska (.mkv) |
• MPEG-4 (.mp4) | Bộ mã hoá và bộ giải mã là bắt buộc kể từ Android 14. |
| APV | Android 16 trở lên | Android 16 trở lên | • MPEG-4 (.mp4) | • MPEG-4 (.mp4) | Bộ mã hoá và bộ giải mã là bắt buộc kể từ Android 16. |
Đề xuất về việc mã hoá video
Bảng dưới đây liệt kê các thông số và hồ sơ mã hoá video của khung đa phương tiện Android được đề xuất để phát bằng bộ mã hoá và giải mã H.264 Baseline Profile. Các đề xuất tương tự cũng áp dụng cho bộ mã hoá và giải mã Main Profile, chỉ có trong Android 6.0 trở lên.
| SD (Chất lượng thấp) | SD (Chất lượng cao) | HD 720p (Không áp dụng trên mọi thiết bị) | |
|---|---|---|---|
| Độ phân giải video | 176 x 144 px | 480 x 360 pixel | 1280 x 720 px |
| Tốc độ khung hình video | 12 khung hình/giây | 30 fps | 30 fps |
| Tốc độ bit của video | 56 Kb/giây | 500 Kbps | 2 Mb/giây |
| Bộ giải mã audio | AAC-LC | AAC-LC | AAC-LC |
| Kênh âm thanh | 1 (đơn âm) | 2 (âm thanh nổi) | 2 (âm thanh nổi) |
| Tốc độ bit âm thanh | 24 Kb/giây | 128 Kb/giây | 192 Kb/giây |
Bảng dưới đây liệt kê các thông số và cấu hình mã hoá video của khung đa phương tiện Android được đề xuất để phát bằng bộ mã hoá và giải mã nội dung nghe nhìn VP8.
| SD (Chất lượng thấp) | SD (Chất lượng cao) | HD 720p (Không áp dụng trên mọi thiết bị) | HD 1080p (Không dùng được trên một số thiết bị) | |
|---|---|---|---|---|
| Độ phân giải video | 320 x 180 px | 640 x 360 px | 1280 x 720 px | 1920 x 1080 pixel |
| Tốc độ khung hình video | 30 fps | 30 fps | 30 fps | 30 fps |
| Tốc độ bit của video | 800 Kb/giây | 2 Mb/giây | 4 Mb/giây | 10 Mb/giây |
Đề xuất về việc giải mã video
Các hoạt động triển khai thiết bị phải hỗ trợ việc chuyển đổi độ phân giải video và tốc độ khung hình linh hoạt thông qua các API Android tiêu chuẩn trong cùng một luồng cho tất cả bộ mã hoá và giải mã VP8, VP9, H.264 và H.265 theo thời gian thực và lên đến độ phân giải tối đa mà mỗi bộ mã hoá và giải mã hỗ trợ trên thiết bị.
Những cách triển khai hỗ trợ bộ giải mã Dolby Vision phải tuân thủ các nguyên tắc sau:
- Cung cấp một trình trích xuất có khả năng Dolby Vision.
- Hiển thị nội dung Dolby Vision đúng cách trên màn hình thiết bị hoặc trên một cổng đầu ra video tiêu chuẩn (ví dụ: HDMI).
- Đặt chỉ mục theo dõi của(các) lớp cơ sở tương thích ngược (nếu có) giống với chỉ mục theo dõi của lớp Dolby Vision kết hợp.
Yêu cầu đối với dịch vụ phát trực tuyến video
Đối với nội dung video được phát trực tuyến qua HTTP hoặc RTSP, bạn phải đáp ứng thêm các yêu cầu sau:
- Đối với các vùng chứa 3GPP và MPEG-4, khối
moovphải đứng trước mọi khốimdat, nhưng phải đứng sau khốiftyp. - Đối với các vùng chứa 3GPP, MPEG-4 và WebM, các mẫu âm thanh và video tương ứng với cùng một độ lệch thời gian có thể không được cách nhau quá 500 KB. Để giảm thiểu hiện tượng lệch âm thanh/video này, hãy cân nhắc việc xen kẽ âm thanh và video theo kích thước đoạn nhỏ hơn.
Hỗ trợ hình ảnh
| Định dạng | Bộ mã hoá | Bộ giải mã | Chi tiết | Loại tệp Định dạng vùng chứa |
|---|---|---|---|---|
| BMP | CÓ | BMP (.bmp) | ||
| GIF | CÓ | GIF (.gif) | ||
| JPEG | CÓ | CÓ | Chân đế + lũy tiến | JPEG (.jpg) |
| PNG | CÓ | CÓ | PNG (.png) | |
| WebP |
Android 4.0 trở lên Không mất dữ liệu: Android 10 trở lên Độ trong suốt: Android 4.2.1 trở lên |
Android 4.0 trở lên Không mất dữ liệu: Android 4.2.1 trở lên Độ trong suốt: Android 4.2.1 trở lên |
Bạn có thể đạt được mức mã hoá không tổn hao trên Android 10 bằng cách sử dụng chất lượng 100. | WebP (.webp) |
| HEIF |
Android 10 trở lên (thông qua MediaCodec hoặc HeifWriter; không có trong Bitmap.compress)
|
Android 9.0 trở lên | Không bắt buộc phải có thiết bị. Kiểm tra ImageDecoder.isMimeTypeSupported("image/heif") để biết thông tin về chế độ hỗ trợ 8 bit. Việc giải mã 10 bit yêu cầu hồ sơ HEVC Main10 không bắt buộc. |
HEIF (.heic; .heif) |
| AVIF (hồ sơ cơ sở) |
Android 14 trở lên (thông qua MediaCodec; không có trong Bitmap.compress)
|
Android 12 trở lên | Tính năng giải mã 8 bit được hỗ trợ từ Android 12 trở lên. Tính năng giải mã 10 bit là không bắt buộc; hãy kiểm tra ImageDecoder.isMimeTypeSupported("image/avif") để biết thông tin hỗ trợ 10 bit (ngay cả khi sai, 8 bit vẫn hoạt động). |
AVIF (.avif) |
Giao thức mạng
Các giao thức mạng sau đây được hỗ trợ để phát âm thanh và video:
- RTSP (RTP, SDP)
- Truyền phát trực tuyến tuần tự qua HTTP/HTTPS
- Bản nháp giao thức phát trực tiếp qua HTTP/HTTPS:
- Chỉ tệp nội dung nghe nhìn MPEG-2 TS
- Giao thức phiên bản 3 Android 4.0 trở lên
- Giao thức phiên bản 2 Android 3.x
- Không được hỗ trợ trước Android 3.0
Lưu ý: HTTPS không được hỗ trợ trước Android 3.1.
Định dạng video HDR
Các nhà sản xuất thiết bị gốc (OEM) có thể bật mọi định dạng HDR mà họ chọn bằng cấu trúc HDR của Android. Cấu trúc này cung cấp các nhu cầu cốt lõi của định dạng HDR: bộ đệm 10 bit, siêu dữ liệu (tĩnh, động và không có), hàm truyền và xử lý không gian màu.
Để đảm bảo tính nhất quán cho nhà phát triển và giải quyết các trường hợp sử dụng HDR chính, chúng tôi yêu cầu các OEM hỗ trợ một số định dạng cơ bản trên những thiết bị hỗ trợ HDR:
- Đối với nội dung phát chuyên nghiệp, chẳng hạn như phim phát trực tuyến, chúng tôi yêu cầu HDR10.
- Đối với việc ghi hình và phát nội dung do người dùng tạo, chúng tôi yêu cầu HLG10 để mang lại trải nghiệm nhất quán trên các thiết bị Android.
Các OEM thêm tính năng hỗ trợ HDR phải hỗ trợ những định dạng này, nhưng cũng có thể hỗ trợ các định dạng khác như HDR10+ hoặc Dolby Vision.
| Định dạng | Hàm truyền | Siêu dữ liệu | Bộ mã hoá và giải mã | Độ sâu bit |
|---|---|---|---|---|
| HLG10 | HLG | Không | HEVC | 10 bit |
| HDR10 | PQ | Tĩnh | HEVC | 10 bit |
| HDR10+ | PQ | Tĩnh | HEVC | 10 bit |
| Dolby Vision 8.4 | HLG | Động | HEVC | 10 bit |
Đề xuất về cách xử lý định dạng
| Định dạng chụp | Định dạng tải lên | Định dạng phân phối |
| HLG | Phần phụ trợ của ứng dụng hỗ trợ HDR HLG | Các thiết bị hỗ trợ HDR (HLG):
HLG Các thiết bị hỗ trợ HDR (chỉ hỗ trợ PQ, không hỗ trợ HLG): SDR (Ánh xạ tông màu từ HLG sang SDR ở phần phụ trợ) Các thiết bị không hỗ trợ HDR: SDR (Ánh xạ tông màu từ HLG sang SDR ở phần phụ trợ) |
Trường hợp sử dụng 2: Chụp bằng camera gốc hoặc nhập từ thư viện của người dùng (Phần phụ trợ của ứng dụng hỗ trợ HDR)
| Định dạng chụp | Định dạng tải lên | Định dạng phân phối |
| HLG | HLG | Tương tự như trường hợp sử dụng tính năng chụp trong ứng dụng |
| HDR10+ | HLG
Ánh xạ tông màu từ HDR10+ (PQ) sang HLG trước khi tải lên bằng API biến đổi |
Tương tự như trường hợp sử dụng tính năng chụp trong ứng dụng |
| DV8.4 | HLG
(DV8.4 sử dụng HLG và luồng bit sẽ hoạt động dưới dạng HLG nên không cần ánh xạ tông màu) |
Tương tự như trường hợp sử dụng tính năng chụp trong ứng dụng |
Trường hợp sử dụng 3: Phần phụ trợ của ứng dụng không hỗ trợ HDR
| Định dạng chụp | Định dạng tải lên | Định dạng phân phối |
| Mọi định dạng | SDR
Ánh xạ tông màu từ HLG sang SDR trước khi tải lên bằng cách sử dụng các API biến đổi |
SDR |