• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# AVCodec支持的格式
2
3<!--Kit: AVCodec Kit-->
4<!--Subsystem: Multimedia-->
5<!--Owner: @zhanghongran; @mr-chencxy-->
6<!--Designer: @dpy2650--->
7<!--Tester: @cyakee-->
8<!--Adviser: @zengyawen-->
9
10## 媒体编解码
11
12### 视频解码
13
14当前支持的解码能力如下:
15
16| 视频硬解类型       | 视频软解类型   |
17| --------------------- | ---------------- |
18| AVC(H.264)、HEVC(H.265)<!--RP14--><!--RP14End--> | MPEG2、MPEG4、H.263、AVC(H.264)<!--RP12--><!--RP12End--> |
19
20通过MimeType创建解码器时,系统会优先创建硬件解码器实例。如果系统平台不支持或者硬件解码器资源不足时,系统会创建软件解码器实例。
21当前系统支持的软件解码器格式包括:
22- MPEG2(OH_AVCODEC_MIMETYPE_VIDEO_MPEG2)
23- MPEG4(OH_AVCODEC_MIMETYPE_VIDEO_MPEG4_PART2)
24- H.263(OH_AVCODEC_MIMETYPE_VIDEO_H263)
25- H.264(OH_AVCODEC_MIMETYPE_VIDEO_AVC)
26<!--RP13--><!--RP13End-->
27
28系统提供的硬件解码能力和平台硬件能力强相关,开发者可以通过[获取支持的编解码能力](obtain-supported-codecs.md)获取系统硬件解码的能力和能力规格。
29例如可以通过<!--RP15-->OH_AVCODEC_MIMETYPE_VIDEO_AVC、OH_AVCODEC_MIMETYPE_VIDEO_HEVC<!--RP15End-->来查询系统支持的<!--RP16-->H.264、H.265的硬件解码能力。<!--RP16End-->
30
31具体开发指导请参考[视频解码](video-decoding.md)。
32
33### 视频编码
34
35当前支持的编码能力如下:
36
37| 视频编码类型                 |
38| ---------------------------- |
39| HEVC(H.265)、 AVC(H.264) |
40
41目前仅支持硬件编码,基于MimeType创建编码器时,支持配置为H.264(OH_AVCODEC_MIMETYPE_VIDEO_AVC)和H.265(OH_AVCODEC_MIMETYPE_VIDEO_HEVC)。
42
43每一种编码的能力范围,可以通过[获取支持的编解码能力](obtain-supported-codecs.md)获取。
44
45具体开发指导请参考[视频编码](video-encoding.md)。
46
47
48### 音频解码
49
50当前支持的解码能力:
51
52AAC、MPEG(MP3)、Flac、Vorbis、AMR(amrnb、amrwb)、G711mu、APE、G711a<!--RP1--><!--RP1End-->。
53
54具体开发指导请参考[音频解码](audio-decoding.md)。
55
56
57### 音频编码
58
59当前支持的编码能力:
60
61AAC、Flac、MP3、G711mu<!--RP3--><!--RP3End-->。
62
63具体开发指导请参考[音频编码](audio-encoding.md)。
64
65
66## 媒体数据封装与解析
67
68### 媒体数据解析
69
70支持的解封装格式如下:
71
72| 媒体格式  | 封装格式                      | 轨道格式                      |
73| -------- | :----------------------------| :----------------------------|
74| 音视频     | mp4                        |<!--RP4-->视频轨:AVC(H.264)、MPEG4<br>音频轨:AAC、MPEG(MP3)<br>字幕轨:WEBVTT<br>辅助轨:AUXL(AAC、MP3)<br>timed metadata轨<!--RP4End-->|
75| 音视频     | fmp4                       |<!--RP5-->视频轨:AVC(H.264)<br>音频轨:AAC、MPEG(MP3)<!--RP5End-->|
76| 音视频     | mkv                        |<!--RP6-->视频轨:AVC(H.264)<br>音频轨:AAC、MPEG(MP3)、OPUS<!--RP6End-->|
77| 音视频     | mpeg-ts                    |<!--RP7-->视频轨:AVC(H.264)、MPEG2、MPEG4<br>音频轨:AAC、MPEG(MP3)<!--RP7End-->|
78| 音视频     | flv                        |<!--RP8-->视频轨:AVC(H.264)<br>音频轨:AAC<!--RP8End-->|
79| 音视频     | mpeg-ps                    |视频轨:AVC(H.264)、MPEG2<br>音频轨:MPEG(MP2、MP3)|
80| 音视频     | avi                        |视频轨:H.263、AVC(H.264)、MPEG2、MPEG4<br>音频轨:AAC、MPEG(MP2、MP3)、PCM|
81| 音频       | m4a                        |<!--RP9-->音频轨:AAC<!--RP9End-->|
82| 音频       | aac                        |音频轨:AAC|
83| 音频       | mp3                        |音频轨:MPEG(MP3)|
84| 音频       | ogg                        |音频轨:Vorbis|
85| 音频       | flac                       |音频轨:Flac|
86| 音频       | wav                        |音频轨:PCM、G711mu、G711a|
87| 音频       | amr                        |音频轨:AMR(amrnb、amrwb)|
88| 音频       | ape                        |音频轨:APE|
89| 外挂字幕   | srt                        |字幕轨:SRT|
90| 外挂字幕   | webvtt                     |字幕轨:WEBVTT|
91
92DRM解密能力支持的解封装格式:<!--RP10-->mp4(H.264,AAC)、mpeg-ts(H.264,AAC)<!--RP10End-->。
93
94具体开发指导请参考[媒体数据解析](audio-video-demuxer.md)。
95
96
97### 媒体数据封装
98
99当前支持的封装能力如下:
100
101| 封装格式 | 视频编解码类型        | 音频编解码类型   | 封面类型       |
102| -------- | --------------------- | ---------------- | -------------- |
103| mp4      | AVC(H.264)<!--RP11--><!--RP11End-->    | AAC、MPEG(MP3) | jpeg、png、bmp |
104| m4a      | -                     | AAC              | jpeg、png、bmp |
105| mp3      | -                     | MPEG(MP3)      | -              |
106| amr      | -                     | AMR(amrnb、amrwb) | -             |
107| wav      | -                     | G711mu(pcm-mulaw) 、raw(pcm)| -             |
108| aac      | -                     | AAC               | -             |
109| flac     | -                     | Flac              | jpeg、png、bmp |
110
111> **说明:**
112>
113> - 封装格式为mp4,音频编解码类型为MPEG(MP3)时采样率需大于等于16000Hz。
114> - 封装格式为mp4/m4a,音频编解码类型为AAC时声道数范围为1~7。
115
116配置选项key值说明:
117
118mp4封装格式:
119   |                key                 |         描述         |   aac  |   mp3  |  H.264  |  H.265  |  jpg   |  png   |  bmp   |
120   | ---------------------------------- | :------------------: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
121   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须  |  必须  |   -    |   -    |   -   |   -   |   -   |
122   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须  |  必须  |   -    |   -    |   -   |   -   |   -   |
123   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  可选  |  可选  |   -    |   -    |   -   |   -   |   -   |
124   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选  |  可选  |   -    |   -    |   -   |   -   |   -   |
125   | OH_MD_KEY_PROFILE                  | 编码档次              |  可选  |   -   |   -    |   -    |   -   |   -   |   -   |
126   | OH_MD_KEY_BITRATE                  | 码率                  |  可选  |  可选  |  可选  |  可选  |   -   |   -   |   -   |
127   | OH_MD_KEY_CODEC_CONFIG             | 编解码器特定数据       |  可选  |   -   |  可选  |  可选  |   -   |   -   |   -   |
128   | OH_MD_KEY_WIDTH                    | 宽度                  |   -   |   -   |  必须  |  必须  |  必须  |  必须  |  必须  |
129   | OH_MD_KEY_HEIGHT                   | 高度                  |   -   |   -   |  必须  |  必须  |  必须  |  必须  |  必须  |
130   | OH_MD_KEY_FRAME_RATE               | 视频流帧率            |   -   |   -   |  可选  |  可选  |   -   |   -   |   -   |
131   | OH_MD_KEY_COLOR_PRIMARIES          | 视频色域              |   -   |   -   |  可选  |  可选  |   -   |   -   |   -   |
132   | OH_MD_KEY_TRANSFER_CHARACTERISTICS | 视频传递函数          |   -   |   -   |  可选  |  可选  |   -   |   -   |   -   |
133   | OH_MD_KEY_MATRIX_COEFFICIENTS      | 视频矩阵系数          |   -   |   -   |  可选  |  可选  |   -   |   -   |   -   |
134   | OH_MD_KEY_RANGE_FLAG               | 值域标志              |   -   |   -   |  可选  |  可选  |   -   |   -   |   -   |
135   | OH_MD_KEY_VIDEO_IS_HDR_VIVID       | 视频轨是否为HDR VIVID |   -   |   -   |   -    |  可选  |   -   |   -   |   -   |
136
137mp4封装辅助轨格式:
138   |                key                 |         描述         |   aac  |   mp3  |  H.264  |  H.265  |
139   | ---------------------------------- | :------------------: | :----: | :----: | :----: | :----: |
140   | OH_MD_KEY_TRACK_TYPE               | 轨道媒体类型          |  必须  |  必须  |  必须   |  必须   |
141   | OH_MD_KEY_TRACK_REFERENCE_TYPE     | 轨道引用类型          |  必须  |  必须  |  必须   |  必须   |
142   | OH_MD_KEY_TRACK_DESCRIPTION        | 轨道标识              |  必须  |  必须  |  必须   |  必须   |
143   | OH_MD_KEY_REFERENCE_TRACK_IDS      | 引用轨道编号          |  必须  |  必须  |  必须   |  必须   |
144   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须  |  必须  |   -    |   -    |
145   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须  |  必须  |   -    |   -    |
146   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  可选  |  可选  |   -    |   -    |
147   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选  |  可选  |   -    |   -    |
148   | OH_MD_KEY_PROFILE                  | 编码档次              |  可选  |   -   |   -    |   -    |
149   | OH_MD_KEY_BITRATE                  | 码率                  |  可选  |  可选  |  可选  |  可选  |
150   | OH_MD_KEY_CODEC_CONFIG             | 编解码器特定数据       |  可选  |   -   |  可选  |  可选  |
151   | OH_MD_KEY_WIDTH                    | 宽度                  |   -   |   -   |  必须  |  必须  |
152   | OH_MD_KEY_HEIGHT                   | 高度                  |   -   |   -   |  必须  |  必须  |
153   | OH_MD_KEY_FRAME_RATE               | 视频流帧率            |   -   |   -   |  可选  |  可选  |
154   | OH_MD_KEY_COLOR_PRIMARIES          | 视频色域              |   -   |   -   |  可选  |  可选  |
155   | OH_MD_KEY_TRANSFER_CHARACTERISTICS | 视频传递函数          |   -   |   -   |  可选  |  可选  |
156   | OH_MD_KEY_MATRIX_COEFFICIENTS      | 视频矩阵系数          |   -   |   -   |  可选  |  可选  |
157   | OH_MD_KEY_RANGE_FLAG               | 值域标志              |   -   |   -   |  可选  |  可选  |
158   | OH_MD_KEY_VIDEO_IS_HDR_VIVID       | 视频轨是否为HDR VIVID |   -   |   -   |   -    |  可选  |
159
160m4a封装格式:
161   |                key                 |         描述         |   aac  |  jpg   |  png   |  bmp   |
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_PROFILE                  | 编码档次              |  可选  |   -   |   -   |   -   |
168   | OH_MD_KEY_BITRATE                  | 码率                  |  可选   |   -   |   -   |   -   |
169   | OH_MD_KEY_CODEC_CONFIG             | 编解码器特定数据       |  可选  |   -   |   -   |   -   |
170   | OH_MD_KEY_WIDTH                    | 宽度                  |   -   |  必须  |  必须  |  必须  |
171   | OH_MD_KEY_HEIGHT                   | 高度                  |   -   |  必须  |  必须  |  必须  |
172
173amr封装格式:
174   |                key                 |         描述         | amr_nb | amr_wb |
175   | ---------------------------------- | :------------------: | :----: | :----: |
176   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须  |  必须  |
177   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须  |  必须  |
178   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  可选  |  可选  |
179   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选  |  可选  |
180   | OH_MD_KEY_BITRATE                  | 码率                  |  可选  |  可选  |
181
182mp3封装格式:
183   |                key                 |         描述         |   mp3  |  jpg   |
184   | ---------------------------------- | :------------------: | :----: | :----: |
185   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须  |   -   |
186   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须  |   -   |
187   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  可选  |   -   |
188   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选  |   -   |
189   | OH_MD_KEY_BITRATE                  | 码率                  |  可选  |   -   |
190   | OH_MD_KEY_WIDTH                    | 宽度                  |   -   |  必须  |
191   | OH_MD_KEY_HEIGHT                   | 高度                  |   -   |  必须  |
192
193wav封装格式:
194   |                key                 |         描述         | g711mu  | raw  |
195   | ---------------------------------- | :------------------: | :----: | :----: |
196   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须  |  必须  |
197   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须  |  必须  |
198   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  可选  |  必须  |
199   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选  |  可选  |
200   | OH_MD_KEY_BITRATE                  | 码率                  |  必须  |  可选  |
201
202aac封装格式:
203   |                key                 |         描述         |  aac   |
204   | ---------------------------------- | :------------------: | :----: |
205   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须  |
206   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须  |
207   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  可选  |
208   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选  |
209   | OH_MD_KEY_BITRATE                  | 码率                  |  可选  |
210   | OH_MD_KEY_PROFILE                  | 编码档次              |  必须  |
211   | OH_MD_KEY_AAC_IS_ADTS              | 是否为ADTS格式        |  必须  |
212
213flac封装格式:
214   |                key                 |         描述         |  flac   |
215   | ---------------------------------- | :------------------: | :----: |
216   | OH_MD_KEY_AUD_SAMPLE_RATE          | 采样率                |  必须  |
217   | OH_MD_KEY_AUD_CHANNEL_COUNT        | 声道数                |  必须  |
218   | OH_MD_KEY_AUDIO_SAMPLE_FORMAT      | 输出音频流格式         |  必须  |
219   | OH_MD_KEY_CHANNEL_LAYOUT           | 通道布局              |  可选  |
220   | OH_MD_KEY_BITRATE                  | 码率                  |  可选  |
221   | OH_MD_KEY_CODEC_CONFIG             | 编解码器特定数据       |  可选  |
222
223具体开发指导请参考[媒体数据封装](audio-video-muxer.md)。
224