Android 플랫폼에서 지원하는 멀티미디어 형식

머리말

이 문서는 Android 플랫폼에서 제공하는 미디어 코덱, 컨테이너 및 네트워크 프로토콜 지원에 대해 설명합니다. (구글 문서에서 발췌)

애플리케이션 개발자는 모든 Android 기기에서 사용 가능한 모든 미디어 코덱(Android 플랫폼 제공 미디어 코덱 및 기기별 미디어 코덱 포함)을 사용할 수 있습니다. 그러나 가장 좋은 방법은 장치 독립적인 미디어 인코딩 프로필을 사용하는 것입니다.

다음 표는 Android 플랫폼에 내장된 미디어 형식 지원을 설명합니다. 모든 Android 플랫폼 버전에서 사용할 수 있다고 보장되지 않는 코덱은 괄호 안에 표시됩니다(예: (Android 3.0 이상). 특정 모바일 장치는 이 표에 나열되지 않은 다른 형식이나 파일 형식을 지원할 수 있습니다.

Android 호환성 정의의 섹션 5는 기기가 Android 8.1과 호환되기 위해 지원해야 하는 미디어 형식을 지정합니다.

1. 오디오 지원

오디오 형식 및 코덱

형식/코덱 인코더 디코더 세부 지원되는 파일 유형/컨테이너 형식
AAC LC 8-48kHz의 표준 샘플 속도로 모노/스테레오/5.0/5.1 콘텐츠를 지원합니다. • 3GPP(.3gp)
• MPEG-4(.mp4, .m4a) • ADTS Raw AAC(.aac, Android 3.1 이상에서 디코딩, Android 4.0 이상에서 인코딩, ADIF 지원 안 함) • MPEG-TS(. ts, 탐색 불가능, Android 3.0 이상)
HE-AACv1(AAC+)
(안드로이드 4.1 이상)
HE-AACv2(향상된 AAC+)   스테레오/5.0/5.1 콘텐츠는 8-48kHz의 표준 샘플 속도로 지원됩니다.
AAC ELD(향상된 낮은 대기 시간 AAC)
(안드로이드 4.1 이상)

(안드로이드 4.1 이상)
16-48kHz의 표준 샘플 속도로 모노/스테레오 콘텐츠 지원
AMR-NB 4.75~12.2kbps, 샘플링 속도 8kHz 3GPP(.3gp)
AMR-WB 16kHz 샘플 속도의 9가지 비트 속도(6.60-23.85kbit/s 사이) 선택 3GPP(.3gp)
FLAC
(안드로이드 4.1 이상)

(안드로이드 3.1 이상)
모노/스테레오(다중 채널 아님). 최대 48kHz의 샘플링 속도가 가능합니다(단, 44.1kHz 출력 장치의 경우 48-44.1kHz 다운샘플러에 저역 통과 필터가 포함되어 있지 않으므로 44.1kHz 이하가 권장됨). 16비트가 권장되며 24비트의 경우 디더링이 적용되지 않습니다. FLAC(.flac)만 지원됩니다.
GSM   Android는 전화 장치에서 GSM 디코딩을 지원합니다. GSM(.gsm)
미디   MIDI 유형 0 및 1. DLS 버전 1 및 2. XMF 및 모바일 XMF. 벨소리 형식 RTTTL/RTX, OTA 및 iMelody 지원 • 유형 0 및 1(.mid, .xmf, .mxmf)
• RTTTL/RTX(.rtttl, .rtx) • OTA(.ota) • iMelody(.imy)
MP3   모노/스테레오 8-320Kbps 상수(CBR) 또는 가변 비트 전송률(VBR) MP3(.mp3)

(안드로이드 5.0 이상)
마트로스카(.mkv)
PCM/웨이브
(안드로이드 4.1 이상)
8비트 및 16비트 선형 PCM(하드웨어 캡까지의 비트 전송률). 8000, 16000 및 44100Hz에서 원시 PCM을 녹음하는 데 필요한 샘플링 속도. 웨이브(.wav)
보비스     • Ogg(.ogg)
• Matroska(.mkv, Android 4.0 이상)

2. 비디오 지원

비디오 형식 및 코덱

형식/코덱 인코더 디코더 세부 지원되는 파일 유형/컨테이너 형식
H.263 Android 7.0 이상에서는 H.263 지원이 필요하지 않습니다. • 3GPP(.3gp)
• MPEG-4(.mp4)
H.264 AVC
베이스라인 프로파일(BP)

(안드로이드 3.0 이상)
• 3GPP(.3gp)
• MPEG-4(.mp4) • MPEG-TS(.ts, AAC 오디오 전용, 탐색 불가능, Android 3.0 이상)
H.264 AVC
메인 프로파일(MP)

(안드로이드 6.0 이상)
디코더가 필요하고 인코더가 권장됩니다.
H.265 HEVC
(안드로이드 5.0 이상)
모바일용 기본 프로필 레벨 3 및 Android TV용 기본 프로필 레벨 4.1 • MPEG-4(.mp4)
MPEG-4 SP     3GPP(.3gp)
VP8
(안드로이드 4.3 이상)

(안드로이드 2.3.3 이상)
Android 4.0 이상에서만 스트리밍할 수 있습니다. WebM (.webm)
• Matroska(.mkv, Android 4.0 이상)
VP9
(안드로이드 4.4 이상)
WebM (.webm)
• Matroska(.mkv, Android 4.0 이상)

비디오 인코딩 권장 사항

下表列出了建议使用 H.264 Baseline Profile 编解码器进行播放的 Android 媒体框架视频编码配置文件和参数。同样的建议也适用于 Main Profile 编解码器,该编解码器仅在 Android 6.0 及更高版本中可用。

  标清(低画质) 标清(高画质) 高清 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

下表列出了建议使用 VP8 媒体编解码器进行播放的 Android 媒体框架视频编码配置文件和参数。

  标清(低画质) 标清(高画质) 高清 720p(在所有设备上均不适用) 高清 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

视频解码建议

对于所有 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 之前的版本中不支持

추천

출처blog.csdn.net/qq_35831940/article/details/118909572