이 문서에서는 Android 플랫폼에서 제공하는 미디어 코덱, 컨테이너, 네트워크 프로토콜 지원을 설명합니다.
아래 표는 Android 플랫폼에 내장된 미디어 형식 지원을 설명합니다. '예'는 모든 Android 버전을 실행하는 휴대기기와 태블릿에서 형식을 사용할 수 있음을 의미합니다. 특정 Android 플랫폼이 지정된 경우 이 버전 및 이후 버전을 실행하는 핸드셋과 태블릿에서 형식을 사용할 수 있습니다. 이전 버전에서도 이 형식을 사용할 수 있지만 보장되지는 않습니다. 핸드셋 및 태블릿 이외의 폼 팩터에서는 미디어 형식 지원이 다를 수 있습니다.
특정 휴대기기에서는 이 표에 나열되지 않은 추가 형식이나 파일 형식을 지원할 수 있습니다. 또한 MediaCodec를 직접 사용하면 지원되는 파일 형식 및 컨테이너 형식과 관계없이 사용 가능한 모든 미디어 형식에 액세스할 수 있습니다.
오디오 지원
형식 | 인코더 | 디코더 | 파일 형식 컨테이너 형식 | 세부정보 | |
---|---|---|---|---|---|
추출기 | Muxer | ||||
AAC LC | 예 | 예 |
• 3GPP (.3gp) • ADTS 원시 AAC (.aac, ADIF 지원되지 않음) • MPEG-TS (.ts, 검색 불가, Android 3.0 이상) |
• 3GPP (.3gp) • ADTS 원시 AAC (.aac, ADIF 지원되지 않음) • MPEG-TS (확실하지 않음) (.ts, 탐색 불가, Android 3.0 이상) |
표준 샘플링 레이트가 8~48kHz인 모노/스테레오/5.0/5.1 콘텐츠 지원 |
HE-AACv1(AAC+) | Android 4.1 이상 | 예 | |||
HE-AACv2(개선된 AAC+) | 예 | 표준 샘플링 레이트가 8~48kHz인 스테레오/5.0/5.1 콘텐츠 지원 | |||
xHE-AAC | Android 9+ | 표준 샘플링 레이트가 8~48kHz인 최대 8ch 콘텐츠 지원 | |||
AAC ELD(개선된 저지연 AAC) | Android 4.1 이상 | Android 4.1 이상 | 표준 샘플링 레이트가 16~48kHz인 모노/스테레오 콘텐츠 지원 | ||
AMR-NB | 예 | 예 |
• 3GPP (.3gp) • AMR (.amr) |
• 3GPP (.3gp) • AMR (.amr) |
8kHz에서 샘플링된 4.75~12.2kbps |
AMR-WB | 예 | 예 | 16kHz에서 샘플링된 6.60kbit/초~23.85kbit/초 9레이트 | ||
FLAC | Android 4.1 이상 | Android 3.1 이상 |
• FLAC (.flac) • MPEG-4 (.mp4, .m4a, Android 10 이상) • Matroska (.mkv) |
모노/스테레오(다중 채널 없음) 최대 48kHz의 샘플링 레이트(48~44.1kHz 다운샘플러에는 저역 통과 필터가 없으므로 44.1kHz 출력 기기에서는 최대 44.1kHz가 권장됨). 16비트 권장됨(24비트에는 디더가 적용되지 않음) | |
MIDI | 예 |
• 유형 0 및 1 (.mid, .xmf, .mxmf) • RTTTL/RTX (.rtttl, .rtx) • OTA (.ota) • iMelody (.imy) |
MIDI 유형 0 및 1. DLS 버전 1 및 2. XMF 및 모바일 XMF. 벨소리 형식 RTTTL/RTX, OTA 및 iMelody 지원 | ||
MP3 | 예 |
• MP3 (.mp3) • MPEG-4 (.mp4, .m4a, Android 10 이상) • Matroska (.mkv, Android 10 이상) |
모노/스테레오 8-320Kbps 상수(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) | 8비트 및 16비트 선형 PCM(최대 하드웨어 제한 레이트) 8000Hz, 16000Hz, 44100Hz에서 원시 PCM 녹음 샘플링 레이트 | |
Vorbis | 예 |
• Ogg (.ogg) • Matroska (.mkv, Android 4.0 이상) • MPEG-4 (.mp4, .m4a, Android 10 이상) |
• WebM (.webm) |
동영상 지원
동영상 형식
형식 | 인코더 | 디코더 | 파일 형식 컨테이너 형식 | 세부정보 | |
---|---|---|---|---|---|
추출기 | Muxer | ||||
H.263 | 예 | 예 |
• 3GPP (.3gp) • MPEG-4 (.mp4) • Matroska (.mkv) |
• 3GPP (.3gp) • MPEG-4 (.mp4) |
Android 7.0 이상에서는 H.263 지원이 선택사항 |
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, Android TV용 기본 프로필 레벨 4.1 | |
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) | 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부터 인코더와 디코더가 필수입니다. |
동영상 인코딩 권장사항
아래 표에는 H.264 기준 프로필 코덱을 사용한 재생에 권장되는 Android 미디어 프레임워크 동영상 인코딩 프로필과 매개변수가 나열되어 있습니다. 동일한 권장사항이 Android 6.0 이상에서만 사용 가능한 기본 프로필 코덱에도 적용됩니다.
SD(낮은 화질) | SD(고화질) | HD 720p(모든 기기에서 해당 사항 없음) | |
---|---|---|---|
동영상 해상도 | 176x144px | 480x360px | 1280x720px |
동영상 프레임 속도 | 12fps | 30fps | 30fps |
동영상 비트 전송률 | 56Kbps | 500Kbps | 2Mbps |
오디오 코덱 | AAC-LC | AAC-LC | AAC-LC |
오디오 채널 | 1(모노) | 2(스테레오) | 2(스테레오) |
오디오 비트 전송률 | 24Kbps | 128Kbps | 192Kbps |
아래 표에는 VP8 미디어 코덱을 사용한 재생에 권장되는 Android 미디어 프레임워크 동영상 인코딩 프로필과 매개변수가 나열되어 있습니다.
SD(낮은 화질) | SD(고화질) | HD 720p(모든 기기에서 해당 사항 없음) | HD 1080p(모든 기기에서 해당 사항 없음) | |
---|---|---|---|---|
동영상 해상도 | 320x180px | 640x360px | 1280x720px | 1920x1080px |
동영상 프레임 속도 | 30fps | 30fps | 30fps | 30fps |
동영상 비트 전송률 | 800Kbps | 2Mbps | 4Mbps | 10Mbps |
동영상 디코딩 권장사항
기기 구현은 모든 VP8, VP9, H.264, H.265 코덱의 동일한 스트림 내에서 표준 Android API를 통해 실시간으로 동적 동영상 해상도와 프레임 속도 전환을 지원하고 기기의 각 코덱이 지원하는 최대 해상도까지 지원해야 합니다.
Dolby Vision 디코더를 지원하는 구현은 다음 가이드라인을 따라야 합니다.
- Dolby Vision 지원 추출기를 제공합니다.
- 기기 화면이나 표준 동영상 출력 포트 (예: 합니다(MUST).
- 결합된 Dolby Vision 레이어의 트랙 색인과 이전 버전과 호환되는 기본 레이어(있는 경우)의 트랙 색인을 동일하게 설정
동영상 스트리밍 요구사항
HTTP 또는 RTSP를 통해 스트리밍되는 동영상 콘텐츠에는 추가 요구사항이 있습니다.
- 3GPP 및 MPEG-4 컨테이너의 경우
moov
Atom은 모든mdat
Atom 앞에,ftyp
Atom 뒤에 있어야 합니다. - 3GPP, MPEG-4 및 WebM 컨테이너의 경우 동일한 시차에 상응하는 오디오 및 동영상 샘플의 크기는 각각 500KB일 수 있습니다. 오디오/동영상 드리프트를 최소화하려면 작은 청크 크기로 오디오와 동영상을 인터리빙하는 것을 고려하세요.
이미지 지원
형식 | 인코더 | 디코더 | 세부정보 | 파일 형식 컨테이너 형식 |
---|---|---|---|---|
BMP | 예 | BMP(.bmp) | ||
GIF | 예 | GIF(.gif) | ||
JPEG | 예 | 예 | 기본+프로그레시브 | 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 형식의 핵심 요구사항인 10비트 버퍼, 메타데이터 (정적, 동적, 없음), 전송 함수, 색상 공간 처리를 제공하는 Android HDR 아키텍처를 사용하여 원하는 HDR 형식을 사용 설정할 수 있습니다.
개발자의 일관성을 보장하고 주요 HDR 사용 사례를 해결하기 위해 OEM은 HDR을 지원하는 기기에서 다음과 같은 몇 가지 기본 형식을 지원해야 합니다.
- 영화 스트리밍과 같은 전문 콘텐츠 재생에는 HDR10이 필요합니다.
- 사용자 제작 콘텐츠 캡처 및 재생의 경우 Android 기기에서 일관된 환경을 제공하려면 HLG10이 필요합니다.
HDR 지원을 추가하는 OEM은 이러한 형식을 지원해야 하지만 HDR10+ 또는 Dolby Vision과 같은 추가 형식을 지원할 수도 있습니다.
형식 | 전송 함수 | Metadata | 코덱 | 비트 심도 |
---|---|---|---|---|
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
변환 API를 사용하여 업로드하기 전에 HDR10+ (PQ)에서 HLG로 톤 매핑 |
인앱 캡처 사용 사례와 동일 |
DV8.4 | HLG
(DV8.4는 HLG를 사용하며 비트 스트림은 HLG로 작동하므로 톤 매핑이 필요하지 않습니다.) |
인앱 캡처 사용 사례와 동일 |
사용 사례 3: 앱 백엔드에서 HDR을 지원하지 않음
캡처 형식 | 업로드 형식 | 전송 형식 |
모든 형식 | SDR
업로드 전에 transformer API를 사용하여 HLG에서 SDR로 색조 매핑 |
SDR |