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