Android平台支持的多媒体格式
文章目錄
- 前言
- 一、音頻支持
- 音頻格式和編解碼器
- 二、視頻支持
- 視頻格式和編解碼器
- 視頻編碼建議
- 視頻解碼建議
- 視頻流式傳輸要求
- 三、圖片支持
- 四、網絡協議
前言
本文檔介紹了 Android 平臺提供的媒體編解碼器、容器和網絡協議支持。(摘抄自google 文檔)
作為應用開發者,您可以使用任何 Android 設備上提供的任何媒體編解碼器(包括 Android 平臺提供的媒體編解碼器和特定于設備的媒體編解碼器)。不過,最佳做法是使用與設備無關的媒體編碼配置文件。
下表介紹了 Android 平臺中內置的媒體格式支持。括號中注明了不能保證在所有 Android 平臺版本上均可用的編解碼器,例如:(Android 3.0 及更高版本)。請注意,任何給定的移動設備均可能支持該表中未列出的其他格式或文件類型。
Android 兼容性定義的第 5 部分指定了要與 Android 8.1 兼容,設備必須支持的媒體格式。
一、音頻支持
音頻格式和編解碼器
| AAC LC | ? | ? | 支持單聲道/立體聲/5.0/5.1 內容,標準采樣率為 8-48 kHz。 | ? 3GPP (.3gp) ? MPEG-4(.mp4、.m4a) ? ADTS 原始 AAC(.aac、在 Android 3.1 及更高版本中解碼、在 Android 4.0 及更高版本中編碼、不支持 ADIF) ? MPEG-TS(.ts、不可查找、Android 3.0 及更高版本) |
| HE-AACv1 (AAC+) | ? (Android 4.1 及更高版本) | ? | ||
| HE-AACv2(增強型 AAC+) | ? | ? | 支持立體聲/5.0/5.1 內容,標準采樣率為 8-48 kHz。 | |
| AAC ELD(增強型低延遲 AAC) | ? (Android 4.1 及更高版本) | ? (Android 4.1 及更高版本) | 支持單聲道/立體聲內容,標準采樣率為 16-48 kHz | |
| AMR-NB | ? | ? | 4.75-12.2 kbps,采樣率為 8 kHz | 3GPP (.3gp) |
| AMR-WB | ? | ? | 有 9 個比特率(介于 6.60-23.85 kbit/s 之間)可供選擇,采樣率為 16 kHz | 3GPP (.3gp) |
| FLAC | ? (Android 4.1 及更高版本) | ? (Android 3.1 及更高版本) | 單聲道/立體聲(非多聲道)。采樣率最高可達 48 kHz(但對于輸出為 44.1 kHz 的設備,則建議最高不超過 44.1 kHz,因為 48-44.1 kHz 的降采樣器不包含低通濾波器)。建議使用 16 位;對于 24 位,不會應用任何抖動。 | 僅支持 FLAC (.flac) |
| GSM | ? | ? | Android 支持在電話設備上進行 GSM 解碼 | GSM (.gsm) |
| MIDI | ? | ? | MIDI 類型 0 和 1。DLS 版本 1 和 2。XMF 和 Mobile XMF。支持鈴聲格式 RTTTL/RTX、OTA 和 iMelody | ? 類型 0 和 1(.mid、.xmf、.mxmf) ? RTTTL/RTX(.rtttl、.rtx) ? OTA (.ota) ? iMelody (.imy) |
| MP3 | ? | ? | 單聲道/立體聲 8-320 Kbps 恒定 (CBR) 或可變比特率 (VBR) | MP3 (.mp3) |
| Opus | ? (Android 5.0 及更高版本) | Matroska (.mkv) | ||
| PCM/WAVE | ? (Android 4.1 及更高版本) | ? | 8 位和 16 位線性 PCM(比特率最高可達到硬件上限)。以 8000、16000 和 44100 Hz 錄制原始 PCM 所需的采樣率。 | WAVE (.wav) |
| Vorbis | ? | ? | ? | ? Ogg (.ogg) ? Matroska(.mkv、Android 4.0 及更高版本) |
二、視頻支持
視頻格式和編解碼器
| H.263 | ? | ? | 對 H.263 的支持在 Android 7.0 及更高版本中并非必需 | ? 3GPP (.3gp) ? MPEG-4 (.mp4) |
| H.264 AVC Baseline?Profile?(BP) | ? (Android 3.0 及更高版本) | ? | ? 3GPP (.3gp) ? MPEG-4 (.mp4) ? MPEG-TS(.ts、僅限 AAC 音頻、不可查找、Android 3.0 及更高版本) | |
| H.264 AVC Main?Profile?(MP) | ? (Android 6.0 及更高版本) | ? | 解碼器為必需項,編碼器為推薦項。 | |
| H.265 HEVC | ? (Android 5.0 及更高版本) | 適用于移動設備的 Main Profile Level 3 和適用于 Android TV 的 Main Profile Level 4.1 | ? MPEG-4 (.mp4) | |
| MPEG-4 SP | ? | ? | ? | 3GPP (.3gp) |
| VP8 | ? (Android 4.3 及更高版本) | ? (Android 2.3.3 及更高版本) | 只能在 Android 4.0 及更高版本中流式傳輸 | ? WebM (.webm) ? Matroska(.mkv、Android 4.0 及更高版本) |
| VP9 | ? (Android 4.4 及更高版本) | ? WebM (.webm) ? Matroska(.mkv、Android 4.0 及更高版本) |
視頻編碼建議
下表列出了建議使用 H.264 Baseline Profile 編解碼器進行播放的 Android 媒體框架視頻編碼配置文件和參數。同樣的建議也適用于 Main Profile 編解碼器,該編解碼器僅在 Android 6.0 及更高版本中可用。
| 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 |
下表列出了建議使用 VP8 媒體編解碼器進行播放的 Android 媒體框架視頻編碼配置文件和參數。
| 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 |
視頻解碼建議
對于所有 VP8、VP9、H.264 和 H.265 編解碼器,設備實現都必須支持通過標準 Android API 在同一視頻流內實時進行動態視頻分辨率和幀速率切換,并且能夠支持設備上每個編解碼器所支持的最大分辨率。
支持杜比視界解碼器的實現必須遵循以下準則:
-
提供具有杜比視界功能的提取器。
-
在設備屏幕或標準視頻輸出端口(如 HDMI)上正確顯示杜比視界內容。
-
將向后兼容的基本層(如果存在)的軌道索引設為與組合式杜比視界層的軌道索引相同。
視頻流式傳輸要求
對于通過 HTTP 或 RTSP 流式傳輸的視頻內容,還有一些其他要求:
- 對于 3GPP 和 MPEG-4 容器,moov Atom 必須位于任何 mdat Atom 之前,但必須位于 ftyp Atom 之后。
- 對于 3GPP、MPEG-4 和 WebM 容器,對應于相同時間偏移量的音頻和視頻樣本的偏差不能超過 500
KB。要最大限度地減少這種音頻/視頻偏差,請考慮以較小的區塊大小交錯插入音頻和視頻。
三、圖片支持
| BMP | ? | ? | ? | BMP (.bmp) |
| GIF | ? | ? | ? | GIF (.gif) |
| JPEG | ? | ? | 基準式 + 漸進式 | JPEG (.jpg) |
| PNG | ? | ? | ? | PNG (.png) |
| WebP | ? (Android 4.0 及更高版本) (無損、透明度、Android 4.2.1 及更高版本) | ? (Android 4.0 及更高版本) (無損、透明度、Android 4.2.1 及更高版本) | ? | WebP (.webp) |
| HEIF | ? | ? (Android 8.0 及更高版本) | ? | HEIF(.heic;.heif) |
四、網絡協議
音頻和視頻播放支持以下網絡協議:
- RTSP(RTP、SDP)
- HTTP/HTTPS 漸進式流式傳輸
- HTTP/HTTPS 實時流式傳輸草案協議:
- 僅限 MPEG-2 TS 媒體文件
- 協議版本 3(Android 4.0 及更高版本)
- 協議版本 2 (Android 3.x)
- 在 Android 3.0 之前的版本中不支持
總結
以上是生活随笔為你收集整理的Android平台支持的多媒体格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql中non用什么_mysql N
- 下一篇: timed_waiting线程是否占用c