1# AVCodec支持的格式
2
3## 媒体编解码
4
5### 视频解码
6
7当前支持的解码能力如下:
8
9| 视频硬解类型       | 视频软解类型   |
10| --------------------- | ---------------- |
11| AVC(H.264)、HEVC(H.265) |AVC(H.264)<!--RP12--><!--RP12End--> |
12
13视频解码软/硬件解码存在差异,基于MimeType创建解码器时,<!--RP13-->软解当前仅支持H264(OH_AVCODEC_MIMETYPE_VIDEO_AVC),<!--RP13End-->
14如果硬件平台支持,则可以使用H264(OH_AVCODEC_MIMETYPE_VIDEO_AVC)和H265(OH_AVCODEC_MIMETYPE_VIDEO_HEVC)硬件解码能力。
15
16每一种解码的能力范围,可以通过[获取支持的编解码能力](obtain-supported-codecs.md)获取。
17
18具体开发指导请参考[视频解码](video-decoding.md)。
19
20### 视频编码
21
22当前支持的编码能力如下:
23
24| 容器规格 | 视频编码类型                 |
25| -------- | ---------------------------- |
26| mp4      | HEVC(H.265)、 AVC(H.264) |
27
28目前仅支持硬件编码,基于MimeType创建编码器时,支持配置为H264(OH_AVCODEC_MIMETYPE_VIDEO_AVC)和H265(OH_AVCODEC_MIMETYPE_VIDEO_HEVC)。
29
30每一种编码的能力范围,可以通过[获取支持的编解码能力](obtain-supported-codecs.md)获取。
31
32具体开发指导请参考[视频编码](video-encoding.md)。
33
34
35### 音频解码
36
37当前支持的解码能力如下:
38
39| 容器规格 | 音频解码类型                 |
40| -------- | :--------------------------- |
41| mp4      | AAC、MPEG(MP3)、Flac、Vorbis<!--RP1--><!--RP1End--> |
42| m4a      | AAC                          |
43| flac     | Flac                         |
44| ogg      | Vorbis<!--RP2--><!--RP2End-->    |
45| aac      | AAC                          |
46| mp3      | MPEG(MP3)                    |
47| amr      | AMR(amrnb、amrwb)            |
48| raw      | G711mu                       |
49| ape      | APE                          |
50
51具体开发指导请参考[音频解码](audio-decoding.md)。
52
53
54### 音频编码
55
56当前支持的编码能力如下:
57
58| 容器规格 | 音频编码类型       |
59| -------- | :--------------- |
60| mp4      | AAC、Flac        |
61| m4a      | AAC              |
62| flac     | Flac             |
63| aac      | AAC              |
64| mp3      | MP3              |
65| raw      | G711mu           |
66<!--RP3--><!--RP3End-->
67
68具体开发指导请参考[音频编码](audio-encoding.md)。
69
70
71## 媒体数据封装与解析
72
73### 媒体数据解析
74
75支持的解封装格式如下:
76
77| 媒体格式  | 封装格式                      | 码流格式                      |
78| -------- | :----------------------------| :----------------------------|
79| 音视频     | mp4                        |<!--RP4-->视频码流:AVC(H.264),音频码流:AAC、MPEG(MP3),字幕流:WEBVTT<!--RP4End-->|
80| 音视频     | fmp4                       |<!--RP5-->视频码流:AVC(H.264),音频码流:AAC、MPEG(MP3)<!--RP5End-->|
81| 音视频     | mkv                        |<!--RP6-->视频码流:AVC(H.264),音频码流:AAC、MPEG(MP3)、OPUS<!--RP6End-->|
82| 音视频     | mpeg-ts                    |<!--RP7-->视频码流:AVC(H.264),音频码流:AAC、MPEG(MP3)<!--RP7End-->|
83| 音视频     | flv                        |<!--RP8-->视频码流:AVC(H.264),音频码流:AAC<!--RP8End-->|
84| 音频       | m4a                        |<!--RP9-->音频码流:AAC<!--RP9End-->|
85| 音频       | aac                        |音频码流:AAC|
86| 音频       | mp3                        |音频码流:MPEG(MP3)|
87| 音频       | ogg                        |音频码流:OGG|
88| 音频       | flac                       |音频码流:FLAC|
89| 音频       | wav                        |音频码流:PCM、PCM-MULAW|
90| 音频       | amr                        |音频码流:AMR(AMR-NB、AMR-WB)|
91| 音频       | ape                        |音频码流:APE|
92| 外挂字幕   | srt                        |字幕流:SRT|
93| 外挂字幕   | webvtt                     |字幕流:WEBVTT|
94
95DRM解密能力支持的解封装格式:<!--RP10-->mp4(H.264,AAC)、mpeg-ts(H264,AAC)<!--RP10End-->。
96
97具体开发指导请参考[媒体数据解析](audio-video-demuxer.md)。
98
99
100### 媒体数据封装
101
102当前支持的封装能力如下:
103
104| 封装格式 | 视频编解码类型        | 音频编解码类型   | 封面类型       |
105| -------- | --------------------- | ---------------- | -------------- |
106| mp4      | AVC(H.264)<!--RP11--><!--RP11End-->    | AAC、MPEG(MP3) | jpeg、png、bmp |
107| m4a      | -                     | AAC              | jpeg、png、bmp |
108| mp3      | -                     | MPEG(MP3)      | -              |
109| amr      | -                     | AMR(amrnb、amrwb) | -             |
110| wav      | -                     | G711mu(pcm-mulaw) | -             |
111
112> **说明:**
113>
114> - 封装格式为mp4,音频编解码类型为MPEG(MP3)时采样率需大于等于16000Hz。
115> - 封装格式为mp4/m4a,音频编解码类型为AAC时声道数范围为1~7。
116
117配置选项key值说明:
118
119mp4封装格式
120   |                key                 |         描述         |   aac  |   mp3  |  h264  |  h265  |  jpg   |  png   |  bmp   |
121   | ---------------------------------- | :------------------: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
122   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须  |  必须  |   -    |   -    |   -   |   -   |   -   |
123   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须  |  必须  |   -    |   -    |   -   |   -   |   -   |
124   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  可选  |  可选  |   -    |   -    |   -   |   -   |   -   |
125   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选  |  可选  |   -    |   -    |   -   |   -   |   -   |
126   | OH_MD_KEY_PROFILE                  | 编码档次              |  可选  |   -   |   -    |   -    |   -   |   -   |   -   |
127   | OH_MD_KEY_BITRATE                  | 码率                  |  可选  |  可选  |  可选  |  可选  |   -   |   -   |   -   |
128   | OH_MD_KEY_CODEC_CONFIG             | 编解码器特定数据       |  可选  |   -   |  可选  |  可选  |   -   |   -   |   -   |
129   | OH_MD_KEY_WIDTH                    | 宽度                  |   -   |   -   |  必须  |  必须  |  必须  |  必须  |  必须  |
130   | OH_MD_KEY_HEIGHT                   | 高度                  |   -   |   -   |  必须  |  必须  |  必须  |  必须  |  必须  |
131   | OH_MD_KEY_FRAME_RATE               | 视频流帧率            |   -   |   -   |  可选  |  可选  |   -   |   -   |   -   |
132   | OH_MD_KEY_COLOR_PRIMARIES          | 视频色域              |   -   |   -   |  可选  |  可选  |   -   |   -   |   -   |
133   | OH_MD_KEY_TRANSFER_CHARACTERISTICS | 视频传递函数          |   -   |   -   |  可选  |  可选  |   -   |   -   |   -   |
134   | OH_MD_KEY_MATRIX_COEFFICIENTS      | 视频矩阵系数          |   -   |   -   |  可选  |  可选  |   -   |   -   |   -   |
135   | OH_MD_KEY_RANGE_FLAG               | 值域标志              |   -   |   -   |  可选  |  可选  |   -   |   -   |   -   |
136   | OH_MD_KEY_VIDEO_IS_HDR_VIVID       | 视频轨是否为HDR VIVID |   -   |   -   |   -    |  可选  |   -   |   -   |   -   |
137
138m4a封装格式
139   |                key                 |         描述         |   aac  |  jpg   |  png   |  bmp   |
140   | ---------------------------------- | :------------------: | :----: | :----: | :----: | :----: |
141   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须   |   -   |   -   |   -   |
142   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须   |   -   |   -   |   -   |
143   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  可选   |   -   |   -   |   -   |
144   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选   |   -   |   -   |   -   |
145   | OH_MD_KEY_PROFILE                  | 编码档次              |  可选  |   -   |   -   |   -   |
146   | OH_MD_KEY_BITRATE                  | 码率                  |  可选   |   -   |   -   |   -   |
147   | OH_MD_KEY_CODEC_CONFIG             | 编解码器特定数据       |  可选  |   -   |   -   |   -   |
148   | OH_MD_KEY_WIDTH                    | 宽度                  |   -   |  必须  |  必须  |  必须  |
149   | OH_MD_KEY_HEIGHT                   | 高度                  |   -   |  必须  |  必须  |  必须  |
150
151amr封装格式
152   |                key                 |         描述         | amr_nb | amr_wb |
153   | ---------------------------------- | :------------------: | :----: | :----: |
154   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须  |  必须  |
155   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须  |  必须  |
156   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  可选  |  可选  |
157   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选  |  可选  |
158   | OH_MD_KEY_BITRATE                  | 码率                  |  可选  |  可选  |
159
160mp3封装格式
161   |                key                 |         描述         |   mp3  |  jpg   |
162   | ---------------------------------- | :------------------: | :----: | :----: |
163   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须  |   -   |
164   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须  |   -   |
165   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  可选  |   -   |
166   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选  |   -   |
167   | OH_MD_KEY_BITRATE                  | 码率                  |  可选  |   -   |
168   | OH_MD_KEY_WIDTH                    | 宽度                  |   -   |  必须  |
169   | OH_MD_KEY_HEIGHT                   | 高度                  |   -   |  必须  |
170
171wav封装格式
172   |                key                 |         描述         | g711mu  |
173   | ---------------------------------- | :------------------: | :----: |
174   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须  |
175   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须  |
176   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  可选  |
177   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选  |
178   | OH_MD_KEY_BITRATE                  | 码率                  |  必须  |
179
180具体开发指导请参考[媒体数据封装](audio-video-muxer.md)。
181