diff --git a/zh-cn/application-dev/media/avcodec/video-encoding.md b/zh-cn/application-dev/media/avcodec/video-encoding.md index 6f780c75637c15d058273006fc463ef0868a8f83..5bba29d439e98d9eeeafbca71b0fab92ac0d7f94 100644 --- a/zh-cn/application-dev/media/avcodec/video-encoding.md +++ b/zh-cn/application-dev/media/avcodec/video-encoding.md @@ -94,6 +94,8 @@ target_link_libraries(sample PUBLIC libnative_media_venc.so) - 运行过程中产生了新的输出数据,即编码完成。 ```c++ + int32_t qpAverage = 20; + double mseValue = 0.0; // 设置 OnError 回调函数 static void OnError(OH_AVCodec *codec, int32_t errorCode, void *userData) { @@ -126,6 +128,11 @@ target_link_libraries(sample PUBLIC libnative_media_venc.so) { // 完成帧buffer对应的index,送入outIndexQueue队列 // 完成帧的数据buffer送入outBufferQueue队列 + // 获取视频帧的平均量化参数,平方误差 + OH_AVFormat *format = OH_AVBuffer_GetParameter(buffer); + OH_AVFormat_GetIntValue(format, OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE, qpAverage); + OH_AVFormat_GetDoubleValue(format, OH_MD_KEY_VIDEO_ENCODER_MSE, mseValue); + OH_AVFormat_Destroy(format); // 数据处理,请参考: // - 释放编码帧 } @@ -279,6 +286,10 @@ target_link_libraries(sample PUBLIC libnative_media_venc.so) // 支持动态重置视频帧速率 double frameRate = 60.0; OH_AVFormat_SetDoubleValue(format, OH_MD_KEY_FRAME_RATE, frameRate); + // 支持动态设置QP值 + // 配置OH_MD_KEY_VIDEO_ENCODER_QP_MAX 的值应大于等于OH_MD_KEY_VIDEO_ENCODER_QP_MIN + OH_AVFormat_SetIntValue(parameter, OH_MD_KEY_VIDEO_ENCODER_QP_MAX, 30); + OH_AVFormat_SetIntValue(parameter, OH_MD_KEY_VIDEO_ENCODER_QP_MIN, 20); int32_t ret = OH_VideoEncoder_SetParameter(videoEnc, format); if (ret != AV_ERR_OK) { @@ -452,6 +463,8 @@ target_link_libraries(sample PUBLIC libnative_media_venc.so) int32_t widthStride = 0; int32_t heightStride = 0; bool isFirstFrame = true; + int32_t qpAverage = 20; + double mseValue = 0.0; // 编码异常回调OH_AVCodecOnError实现 static void OnError(OH_AVCodec *codec, int32_t errorCode, void *userData) { @@ -493,6 +506,11 @@ target_link_libraries(sample PUBLIC libnative_media_venc.so) { // 完成帧buffer对应的index,送入outIndexQueue队列 // 完成帧的数据buffer送入outBufferQueue队列 + // 获取视频帧的平均量化参数,平方误差 + OH_AVFormat *format = OH_AVBuffer_GetParameter(buffer); + OH_AVFormat_GetIntValue(format, OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE, qpAverage); + OH_AVFormat_GetDoubleValue(format, OH_MD_KEY_VIDEO_ENCODER_MSE, mseValue); + OH_AVFormat_Destroy(format); // 数据处理,请参考: // - 释放编码帧 } diff --git a/zh-cn/application-dev/reference/apis-avcodec-kit/_codec_base.md b/zh-cn/application-dev/reference/apis-avcodec-kit/_codec_base.md index 4025972bcd1f6483e9f5aff596b27a00caf5e956..c60d7910c721ca4a5d8fc7cb66623610cd5a9520 100644 --- a/zh-cn/application-dev/reference/apis-avcodec-kit/_codec_base.md +++ b/zh-cn/application-dev/reference/apis-avcodec-kit/_codec_base.md @@ -30,6 +30,11 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | [OH_AVCODEC_MIMETYPE_AUDIO_AMR_WB](#oh_avcodec_mimetype_audio_amr_wb) | AMR_WB音频解码器的MIME类型。 | | [OH_AVCODEC_MIMETYPE_AUDIO_OPUS](#oh_avcodec_mimetype_audio_opus) | OPUS音频编解码器的MIME类型。(此规格暂未开放) | | [OH_AVCODEC_MIMETYPE_AUDIO_G711MU](#oh_avcodec_mimetype_audio_g711mu) | G711MU音频编解码器的MIME类型。 | +| [OH_AVCODEC_MIMETYPE_VIDEO_VVC](#oh_avcodec_mimetype_video_vvc) | 音频和视频编解码器的MIME类型。 | +| [OH_AVCODEC_MIMETYPE_AUDIO_LBVC](#oh_avcodec_mimetype_audio_lbvc) | 音频低码率音频编解码器的MIME类型。(此规格暂未开放) | +| [OH_AVCODEC_MIMETYPE_AUDIO_APE](#oh_avcodec_mimetype_audio_ape) |APE音频解码器的MIME类型。 | +| [OH_AVCODEC_MIMETYPE_SUBTITLE_SRT](#oh_avcodec_mimetype_subtitle_srt) |SRT字幕解封装器的MIME类型。 | + ### 媒体数据键值对 @@ -74,7 +79,7 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | [OH_MD_KEY_QUALITY](#oh_md_key_quality) | 所需编码质量的键。值类型为uint32_t,此键仅适用于配置在恒定质量模式下的编码器。该键是可选的。 | | [OH_MD_KEY_SCALING_MODE](#oh_md_key_scaling_mode) | 视频表面尺度类型, 值类型为int32_t, 请参见[OH_ScalingMode](#oh_scalingmode)。该键是可选的。 | | [OH_MD_KEY_VIDEO_ENCODER_ENABLE_TEMPORAL_SCALABILITY](#oh_md_key_video_encoder_enable_temporal_scalability) | 使能分层编码的键,值类型为int32_t:1表示使能,0表示其它情况。该键是可选的且只用于视频编码,在configure阶段使用。 | -| [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE](#oh_md_key_video_encoder_temporal_gop_size) | 传递图片组大小的键,值类型为int32_t,只在使能分层编码时生效。该键是可选的且只用于视频编码,在configure阶段使用。 | +| [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE](#oh_md_key_video_encoder_temporal_gop_size) | 描述图片组大小的键,值类型为int32_t,只在使能分层编码时生效。该键是可选的且只用于视频编码,在configure阶段使用。 | | [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODE](#oh_md_key_video_encoder_temporal_gop_reference_mode) | 描述图片组内参考模式的键,值类型为int32_t,请参见[OH_TemporalGopReferenceMode](#oh_temporalgopreferencemode-1),只在使能分层编码时生效。该键是可选的且只用于视频编码,在configure阶段使用。 | | [OH_MD_KEY_VIDEO_CROP_TOP](#oh_md_key_video_crop_top) | 描述裁剪矩形顶部坐标(y)值的键,值类型为int32_t。该键是可选的。 | | [OH_MD_KEY_VIDEO_CROP_BOTTOM](#oh_md_key_video_crop_bottom) | 描述裁剪矩形底部坐标(y)值的键,值类型为int32_t。该键是可选的。 | @@ -87,11 +92,15 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | [OH_MD_KEY_VIDEO_ENABLE_LOW_LATENCY](#oh_md_key_video_enable_low_latency) | 使能低时延视频编解码的键,值类型为int32_t:1表示使能,0表示其它情况。该键是可选的且只用于视频编码,在configure阶段使用。 | | [OH_MD_KEY_VIDEO_ENCODER_QP_MAX](#oh_md_key_video_encoder_qp_max) | 描述视频编码器允许的最大量化参数的键,值类型为int32_t。该键是可选的。 | | [OH_MD_KEY_VIDEO_ENCODER_QP_MIN](#oh_md_key_video_encoder_qp_min) | 描述视频编码器允许的最小量化参数的键,值类型为int32_t。该键是可选的。 | +| [OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE](#oh_md_key_video_encoder_qp_average) |描述视频帧平均量化参数的键,值类型为int32_t。该键是可选的。 | +| [OH_MD_KEY_VIDEO_ENCODER_MSE](#oh_md_key_video_encoder_mse) |描述视频帧平方误差的键,值类型为double。该键是可选的。 | | [OH_MD_KEY_VIDEO_ENCODER_LTR_FRAME_COUNT](#oh_md_key_video_encoder_ltr_frame_count) | 描述长期参考帧个数的键,值类型为int32_t,必须在支持的值范围内使用。| | [OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_MARK_LTR](#oh_md_key_video_encoder_per_frame_mark_ltr) | 标记当前帧为长期参考帧的键,值类型为int32_t,1表示被标记,0表示其它情况。 | | [OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_USE_LTR](#oh_md_key_video_encoder_per_frame_use_ltr) | 描述当前帧参考的长期参考帧帧号的键,值类型为int32_t。 | | [OH_MD_KEY_VIDEO_PER_FRAME_IS_LTR](#oh_md_key_video_per_frame_is_ltr) | 指示当前帧是否为长期参考帧的键,值类型为int32_t,1表示是LTR,0表示其它情况。 | | [OH_MD_KEY_VIDEO_PER_FRAME_POC](#oh_md_key_video_per_frame_poc) | 描述帧的POC的键,值类型为int32_t。 | +| [OH_MD_KEY_VIDEO_SAR](#oh_md_key_video_sar) | 样本长宽比的键,值类型为double。 | + 音频专有的键值对: @@ -130,6 +139,10 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | [OH_MD_KEY_LYRICS](#oh_md_key_lyrics) | 源格式歌词的键,值类型为string。该键是可选的。 | | [OH_MD_KEY_TRACK_COUNT](#oh_md_key_track_count) | 源格式轨道数量的键,值类型为uint32_t。该键是可选的。 | | [OH_MD_KEY_VIDEO_IS_HDR_VIVID](#oh_md_key_video_is_hdr_vivid) | 是否是hdr vivid的键,值类型为bool。该键是可选的。 | +| [OH_MD_KEY_DECODING_TIMESTAMP](#oh_md_key_decoding_timestamp) | 解码缓冲器时间戳的键,以微秒为单位,值类型为int64_t。该键是可选的。 | +| [OH_MD_KEY_BUFFER_DURATION](#oh_md_key_buffer_duration) | 缓冲器持续时间的键,以微秒为单位,值类型为int64_t。该键是可选的。 | +| [OH_MD_KEY_START_TIME](#oh_md_key_start_time) | 文件开始时间的键,值类型为int64_t。该键是可选的。 | + ## 汇总 @@ -193,7 +206,7 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | [OH_AACProfile](#oh_aacprofile-1) { AAC_PROFILE_LC = 0 } | AAC档次。 | | [OH_AVCProfile](#oh_avcprofile-1) {
AVC_PROFILE_BASELINE = 0,
AVC_PROFILE_HIGH = 4,
AVC_PROFILE_MAIN = 8
} | AVC档次。 | | [OH_HEVCProfile](#oh_hevcprofile-1) {
HEVC_PROFILE_MAIN = 0,
HEVC_PROFILE_MAIN_10 = 1,
HEVC_PROFILE_MAIN_STILL = 2,
HEVC_PROFILE_MAIN_10_HDR10 = 3,
HEVC_PROFILE_MAIN_10_HDR10_PLUS = 4
} | HEVC档次。 | -| [OH_AVOutputFormat](#oh_avoutputformat-1) {
AV_OUTPUT_FORMAT_DEFAULT = 0,
AV_OUTPUT_FORMAT_MPEG_4 = 2,
AV_OUTPUT_FORMAT_M4A = 6
} | 枚举封装器的输出文件格式。 | +| [OH_AVOutputFormat](#oh_avoutputformat-1) {
AV_OUTPUT_FORMAT_DEFAULT = 0,
AV_OUTPUT_FORMAT_MPEG_4 = 2,
AV_OUTPUT_FORMAT_M4A = 6,
AV_OUTPUT_FORMAT_AMR = 8,
AV_OUTPUT_FORMAT_MP3 = 9
} | 枚举封装器的输出文件格式。 | | [OH_AVSeekMode](#oh_avseekmode-1) {
SEEK_MODE_NEXT_SYNC = 0,
SEEK_MODE_PREVIOUS_SYNC,
SEEK_MODE_CLOSEST_SYNC
} | 跳转模式。 | | [OH_ScalingMode](#oh_scalingmode-1) {
SCALING_MODE_SCALE_TO_WINDOW = 1,
SCALING_MODE_SCALE_CROP = 2
} | 缩放模式。 | | [OH_BitsPerSample](#oh_bitspersample-1) {
SAMPLE_U8 = 0, SAMPLE_S16LE = 1,
SAMPLE_S24LE = 2, SAMPLE_S32LE = 3,
SAMPLE_F32LE = 4, SAMPLE_U8P = 5,
SAMPLE_S16P = 6, SAMPLE_S24P = 7,
SAMPLE_S32P = 8, SAMPLE_F32P = 9,
INVALID_WIDTH = -1
} | 枚举每个编码样本的音频位数。 | @@ -224,6 +237,10 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | const char \* [OH_AVCODEC_MIMETYPE_AUDIO_AMR_WB](#oh_avcodec_mimetype_audio_amr_wb) | AMR_WB音频解码器的MIME类型。 | | const char \* [OH_AVCODEC_MIMETYPE_AUDIO_OPUS](#oh_avcodec_mimetype_audio_opus) | OPUS音频编解码器的MIME类型。(此规格暂未开放) | | const char \* [OH_AVCODEC_MIMETYPE_AUDIO_G711MU](#oh_avcodec_mimetype_audio_g711mu) | G711MU音频编解码器的MIME类型。 | +| const char \* [OH_AVCODEC_MIMETYPE_VIDEO_VVC](#oh_avcodec_mimetype_video_vvc) | 音频和视频编解码器的MIME类型。 | +| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_LBVC](#oh_avcodec_mimetype_audio_lbvc) |音频低码率音频编解码器的MIME类型。(此规格暂未开放) | +| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_APE](#oh_avcodec_mimetype_audio_ape) |APE音频解码器的MIME类型。 | +| const char \* [OH_AVCODEC_MIMETYPE_SUBTITLE_SRT](#oh_avcodec_mimetype_subtitle_srt) |SRT字幕解封装器的MIME类型。 | | const char \* [OH_ED_KEY_TIME_STAMP](#oh_ed_key_time_stamp) | 表面的额外数据中时间戳的键,值类型为int64。 | | const char \* [OH_ED_KEY_EOS](#oh_ed_key_eos) | 表面的额外数据中流结束符的键,值类型为bool。 | | const char \* [OH_MD_KEY_TRACK_TYPE](#oh_md_key_track_type) | 曲目类型的键,值类型为uint8_t,请参见[OH_MediaType](#oh_mediatype)。 | @@ -237,7 +254,7 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | const char \* [OH_MD_KEY_AUDIO_SAMPLE_FORMAT](#oh_md_key_audio_sample_format) | 音频原始格式的键,值类型为uint32_t。 | | const char \* [OH_MD_KEY_FRAME_RATE](#oh_md_key_frame_rate) | 视频帧率的键,值类型为double。 | | const char \* [OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE](#oh_md_key_video_encode_bitrate_mode) | 视频编码码率模式,值类型为int32_t,请参见[OH_VideoEncodeBitrateMode](_video_encoder.md#oh_videoencodebitratemode)。 | -| const char \* [OH_MD_KEY_PROFILE](#oh_md_key_profile) | 编码档次,值类型为int32_t请参见[OH_HEVCProfile](#oh_hevcprofile), [OH_AACProfile](#oh_aacprofile)。 | +| const char \* [OH_MD_KEY_PROFILE](#oh_md_key_profile) | 编码档次,值类型为int32_t请参见[OH_AVCProfile](#oh_avcprofile), [OH_HEVCProfile](#oh_hevcprofile), [OH_AACProfile](#oh_aacprofile)。 | | const char \* [OH_MD_KEY_AUD_CHANNEL_COUNT](#oh_md_key_aud_channel_count) | 音频通道计数键,值类型为uint32_t。 | | const char \* [OH_MD_KEY_AUD_SAMPLE_RATE](#oh_md_key_aud_sample_rate) | 音频采样率键,值类型为uint32_t。 | | const char \* [OH_MD_KEY_I_FRAME_INTERVAL](#oh_md_key_i_frame_interval) | 关键帧间隔的键,值类型为int32_t,单位为毫秒。 | @@ -277,7 +294,7 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | const char \* [OH_MD_KEY_AUDIO_VIVID_METADATA](#oh_md_key_audio_vivid_metadata) | audio vivid元数据的键,值类型为uint8_t\*。 | | const char \* [OH_FEATURE_PROPERTY_KEY_VIDEO_ENCODER_MAX_LTR_FRAME_COUNT](#oh_feature_property_key_video_encoder_max_ltr_frame_count) | 在视频编码中获取长期参考帧的最大个数的键,值类型为int32_t。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_ENABLE_TEMPORAL_SCALABILITY](#oh_md_key_video_encoder_enable_temporal_scalability) | 使能分层编码的键,值类型为int32_t:1表示使能,0表示其它情况。 | -| const char \* [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE](#oh_md_key_video_encoder_temporal_gop_size) | 传递图片组大小的键, 值类型为int32_t,只在使能分层编码时生效。 | +| const char \* [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE](#oh_md_key_video_encoder_temporal_gop_size) | 描述图片组大小的键, 值类型为int32_t,只在使能分层编码时生效。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODE](#oh_md_key_video_encoder_temporal_gop_reference_mode) | 描述图片组内参考模式的键,值类型为int32_t,请参见[OH_TemporalGopReferenceMode](#oh_temporalgopreferencemode),只在使能分层编码时生效。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_LTR_FRAME_COUNT](#oh_md_key_video_encoder_ltr_frame_count) | 描述长期参考帧个数的键,值类型为int32_t,必须在支持的值范围内使用。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_MARK_LTR](#oh_md_key_video_encoder_per_frame_mark_ltr) | 标记当前帧为长期参考帧的键,值类型为int32_t,1表示被标记,0表示其它情况。 | @@ -295,6 +312,12 @@ CodecBase模块提供用于音视频封装、解封装、编解码基础功能 | const char \* [OH_MD_KEY_VIDEO_ENABLE_LOW_LATENCY](#oh_md_key_video_enable_low_latency) | 使能低时延视频编解码的键,值类型为int32_t:1表示使能,0表示其它情况。如果使能,则视频编码器或视频解码器持有的输入和输出数据不会超过编解码器标准所要求的数量。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_QP_MAX](#oh_md_key_video_encoder_qp_max) | 描述视频编码器允许的最大量化参数的键, 值类型为int32_t。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_QP_MIN](#oh_md_key_video_encoder_qp_min) | 描述视频编码器允许的最小量化参数的键, 值类型为int32_t。 | +| const char \* [OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE](#oh_md_key_video_encoder_qp_average) | 描述视频帧平均量化参数的键,值类型为int32_t。 | +| const char \* [OH_MD_KEY_VIDEO_ENCODER_MSE](#oh_md_key_video_encoder_mse) |描述视频帧平方误差的键,值类型为double。 | +| const char \* [OH_MD_KEY_DECODING_TIMESTAMP](#oh_md_key_decoding_timestamp) | 解码缓冲器时间戳的键,以微秒为单位,值类型为int64_t。 | +| const char \* [OH_MD_KEY_BUFFER_DURATION](#oh_md_key_buffer_duration) | 缓冲器持续时间的键,以微秒为单位,值类型为int64_t。 | +| const char \* [OH_MD_KEY_START_TIME](#oh_md_key_start_time) | 文件开始时间的键,值类型为int64_t。 | +| const char \* [OH_MD_KEY_VIDEO_SAR](#oh_md_key_video_sar) | 样本长宽比的键,值类型为double。 | ## 类型定义说明 @@ -519,9 +542,9 @@ typedef void(* OH_AVCodecOnStreamChanged) (OH_AVCodec *codec, OH_AVFormat *forma | 名称 | 描述 | | -------- | -------- | -| codec | OH_AVCodec实例。 | -| format | 新输出流描述信息。 | -| userData | 用户特定数据。 | +| codec | OH_AVCodec实例。 | +| format | 新输出流描述信息。 | +| userData | 用户特定数据。 | ### OH_AVCProfile @@ -930,9 +953,9 @@ AVC档次。 | 枚举值 | 描述 | | -------- | -------- | -| AVC_PROFILE_BASELINE | AVC编码档次为基本档次。 | -| AVC_PROFILE_HIGH | AVC编码档次为高档次。 | -| AVC_PROFILE_MAIN | AVC编码档次为主档次。 | +| AVC_PROFILE_BASELINE | AVC编码档次为基本档次。 | +| AVC_PROFILE_HIGH | AVC编码档次为高档次。 | +| AVC_PROFILE_MAIN | AVC编码档次为主档次。 | ### OH_AVOutputFormat @@ -952,7 +975,8 @@ enum OH_AVOutputFormat | AV_OUTPUT_FORMAT_DEFAULT | 输出文件格式默认值,默认为MP4格式。 | | AV_OUTPUT_FORMAT_MPEG_4 | 输出文件格式为MP4格式。 | | AV_OUTPUT_FORMAT_M4A | 输出文件格式为M4A格式。 | - +| AV_OUTPUT_FORMAT_AMR | 输出文件格式为AMR格式。
**起始版本:** 12 | +| AV_OUTPUT_FORMAT_MP3 | 输出文件格式为MP3格式。
**起始版本:** 12 | ### OH_AVSeekMode @@ -1197,6 +1221,58 @@ enum OH_TransferCharacteristic ## 变量说明 +### OH_AVCODEC_MIMETYPE_SUBTITLE_SRT + +``` +const char* OH_AVCODEC_MIMETYPE_SUBTITLE_SRT +``` +**描述** +SRT字幕解封装器的MIME类型。 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 12 + + +### OH_AVCODEC_MIMETYPE_AUDIO_APE + +``` +const char* OH_AVCODEC_MIMETYPE_AUDIO_APE +``` +**描述** +APE音频解码器的MIME类型。 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 12 + + +### OH_AVCODEC_MIMETYPE_AUDIO_LBVC + +``` +const char* OH_AVCODEC_MIMETYPE_AUDIO_LBVC +``` +**描述** +音频低码率音频编解码器的MIME类型。(目前本规格未开放) + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 12 + + +### OH_AVCODEC_MIMETYPE_VIDEO_VVC + +``` +const char* OH_AVCODEC_MIMETYPE_VIDEO_VVC +``` +**描述** +音频和视频编解码器的MIME类型。 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 12 + + ### OH_AVCODEC_MIMETYPE_AUDIO_AAC ``` @@ -1545,7 +1621,7 @@ const char* OH_MD_KEY_AUDIO_OBJECT_NUMBER const char* OH_MD_KEY_AUDIO_SAMPLE_FORMAT ``` **描述** -音频原始格式的键,值类型为uint32_t。 +音频原始格式的键,值类型为uint32_t。请参见[AudioSampleFormat](../../reference/apis-audio-kit/js-apis-audio.md#audiosampleformat8)。 **系统能力:** SystemCapability.Multimedia.Media.CodecBase @@ -2098,9 +2174,10 @@ const char* OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE const char* OH_MD_KEY_VIDEO_ENCODER_ENABLE_TEMPORAL_SCALABILITY ``` **描述** -使能分层编码的键,值类型为int32_t:1表示使能,0表示其它情况。 +使能分层编码的键,值类型为int32_t:1表示使能,0表示其它情况。 -使用前可以通过[OH_AVCapability_IsFeatureSupported](_a_v_capability.md#oh_avcapability_isfeaturesupported)接口查询当前视频编码器是否支持分层编码。 +使用前可以通过[OH_AVCapability_IsFeatureSupported](_a_v_capability.md#oh_avcapability_isfeaturesupported)接口和枚举值 +[VIDEO_ENCODER_TEMPORAL_SCALABILITY](_a_v_capability.md#oh_avcapabilityfeature)来查询当前视频编码器是否支持分层编码。 该键是可选的且只用于视频编码,在configure阶段使用。 @@ -2188,6 +2265,36 @@ const char* OH_MD_KEY_VIDEO_ENCODER_QP_MIN **起始版本:** 12 +### OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE + +``` +const char* OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE +``` +**描述** +描述视频帧平均量化参数的键, 值类型为int32_t。 + +是视频编码器统计信息导出功能的一部分,由视频编码器为视频帧发出 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 12 + + +### OH_MD_KEY_VIDEO_ENCODER_MSE + +``` +const char* OH_MD_KEY_VIDEO_ENCODER_MSE +``` +**描述** +描述视频帧平方误差的键,值类型为double。 + +是视频编码器统计信息导出功能的一部分,由视频编码器为视频帧发出 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 12 + + ### OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODE ``` @@ -2209,7 +2316,7 @@ const char* OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODE const char* OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE ``` **描述** -传递图片组大小的键, 值类型为int32_t,只在使能分层编码时生效。 +描述图片组大小的键, 值类型为int32_t,只在使能分层编码时生效。 该键是可选的且只用于视频编码,在configure阶段使用。 @@ -2230,6 +2337,46 @@ const char* OH_MD_KEY_VIDEO_IS_HDR_VIVID **起始版本:** 11 + +### OH_MD_KEY_DECODING_TIMESTAMP + +``` +const char* OH_MD_KEY_DECODING_TIMESTAMP +``` +**描述** +解码缓冲器时间戳的键,以微秒为单位,值类型为int64_t。 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 12 + + +### OH_MD_KEY_BUFFER_DURATION + +``` +const char* OH_MD_KEY_BUFFER_DURATION +``` +**描述** +缓冲器持续时间的键,以微秒为单位,值类型为int64_t。 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 12 + + +### OH_MD_KEY_START_TIME + +``` +const char* OH_MD_KEY_START_TIME +``` +**描述** +文件开始时间的键,值类型为int64_t。 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 12 + + ### OH_MD_KEY_VIDEO_PER_FRAME_IS_LTR ``` @@ -2369,3 +2516,16 @@ const char* OH_MD_MAX_OUTPUT_BUFFER_COUNT **系统能力:** SystemCapability.Multimedia.Media.CodecBase **起始版本:** 10 + + +### OH_MD_KEY_VIDEO_SAR + +``` +const char* OH_MD_KEY_VIDEO_SAR +``` +**描述** +样本长宽比的键,值类型为double。 + +**系统能力:** SystemCapability.Multimedia.Media.CodecBase + +**起始版本:** 12 \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis-avcodec-kit/native__avcodec__base_8h.md b/zh-cn/application-dev/reference/apis-avcodec-kit/native__avcodec__base_8h.md index c7baed972ebc66204250676395b87ff427959ae1..68f2e91f7ad3e4bde63d0269bc933891e8ae12ca 100644 --- a/zh-cn/application-dev/reference/apis-avcodec-kit/native__avcodec__base_8h.md +++ b/zh-cn/application-dev/reference/apis-avcodec-kit/native__avcodec__base_8h.md @@ -62,7 +62,7 @@ | [OH_AACProfile](_codec_base.md#oh_aacprofile-1) { AAC_PROFILE_LC = 0 } | AAC档次。 | | [OH_AVCProfile](_codec_base.md#oh_avcprofile-1) {
AVC_PROFILE_BASELINE = 0,
AVC_PROFILE_HIGH = 4,
AVC_PROFILE_MAIN = 8
} | AVC档次。 | | [OH_HEVCProfile](_codec_base.md#oh_hevcprofile-1) {
HEVC_PROFILE_MAIN = 0,
HEVC_PROFILE_MAIN_10 = 1,
HEVC_PROFILE_MAIN_STILL = 2,
HEVC_PROFILE_MAIN_10_HDR10 = 3,
HEVC_PROFILE_MAIN_10_HDR10_PLUS = 4
} | HEVC档次。 | -| [OH_AVOutputFormat](_codec_base.md#oh_avoutputformat-1) {
AV_OUTPUT_FORMAT_DEFAULT = 0,
AV_OUTPUT_FORMAT_MPEG_4 = 2,
AV_OUTPUT_FORMAT_M4A = 6
} | 枚举封装器的输出文件格式。 | +| [OH_AVOutputFormat](_codec_base.md#oh_avoutputformat-1) {
AV_OUTPUT_FORMAT_DEFAULT = 0,
AV_OUTPUT_FORMAT_MPEG_4 = 2,
AV_OUTPUT_FORMAT_M4A = 6,
AV_OUTPUT_FORMAT_AMR = 8,
AV_OUTPUT_FORMAT_MP3 = 9
} | 枚举封装器的输出文件格式。 | | [OH_AVSeekMode](_codec_base.md#oh_avseekmode-1) {
SEEK_MODE_NEXT_SYNC = 0,
SEEK_MODE_PREVIOUS_SYNC,
SEEK_MODE_CLOSEST_SYNC
} | 跳转模式。 | | [OH_ScalingMode](_codec_base.md#oh_scalingmode-1) {
SCALING_MODE_SCALE_TO_WINDOW = 1,
SCALING_MODE_SCALE_CROP = 2
} | 缩放模式。 | | [OH_BitsPerSample](_codec_base.md#oh_bitspersample-1) {
SAMPLE_U8 = 0, SAMPLE_S16LE = 1,
SAMPLE_S24LE = 2, SAMPLE_S32LE = 3,
SAMPLE_F32LE = 4, SAMPLE_U8P = 5,
SAMPLE_S16P = 6, SAMPLE_S24P = 7,
SAMPLE_S32P = 8, SAMPLE_F32P = 9,
INVALID_WIDTH = -1
} | 枚举每个编码样本的音频位数。 | @@ -93,6 +93,10 @@ | const char \* [OH_AVCODEC_MIMETYPE_AUDIO_AMR_WB](_codec_base.md#oh_avcodec_mimetype_audio_amr_wb) | AMR_WB音频解码器的MIME类型。 | | const char \* [OH_AVCODEC_MIMETYPE_AUDIO_OPUS](_codec_base.md#oh_avcodec_mimetype_audio_opus) | OPUS音频编解码器的MIME类型。(此规格暂未开放) | | const char \* [OH_AVCODEC_MIMETYPE_AUDIO_G711MU](_codec_base.md#oh_avcodec_mimetype_audio_g711mu) | G711MU音频编解码器的MIME类型。 | +| const char \* [OH_AVCODEC_MIMETYPE_VIDEO_VVC](_codec_base.md#oh_avcodec_mimetype_video_vvc) | 音频和视频编解码器的MIME类型。 | +| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_LBVC](_codec_base.md#oh_avcodec_mimetype_audio_lbvc) |音频低码率音频编解码器的MIME类型。(此规格暂未开放) | +| const char \* [OH_AVCODEC_MIMETYPE_AUDIO_APE](_codec_base.md#oh_avcodec_mimetype_audio_ape) |APE音频解码器的MIME类型。 | +| const char \* [OH_AVCODEC_MIMETYPE_SUBTITLE_SRT](_codec_base.md#oh_avcodec_mimetype_subtitle_srt) |SRT字幕解封装器的MIME类型。 | | const char \* [OH_ED_KEY_TIME_STAMP](_codec_base.md#oh_ed_key_time_stamp) | 表面的额外数据中时间戳的键,值类型为int64。 | | const char \* [OH_ED_KEY_EOS](_codec_base.md#oh_ed_key_eos) | 表面的额外数据中流结束符的键,值类型为bool。 | | const char \* [OH_MD_KEY_TRACK_TYPE](_codec_base.md#oh_md_key_track_type) | 曲目类型的键,值类型为uint8_t,请参见[OH_MediaType](_codec_base.md#oh_mediatype)。 | @@ -106,7 +110,7 @@ | const char \* [OH_MD_KEY_AUDIO_SAMPLE_FORMAT](_codec_base.md#oh_md_key_audio_sample_format) | 音频原始格式的键,值类型为uint32_t,请参见[OH_BitsPerSample](_codec_base.md#oh_bitspersample)。 | | const char \* [OH_MD_KEY_FRAME_RATE](_codec_base.md#oh_md_key_frame_rate) | 视频帧率的键,值类型为double。 | | const char \* [OH_MD_KEY_VIDEO_ENCODE_BITRATE_MODE](_codec_base.md#oh_md_key_video_encode_bitrate_mode) | 视频编码码率模式,值类型为int32_t,请参见[OH_VideoEncodeBitrateMode](_video_encoder.md#oh_videoencodebitratemode)。 | -| const char \* [OH_MD_KEY_PROFILE](_codec_base.md#oh_md_key_profile) | 编码档次,值类型为int32_t请参见[OH_HEVCProfile](_codec_base.md#oh_hevcprofile), [OH_AACProfile](_codec_base.md#oh_aacprofile)。 | +| const char \* [OH_MD_KEY_PROFILE](_codec_base.md#oh_md_key_profile) | 编码档次,值类型为int32_t请参见[OH_AVCProfile](_codec_base.md#oh_avcprofile),[OH_HEVCProfile](_codec_base.md#oh_hevcprofile), [OH_AACProfile](_codec_base.md#oh_aacprofile)。 | | const char \* [OH_MD_KEY_AUD_CHANNEL_COUNT](_codec_base.md#oh_md_key_aud_channel_count) | 音频通道计数键,值类型为uint32_t。 | | const char \* [OH_MD_KEY_AUD_SAMPLE_RATE](_codec_base.md#oh_md_key_aud_sample_rate) | 音频采样率键,值类型为uint32_t。 | | const char \* [OH_MD_KEY_I_FRAME_INTERVAL](_codec_base.md#oh_md_key_i_frame_interval) | 关键帧间隔的键,值类型为int32_t,单位为毫秒。 | @@ -146,7 +150,7 @@ | const char \* [OH_MD_KEY_AUDIO_VIVID_METADATA](_codec_base.md#oh_md_key_audio_vivid_metadata) | audio vivid元数据的键,值类型为uint8_t\*。 | | const char \* [OH_FEATURE_PROPERTY_KEY_VIDEO_ENCODER_MAX_LTR_FRAME_COUNT](_codec_base.md#oh_feature_property_key_video_encoder_max_ltr_frame_count) | 在视频编码中获取长期参考帧的最大个数的键,值类型为int32_t。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_ENABLE_TEMPORAL_SCALABILITY](_codec_base.md#oh_md_key_video_encoder_enable_temporal_scalability) | 使能分层编码的键,值类型为int32_t:1表示使能,0表示其它情况。 | -| const char \* [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE](_codec_base.md#oh_md_key_video_encoder_temporal_gop_size) | 传递图片组大小的键, 值类型为int32_t,只在使能分层编码时生效。 | +| const char \* [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_SIZE](_codec_base.md#oh_md_key_video_encoder_temporal_gop_size) | 描述图片组大小的键, 值类型为int32_t,只在使能分层编码时生效。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_TEMPORAL_GOP_REFERENCE_MODE](_codec_base.md#oh_md_key_video_encoder_temporal_gop_reference_mode) | 描述图片组内参考模式的键,值类型为int32_t,请参见[OH_TemporalGopReferenceMode](_codec_base.md#oh_temporalgopreferencemode),只在使能分层编码时生效。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_LTR_FRAME_COUNT](_codec_base.md#oh_md_key_video_encoder_ltr_frame_count) | 描述长期参考帧个数的键,值类型为int32_t,必须在支持的值范围内使用。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_PER_FRAME_MARK_LTR](_codec_base.md#oh_md_key_video_encoder_per_frame_mark_ltr) | 标记当前帧为长期参考帧的键,值类型为int32_t,1表示被标记,0表示其它情况。 | @@ -164,3 +168,9 @@ | const char \* [OH_MD_KEY_VIDEO_ENABLE_LOW_LATENCY](_codec_base.md#oh_md_key_video_enable_low_latency) | 使能低时延视频编解码的键,值类型为int32_t:1表示使能,0表示其它情况。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_QP_MAX](_codec_base.md#oh_md_key_video_encoder_qp_max) | 描述视频编码器允许的最大量化参数的键, 值类型为int32_t。 | | const char \* [OH_MD_KEY_VIDEO_ENCODER_QP_MIN](_codec_base.md#oh_md_key_video_encoder_qp_min) | 描述视频编码器允许的最小量化参数的键, 值类型为int32_t。 | +| const char \* [OH_MD_KEY_VIDEO_ENCODER_QP_AVERAGE](_codec_base.md#oh_md_key_video_encoder_qp_average) | 描述视频帧平均量化参数的键,值类型为int32_t。 | +| const char \* [OH_MD_KEY_VIDEO_ENCODER_MSE](_codec_base.md#oh_md_key_video_encoder_mse) |描述视频帧平方误差的键,值类型为double。 | +| const char \* [OH_MD_KEY_DECODING_TIMESTAMP](_codec_base.md#oh_md_key_decoding_timestamp) | 解码缓冲器时间戳的键,以微秒为单位,值类型为int64_t。 | +| const char \* [OH_MD_KEY_BUFFER_DURATION](_codec_base.md#oh_md_key_buffer_duration) | 缓冲器持续时间的键,以微秒为单位,值类型为int64_t。 | +| const char \* [OH_MD_KEY_START_TIME](_codec_base.md#oh_md_key_start_time) | 文件开始时间的键,值类型为int64_t。 | +| const char \* [OH_MD_KEY_VIDEO_SAR](_codec_base.md#oh_md_key_video_sar) | 样本长宽比的键,值类型为double。 | \ No newline at end of file