Most visited

Recently visited

Added in API level 16

MediaFormat

public final class MediaFormat
extends Object

java.lang.Object
   ↳ android.media.MediaFormat


封装描述媒体数据格式的信息,无论是音频还是视频。 媒体数据的格式被指定为字符串/值对。 所有音频/视频格式的通用密钥, 所有未标记为可选的密钥都是必需的

Name Value Type 描述
KEY_MIME String The type of the format.
KEY_MAX_INPUT_SIZE Integer optional, maximum size of a buffer of input data
KEY_BIT_RATE Integer encoder-only, desired bitrate in bits/second
Video formats have the following keys:
Name Value Type 描述
KEY_WIDTH Integer
KEY_HEIGHT Integer
KEY_COLOR_FORMAT Integer set by the user for encoders, readable in the output format of decoders
KEY_FRAME_RATE Integer or Float required for encoders, optional for decoders
KEY_CAPTURE_RATE Integer
KEY_I_FRAME_INTERVAL Integer encoder-only
KEY_INTRA_REFRESH_PERIOD Integer encoder-only, optional
KEY_MAX_WIDTH Integer decoder-only, optional, max-resolution width
KEY_MAX_HEIGHT Integer decoder-only, optional, max-resolution height
KEY_REPEAT_PREVIOUS_FRAME_AFTER Long video encoder in surface-mode only
KEY_PUSH_BLANK_BUFFERS_ON_STOP Integer(1) video decoder rendering to a surface only
Specify both KEY_MAX_WIDTH and KEY_MAX_HEIGHT to enable adaptive playback (seamless resolution change) for a video decoder that supports it ( FEATURE_AdaptivePlayback). The values are used as hints for the codec: they are the maximum expected resolution to prepare for. Depending on codec support, preparing for larger maximum resolution may require more memory even if that resolution is never reached. These fields have no effect for codecs that do not support adaptive playback.

Audio formats have the following keys:
Name Value Type 描述
KEY_CHANNEL_COUNT Integer
KEY_SAMPLE_RATE Integer
KEY_PCM_ENCODING Integer optional
KEY_IS_ADTS Integer optional, if decoding AAC audio content, setting this key to 1 indicates that each audio frame is prefixed by the ADTS header.
KEY_AAC_PROFILE Integer encoder-only, optional, if content is AAC audio, specifies the desired profile.
KEY_AAC_SBR_MODE Integer encoder-only, optional, if content is AAC audio, specifies the desired SBR mode.
KEY_AAC_DRC_TARGET_REFERENCE_LEVEL Integer decoder-only, optional, if content is AAC audio, specifies the target reference level.
KEY_AAC_ENCODED_TARGET_LEVEL Integer decoder-only, optional, if content is AAC audio, specifies the target reference level used at encoder.
KEY_AAC_DRC_BOOST_FACTOR Integer decoder-only, optional, if content is AAC audio, specifies the DRC boost factor.
KEY_AAC_DRC_ATTENUATION_FACTOR Integer decoder-only, optional, if content is AAC audio, specifies the DRC attenuation factor.
KEY_AAC_DRC_HEAVY_COMPRESSION Integer decoder-only, optional, if content is AAC audio, specifies whether to use heavy compression.
KEY_AAC_MAX_OUTPUT_CHANNEL_COUNT Integer decoder-only, optional, if content is AAC audio, specifies the maximum number of channels the decoder outputs.
KEY_CHANNEL_MASK Integer optional, a mask of audio channel assignments
KEY_FLAC_COMPRESSION_LEVEL Integer encoder-only, optional, if content is FLAC audio, specifies the desired compression level.
Subtitle formats have the following keys:
KEY_MIME String The type of the format.
KEY_LANGUAGE String The language of the content.

Summary

Constants

int COLOR_RANGE_FULL

全系列。

int COLOR_RANGE_LIMITED

范围有限。

int COLOR_STANDARD_BT2020

BT.2020色彩色度坐标为KR = 0.2627,KB = 0.0593。

int COLOR_STANDARD_BT601_NTSC

BT.601 525彩色色度坐标,KR = 0.299,KB = 0.114。

int COLOR_STANDARD_BT601_PAL

BT.601 625色彩色度坐标,KR = 0.299,KB = 0.114。

int COLOR_STANDARD_BT709

BT.709颜色色度坐标,KR = 0.2126,KB = 0.0722。

int COLOR_TRANSFER_HLG

ARIB STD-B67混合对数伽马传输功能。

int COLOR_TRANSFER_LINEAR

线性传递特性曲线。

int COLOR_TRANSFER_SDR_VIDEO

SMPTE 170M传输特性曲线由BT.601 / BT.709 / BT.2020使用。

int COLOR_TRANSFER_ST2084

SMPTE ST 2084传输功能。

String KEY_AAC_DRC_ATTENUATION_FACTOR

一个描述衰减因子的关键字,可以使输出的动态适应实际的听音要求。

String KEY_AAC_DRC_BOOST_FACTOR

描述助推系数的关键,可以使输出的动态适应实际的听音要求。

String KEY_AAC_DRC_HEAVY_COMPRESSION

一个描述DRC重压缩概要文件选择的关键。

String KEY_AAC_DRC_TARGET_REFERENCE_LEVEL

描述要应用的增益的键,以便输出响度与目标参考电平相匹配。

String KEY_AAC_ENCODED_TARGET_LEVEL

描述在编码器处假定的目标参考电平的关键字,用于计算削波预防的衰减增益。

String KEY_AAC_MAX_OUTPUT_CHANNEL_COUNT

一个描述AAC解码器可以输出的最大信道数的密钥。

String KEY_AAC_PROFILE

描述要使用的AAC配置文件的关键字(仅限AAC音频格式)。

String KEY_AAC_SBR_MODE

描述要使用的AAC SBR模式的关键字(仅限AAC音频格式)。

String KEY_AUDIO_SESSION_ID

描述与隧道视频编解码器关联的AudioTrack的音频会话ID的密钥。

String KEY_BITRATE_MODE

描述编码器使用的所需比特率模式的密钥。

String KEY_BIT_RATE

描述以比特/秒为单位的平均比特率的密钥。

String KEY_CAPTURE_RATE

描述以帧/秒为单位的视频格式捕获速率的关键。

String KEY_CHANNEL_COUNT

描述音频格式中频道数量的关键。

String KEY_CHANNEL_MASK

描述音频内容的频道组成的关键。

String KEY_COLOR_FORMAT

以视频格式描述内容的颜色格式的关键。

String KEY_COLOR_RANGE

描述视频内容的组件值范围的可选键。

String KEY_COLOR_STANDARD

可选键,用于描述视频内容的原色,白点和亮度因子。

String KEY_COLOR_TRANSFER

描述用于视频内容的光电传输功能的可选键。

String KEY_COMPLEXITY

描述编码复杂性的关键。

String KEY_DURATION

描述内容持续时间(以微秒为单位)的关键字。

String KEY_FLAC_COMPRESSION_LEVEL

描述要使用的FLAC压缩级别的密钥(仅限FLAC音频格式)。

String KEY_FRAME_RATE

以帧/秒为单位描述视频格式帧频的关键。

String KEY_HDR_STATIC_INFO

描述HDR(高动态范围)视频内容的静态元数据的可选键。

String KEY_HEIGHT

一种描述视频格式内容高度的关键字。

String KEY_INTRA_REFRESH_PERIOD

描述帧内刷新周期的可选键。

String KEY_IS_ADTS

如果内容是AAC音频和音频帧,则将其映射为值为1的键以ADTS标头为前缀。

String KEY_IS_AUTOSELECT

轨道的布尔型AUTOSELECT行为的关键。

String KEY_IS_DEFAULT

轨道的布尔DEFAULT行为的关键。

String KEY_IS_FORCED_SUBTITLE

字幕轨道的FORCED字段的关键字。

String KEY_I_FRAME_INTERVAL

描述I帧之间以秒为单位表示的I帧频率的关键字。

String KEY_LANGUAGE

描述内容语言的关键词,使用ISO 639-1或639-2 / T代码。

String KEY_LEVEL

描述编码器使用的所需配置文件的关键字。

String KEY_MAX_HEIGHT

描述视频解码器格式中内容的最大预期高度的关键字,以防视频内容中的分辨率发生变化。

String KEY_MAX_INPUT_SIZE

描述由此MediaFormat描述的数据缓冲区的最大字节数的关键字。

String KEY_MAX_WIDTH

描述视频解码器格式中内容的最大预期宽度的关键字,以防视频内容中的分辨率发生变化。

String KEY_MIME

描述MediaFormat的MIME类型的关键字。

String KEY_OPERATING_RATE

描述编解码器需要操作的视频或音频采样率的所需操作帧速率的关键字。

String KEY_PCM_ENCODING

描述原始音频采样编码/格式的密钥。

String KEY_PRIORITY

描述所需编解码器优先级的密钥。

String KEY_PROFILE

描述编码器使用的所需配置文件的关键字。

String KEY_PUSH_BLANK_BUFFERS_ON_STOP

如果在配置视频解码器渲染到表面时指定,则会导致解码器输出“空白”,即

String KEY_REPEAT_PREVIOUS_FRAME_AFTER

仅在以“表面输入”模式配置视频编码器时适用。

String KEY_ROTATION

描述输出表面上所需顺时针旋转的键。

String KEY_SAMPLE_RATE

描述音频格式采样率的密钥。

String KEY_SLICE_HEIGHT

描述多平面(YUV)视频字节缓冲区布局平面高度的关键。

String KEY_STRIDE

描述视频字节缓冲区布局跨度的关键。

String KEY_TEMPORAL_LAYERING

描述时间分层模式的关键。

String KEY_TRACK_ID

描述媒体轨道内容的唯一ID的密钥。

String KEY_WIDTH

描述视频格式中内容宽度的关键字。

String MIMETYPE_AUDIO_AAC

String MIMETYPE_AUDIO_AC3

String MIMETYPE_AUDIO_AMR_NB

String MIMETYPE_AUDIO_AMR_WB

String MIMETYPE_AUDIO_EAC3

String MIMETYPE_AUDIO_FLAC

String MIMETYPE_AUDIO_G711_ALAW

String MIMETYPE_AUDIO_G711_MLAW

String MIMETYPE_AUDIO_MPEG

String MIMETYPE_AUDIO_MSGSM

String MIMETYPE_AUDIO_OPUS

String MIMETYPE_AUDIO_QCELP

String MIMETYPE_AUDIO_RAW

String MIMETYPE_AUDIO_VORBIS

String MIMETYPE_TEXT_CEA_608

CEA-608隐藏式字幕数据的MIME类型。

String MIMETYPE_TEXT_VTT

WebVTT字幕数据的MIME类型。

String MIMETYPE_VIDEO_AVC

String MIMETYPE_VIDEO_DOLBY_VISION

String MIMETYPE_VIDEO_H263

String MIMETYPE_VIDEO_HEVC

String MIMETYPE_VIDEO_MPEG2

String MIMETYPE_VIDEO_MPEG4

String MIMETYPE_VIDEO_RAW

String MIMETYPE_VIDEO_VP8

String MIMETYPE_VIDEO_VP9

Public constructors

MediaFormat()

创建一个空的MediaFormat

Public methods

final boolean containsKey(String name)

如果给定名称的键存在于格式中,则返回true。

static final MediaFormat createAudioFormat(String mime, int sampleRate, int channelCount)

创建最小的音频格式。

static final MediaFormat createSubtitleFormat(String mime, String language)

创建最小的字幕格式。

static final MediaFormat createVideoFormat(String mime, int width, int height)

创建一个最小的视频格式。

final ByteBuffer getByteBuffer(String name)

返回ByteBuffer键的值。

boolean getFeatureEnabled(String feature)

返回要启用的功能( true )还是禁用的功能( false )。

final float getFloat(String name)

返回浮点键的值。

final int getInteger(String name)

返回整数键的值。

final long getLong(String name)

返回长键的值。

final String getString(String name)

返回字符串键的值。

final void setByteBuffer(String name, ByteBuffer bytes)

设置ByteBuffer键的值。

void setFeatureEnabled(String feature, boolean enabled)

设置要启用的功能( true )还是禁用的功能( false )。

final void setFloat(String name, float value)

设置浮点键的值。

final void setInteger(String name, int value)

设置整数键的值。

final void setLong(String name, long value)

设置长键的值。

final void setString(String name, String value)

设置字符串键的值。

String toString()

返回对象的字符串表示形式。

Inherited methods

From class java.lang.Object

Constants

COLOR_RANGE_FULL

Added in API level 24
int COLOR_RANGE_FULL

全系列。 对于8位内容,Y,Cr和Cb分量值的范围为0到255。

常数值:1(0x00000001)

COLOR_RANGE_LIMITED

Added in API level 24
int COLOR_RANGE_LIMITED

范围有限。 对于8位内容,Y分量值范围从16到235。 对于8位内容,Cr,Cy值范围从16到240。 这是视频内容的默认设置。

常量值:2(0x00000002)

COLOR_STANDARD_BT2020

Added in API level 24
int COLOR_STANDARD_BT2020

BT.2020色彩色度坐标为KR = 0.2627,KB = 0.0593。

常数值:6(0x00000006)

COLOR_STANDARD_BT601_NTSC

Added in API level 24
int COLOR_STANDARD_BT601_NTSC

BT.601 525彩色色度坐标,KR = 0.299,KB = 0.114。

常量值:4(0x00000004)

COLOR_STANDARD_BT601_PAL

Added in API level 24
int COLOR_STANDARD_BT601_PAL

BT.601 625色彩色度坐标,KR = 0.299,KB = 0.114。

常量值:2(0x00000002)

COLOR_STANDARD_BT709

Added in API level 24
int COLOR_STANDARD_BT709

BT.709颜色色度坐标,KR = 0.2126,KB = 0.0722。

常数值:1(0x00000001)

COLOR_TRANSFER_HLG

Added in API level 24
int COLOR_TRANSFER_HLG

ARIB STD-B67混合对数伽马传输功能。 这由一些HDR视频内容使用。

常量值:7(0x00000007)

COLOR_TRANSFER_LINEAR

Added in API level 24
int COLOR_TRANSFER_LINEAR

线性传递特性曲线。

常数值:1(0x00000001)

COLOR_TRANSFER_SDR_VIDEO

Added in API level 24
int COLOR_TRANSFER_SDR_VIDEO

SMPTE 170M传输特性曲线由BT.601 / BT.709 / BT.2020使用。 这是大多数非HDR视频内容使用的曲线。

常量值:3(0x00000003)

COLOR_TRANSFER_ST2084

Added in API level 24
int COLOR_TRANSFER_ST2084

SMPTE ST 2084传输功能。 这由一些HDR视频内容使用。

常数值:6(0x00000006)

KEY_AAC_DRC_ATTENUATION_FACTOR

Added in API level 21
String KEY_AAC_DRC_ATTENUATION_FACTOR

一个描述衰减因子的关键字,可以使输出的动态适应实际的听音要求。 请参阅KEY_AAC_DRC_BOOST_FACTOR了解此衰减因子的作用和数值范围。

此密钥仅在解码过程中使用。

常数值:“aac-drc-cut-level”

KEY_AAC_DRC_BOOST_FACTOR

Added in API level 21
String KEY_AAC_DRC_BOOST_FACTOR

描述助推系数的关键,可以使输出的动态适应实际的听音要求。 这依赖于可以在编码比特流中传输的DRC增益序列,以便能够根据请求减少输出信号的动态。 这个因素使用户能够选择应用多少收益。

可以单独控制正增益(增强)和负增益(衰减,请参阅 KEY_AAC_DRC_ATTENUATION_FACTOR ),以便更好地匹配不同的使用情况。

典型地,衰减增益被发送用于响亮的信号段,并且增强增益被发送用于软信号段。 例如,如果在嘈杂的环境中监听输出,则使用增强因子来启用正增益,即将超出本底噪声的软信号段放大。 但对于深夜收听,衰减因子用于启用负增益,以防止大声信号令听众惊讶。 在通常需要低动态范围的应用中,使用升压因子和衰减因子以实现所有DRC增益。

为了防止削波,还建议在降混和/或响度标准化的情况下将衰减因子应用于高目标参考电平。

升压和衰减因子参数均以0到127之间的整数值给出,表示0(即,不适用)到1的范围(即分别完全应用升压/衰减因子)。

此密钥仅在解码过程中使用。

常数值:“aac-drc-boost-level”

KEY_AAC_DRC_HEAVY_COMPRESSION

Added in API level 21
String KEY_AAC_DRC_HEAVY_COMPRESSION

一个描述DRC重压缩概要文件选择的关键。 两个单独的DRC增益序列可以在一个比特流中传输:MPEG-4 DRC光压缩和DVB特定的重压缩。 当选择重压缩的应用时,选择其中一个序列:

  • 0 enables light compression,
  • 1 enables heavy compression instead.
Note that only light compression offers the features of scaling of DRC gains (see KEY_AAC_DRC_BOOST_FACTOR and KEY_AAC_DRC_ATTENUATION_FACTOR for the boost and attenuation factors, and frequency-selective (multiband) DRC. Light compression usually contains clipping prevention for stereo downmixing while heavy compression, if additionally provided in the bitstream, is usually stronger, and contains clipping prevention for stereo and mono downmixing.

默认是轻压缩。

此密钥仅在解码过程中使用。

常数值:“aac-drc-heavy-compression”

KEY_AAC_DRC_TARGET_REFERENCE_LEVEL

Added in API level 21
String KEY_AAC_DRC_TARGET_REFERENCE_LEVEL

描述要应用的增益的键,以便输出响度与目标参考电平相匹配。 这通常用于标准化各节目项目的响度。 该增益是作为目标参考级别和程序参考级别之间的差异得出的。 后者可以在比特流中给出并指示节目项目的实际响度值。

该值以0到127之间的整数值给出,并以-0.25 * dBFS中的目标参考电平计算。 因此,它表示满量程(0 dBFS)到-31.75 dBFS的范围。

此密钥仅在解码过程中使用。

常量值:“aac-target-ref-level”

KEY_AAC_ENCODED_TARGET_LEVEL

Added in API level 21
String KEY_AAC_ENCODED_TARGET_LEVEL

描述在编码器处假定的目标参考电平的关键字,用于计算削波预防的衰减增益。 如果知道该信息,则可以提供该信息,否则使用最坏情况的假设。

该值以0到127之间的整数值给出,并以-0.25 * dBFS中的目标参考电平计算。 因此,它表示满量程(0 dBFS)到-31.75 dBFS的范围。 默认值是127的最坏情况假设。

当使用重压缩时,该值将被忽略(请参阅 KEY_AAC_DRC_HEAVY_COMPRESSION )。

此密钥仅在解码过程中使用。

常量值:“aac-encoded-target-level”

KEY_AAC_MAX_OUTPUT_CHANNEL_COUNT

Added in API level 21
String KEY_AAC_MAX_OUTPUT_CHANNEL_COUNT

一个描述AAC解码器可以输出的最大信道数的密钥。 默认情况下,解码器将输出与编码流中相同数量的通道(如果支持)。 设置此值可限制输出通道的数量,并使用流中的缩混信息(如果可用)。

大于要解码的内容中的频道数量的值将被忽略。

此密钥仅在解码过程中使用。

常量值:“aac-max-output-channel_count”

KEY_AAC_PROFILE

Added in API level 16
String KEY_AAC_PROFILE

描述要使用的AAC配置文件的关键字(仅限AAC音频格式)。 常量在MediaCodecInfo.CodecProfileLevel中声明。

常数值:“aac-profile”

KEY_AAC_SBR_MODE

Added in API level 21
String KEY_AAC_SBR_MODE

描述要使用的AAC SBR模式的关键字(仅限AAC音频格式)。 关联的值是一个整数,可以设置为以下值:

  • 0 - no SBR should be applied
  • 1 - single rate SBR
  • 2 - double rate SBR
Note: If this key is not defined the default SRB mode for the desired AAC profile will be used.

此密钥仅在编码期间使用。

常数值:“aac-sbr-mode”

KEY_AUDIO_SESSION_ID

Added in API level 21
String KEY_AUDIO_SESSION_ID

描述与隧道视频编解码器关联的AudioTrack的音频会话ID的密钥。 关联的值是一个整数。

也可以看看:

常量值:“audio-session-id”

KEY_BITRATE_MODE

Added in API level 21
String KEY_BITRATE_MODE

描述编码器使用的所需比特率模式的密钥。 常量在MediaCodecInfo.CodecCapabilities中声明。

也可以看看:

常数值:“比特率模式”

KEY_BIT_RATE

Added in API level 16
String KEY_BIT_RATE

描述以比特/秒为单位的平均比特率的密钥。 关联的值是一个整数

常数值:“比特率”

KEY_CAPTURE_RATE

Added in API level 21
String KEY_CAPTURE_RATE

描述以帧/秒为单位的视频格式捕获速率的关键。

当捕捉速率与帧速率不同时,表示以不同于回放的速率采集视频,这会在回放过程中产生慢动作或延时效果。 应用程序可以使用此键的值来说明录制视频时捕捉和回放速率之间的相对速度比。

关联的值是一个整数或一个浮点数。

常数值:“捕获率”

KEY_CHANNEL_COUNT

Added in API level 16
String KEY_CHANNEL_COUNT

描述音频格式中频道数量的关键。 关联的值是一个整数

常数值:“通道计数”

KEY_CHANNEL_MASK

Added in API level 16
String KEY_CHANNEL_MASK

描述音频内容的频道组成的关键。 该掩码由AudioFormat通道掩码定义中的位组成。 关联的值是一个整数。

常量值:“通道掩码”

KEY_COLOR_FORMAT

Added in API level 16
String KEY_COLOR_FORMAT

以视频格式描述内容的颜色格式的关键。 常量声明为MediaCodecInfo.CodecCapabilities

常量值:“彩色格式”

KEY_COLOR_RANGE

Added in API level 24
String KEY_COLOR_RANGE

描述视频内容的组件值范围的可选键。 关联的值是一个整数:如果未指定,则为0,或者COLOR_RANGE_值之一。

常量值:“色彩范围”

KEY_COLOR_STANDARD

Added in API level 24
String KEY_COLOR_STANDARD

可选键,用于描述视频内容的原色,白点和亮度因子。 关联的值是一个整数:如果未指定,则为0或COLOR_STANDARD_值之一。

常数值:“color-standard”

KEY_COLOR_TRANSFER

Added in API level 24
String KEY_COLOR_TRANSFER

描述用于视频内容的光电传输功能的可选键。 关联的值是一个整数:如果未指定,则为0,或者COLOR_TRANSFER_值之一。

常数值:“颜色转移”

KEY_COMPLEXITY

Added in API level 21
String KEY_COMPLEXITY

描述编码复杂性的关键。 关联的值是一个整数。 这些值是特定于设备和编解码器的值,但较低的值通常会导致编码速度更快和/或功耗更低。

也可以看看:

恒定值:“复杂性”

KEY_DURATION

Added in API level 16
String KEY_DURATION

描述内容持续时间(以微秒为单位)的关键字。 关联的值很长。

常量值:“durationUs”

KEY_FLAC_COMPRESSION_LEVEL

Added in API level 16
String KEY_FLAC_COMPRESSION_LEVEL

描述要使用的FLAC压缩级别的密钥(仅限FLAC音频格式)。 关联值是一个从0(最快,最小压缩)到8(最慢,最大压缩)的整数。

常量值:“flac-compression-level”

KEY_FRAME_RATE

Added in API level 16
String KEY_FRAME_RATE

以帧/秒为单位描述视频格式帧频的关键。 当平台使用该值时,相关值通常为整数,但视频编解码器也接受浮点配置值。 具体而言, MediaExtractor提供与指定的轨道的帧频信息相对应的整数值并且非零。 否则,该密钥不存在。 MediaCodec接受浮点和整数值。 如果KEY_OPERATING_RATE不存在且KEY_PRIORITY0 (实时),则这表示期望的操作帧速率。 对于视频编码器,这个值对应于预期的帧速率,但编码器预计将支持基于buffer timestamp可变帧速率。 该键没有在所使用MediaCodec input / output格式,也不由MediaMuxer

常数值:“帧率”

KEY_HDR_STATIC_INFO

Added in API level 24
String KEY_HDR_STATIC_INFO

描述HDR(高动态范围)视频内容的静态元数据的可选键。 关联的值是一个ByteBuffer。 该缓冲区包含由CTA-861.3定义的HDMI动态范围和主控信息帧的静态元数据描述符(包括描述符ID)的原始内容。 除非此信息包含在比特流中,并且视频解码器支持支持HDR的配置文件,否则必须将此密钥提供给HDR视频内容的视频解码器。 此密钥必须提供给HDR视频内容的视频编码器。

常量值:“hdr-static-info”

KEY_HEIGHT

Added in API level 16
String KEY_HEIGHT

一种描述视频格式内容高度的关键字。 关联的值是一个整数

常数值:“高度”

KEY_INTRA_REFRESH_PERIOD

Added in API level 24
String KEY_INTRA_REFRESH_PERIOD

描述帧内刷新周期的可选键。 这是一个仅适用于视频编码器的可选参数。 如果编码器支持它( FEATURE_IntraRefresh ),则整个帧将在指定的时间段后完全刷新。 同样对于每个帧,宏块的固定子集必须进行帧内编码,这导致比插入关键帧更恒定的比特率。 此密钥推荐用于视频流应用,因为它提供低延迟和良好的错误恢复能力。 如果视频编码器不支持帧内刷新功能,该键将被忽略。 使用输出格式验证是否启用了此功能。 关联的值是一个整数。

常数值:“帧内刷新周期”

KEY_IS_ADTS

Added in API level 16
String KEY_IS_ADTS

如果内容是AAC音频和音频帧,则将其映射为值为1的键以ADTS标头为前缀。 关联的值是一个整数(0或1)。 此密钥仅在_decoding_内容支持时,不能用于配置编码器以发出ADTS输出。

常数值:“is-adts”

KEY_IS_AUTOSELECT

Added in API level 19
String KEY_IS_AUTOSELECT

轨道的布尔型AUTOSELECT行为的关键。 根据当前区域设置自动选择没有特定用户选择的曲目时,会考虑AUTOSELECT = true的曲目。 当用户为字幕语言环境选择“默认”时,该功能目前仅用于字幕轨道。 关联的值是一个整数,其中非0表示TRUE。 这是个可选的选项; 如果未指定,则AUTOSELECT默认为TRUE。

常量值:“is-autoselect”

KEY_IS_DEFAULT

Added in API level 19
String KEY_IS_DEFAULT

轨道的布尔DEFAULT行为的关键。 在没有特定用户选择的情况下选择具有DEFAULT = true的音轨。 当用户为字幕语言环境选择“默认”时,该功能目前仅用于字幕轨道。 关联的值是一个整数,其中非0表示TRUE。 这是个可选的选项; 如果未指定,则认为DEFAULT为FALSE。

常量值:“is-default”

KEY_IS_FORCED_SUBTITLE

Added in API level 19
String KEY_IS_FORCED_SUBTITLE

字幕轨道的FORCED字段的关键字。 如果是强制字幕轨道,则为真。 强制字幕轨道对内容非常重要,甚至在用户关闭字幕时也会显示。 它们被用来翻译外国/外国人的对话或标志。 关联的值是一个整数,其中非0表示TRUE。 这是个可选的选项; 如果未指定,则FORCED默认为FALSE。

常量值:“is-forced-subtitle”

KEY_I_FRAME_INTERVAL

Added in API level 16
String KEY_I_FRAME_INTERVAL

描述I帧之间以秒为单位表示的I帧频率的关键字。 关联的值是一个整数。

常量值:“i-frame-interval”

KEY_LANGUAGE

Added in API level 19
String KEY_LANGUAGE

描述内容语言的关键词,使用ISO 639-1或639-2 / T代码。 关联的值是一个字符串。

常数值:“语言”

KEY_LEVEL

Added in API level 23
String KEY_LEVEL

描述编码器使用的所需配置文件的关键字。 关联的值是一个整数。 常量在MediaCodecInfo.CodecProfileLevel中声明。 指定所需配置文件时,此键用作进一步提示,并仅支持指定级别的编解码器。

如果未指定 profile则此键将被忽略。

也可以看看:

常数值:“级别”

KEY_MAX_HEIGHT

Added in API level 19
String KEY_MAX_HEIGHT

描述视频解码器格式中内容的最大预期高度的关键字,以防视频内容中的分辨率发生变化。 关联的值是一个整数

常数值:“最大高度”

KEY_MAX_INPUT_SIZE

Added in API level 16
String KEY_MAX_INPUT_SIZE

描述由此MediaFormat描述的数据缓冲区的最大字节数的关键字。 关联的值是一个整数

常量值:“最大输入大小”

KEY_MAX_WIDTH

Added in API level 19
String KEY_MAX_WIDTH

描述视频解码器格式中内容的最大预期宽度的关键字,以防视频内容中的分辨率发生变化。 关联的值是一个整数

常量值:“最大宽度”

KEY_MIME

Added in API level 16
String KEY_MIME

描述MediaFormat的MIME类型的关键字。 关联的值是一个字符串。

常数值:“mime”

KEY_OPERATING_RATE

Added in API level 23
String KEY_OPERATING_RATE

描述编解码器需要操作的视频或音频采样率的所需操作帧速率的关键字。

关联的值是一个整数或一个浮点,表示每秒帧数或每秒采样数

这用于高速/慢动作视频捕捉,其中视频编码器格式包含目标回放速率(例如30fps),但组件必须能够处理高操作捕捉速率(例如240fps)。

编解码器将使用此速率进行资源规划并设置操作点。

常数值:“运行率”

KEY_PCM_ENCODING

Added in API level 24
String KEY_PCM_ENCODING

描述原始音频采样编码/格式的密钥。

关联的值是一个整数,使用 AudioFormat .ENCODING_PCM_值之一。

这是音频解码器和编码器在MediaCodec.configure(…)调用期间指定所需原始音频采样格式的可选键。 使用MediaCodec.getInput / OutputFormat(…)确认实际格式。 对于PCM解码器,此键指定输入和输出采样编码。

如果指定了音频数据的样本格式,则该键也被 MediaExtractor用于指定。

如果缺少此键,则原始音频采样格式将被标记为16位短。

常量值:“pcm-encoding”

KEY_PRIORITY

Added in API level 23
String KEY_PRIORITY

描述所需编解码器优先级的密钥。

关联的值是一个整数。 较高的值表示较低的优先级

目前只支持两个级别:
0:实时优先级 - 意味着编解码器应实时支持给定的性能配置(例如帧速率)。 如果尽力而为的性能不适合,这应该只能用于媒体播放,捕获以及可能的实时通信场景。
1:非实时优先级(尽力而为)。

这是编解码器配置和资源规划中使用的提示 - 了解应用程序的实时需求; 但是,由于媒体组件的性质,性能无法保证。

常数值:“优先级”

KEY_PROFILE

Added in API level 21
String KEY_PROFILE

描述编码器使用的所需配置文件的关键字。 关联的值是一个整数。 常量在MediaCodecInfo.CodecProfileLevel中声明。 此密钥用作提示,仅在指定配置文件的编解码器中受支持。 注意:编解码器可以使用指定配置文件中的所有可用编码工具。

也可以看看:

常数值:“配置文件”

KEY_PUSH_BLANK_BUFFERS_ON_STOP

Added in API level 19
String KEY_PUSH_BLANK_BUFFERS_ON_STOP

如果在配置视频解码器渲染到表面时指定,则会导致解码器输出“空白”,即停止时将黑色帧输出到表面以清除任何先前显示的内容。 关联的值是一个值为1的整数。

常量值:“push-blank-buffers-on-shutdown”

KEY_REPEAT_PREVIOUS_FRAME_AFTER

Added in API level 19
String KEY_REPEAT_PREVIOUS_FRAME_AFTER

仅在以“表面输入”模式配置视频编码器时适用。 如果没有可用的新帧,相关的值就会很长,并给出以微秒为单位的时间,之后提交给编码器的帧将重复(一次)。

常量值:“repeat-previous-frame-after”

KEY_ROTATION

Added in API level 23
String KEY_ROTATION

描述输出表面上所需顺时针旋转的键。 此密钥仅在使用输出表面配置编解码器时使用。 关联的值是一个整数,代表度数。 支持的值是0,90,180或270.这是一个可选字段; 如果未指定,则旋转默认为0。

也可以看看:

常数值:“旋转角度”

KEY_SAMPLE_RATE

Added in API level 16
String KEY_SAMPLE_RATE

描述音频格式采样率的密钥。 关联的值是一个整数

常数值:“采样率”

KEY_SLICE_HEIGHT

Added in API level 23
String KEY_SLICE_HEIGHT

描述多平面(YUV)视频字节缓冲区布局平面高度的关键。 切片高度(或平面高度/垂直步幅)是在字节缓冲区中从Y平面顶部到U平面顶部必须跳过的行数。 本质上U平面的偏移量是sliceHeight * stride。 U / V平面的高度可以根据颜色格式进行计算,但通常不确定,取决于设备和版本。 关联的值是一个整数,表示行数。

常量值:“切片高度”

KEY_STRIDE

Added in API level 23
String KEY_STRIDE

描述视频字节缓冲区布局跨度的关键。 步幅(或行增量)是像素的索引与直接在下面的像素的索引之间的差异。 对于YUV 420格式,步幅对应于Y平面; U和V平面的跨度可以根据颜色格式进行计算,但它通常是未定义的,取决于器件和发布。 关联的值是一个整数,表示字节数。

常数值:“迈步”

KEY_TEMPORAL_LAYERING

Added in API level 21
String KEY_TEMPORAL_LAYERING

描述时间分层模式的关键。 这是一个仅适用于视频编码器的可选参数。 使用getInputFormat()configure查询,如果编码器支持所需要的模式。 支持的值是webrtc.vp8.1-layerwebrtc.vp8.2-layerwebrtc.vp8.3-layer ,并none 如果编码器不支持时间分层,则输入格式将不具有此密钥的条目。 关联的值是一个字符串。

常量值:“ts-schema”

KEY_TRACK_ID

Added in API level 24
String KEY_TRACK_ID

描述媒体轨道内容的唯一ID的密钥。

该密钥由MediaExtractor 某些提取器提供同一音轨的多种编码(例如FLAC和WAV的浮动音轨可通过MediaExtractor表示为两个音轨:用于向后兼容的普通PCM音轨以及用于增加保真度的浮动PCM音轨类似地,杜比视觉提取器可以提供DV轨道的基线SDR版本。)此密钥可用于识别哪些MediaExtractor轨道引用了相同的底层内容。

The associated value is an integer.

常量值:“track-id”

KEY_WIDTH

Added in API level 16
String KEY_WIDTH

描述视频格式中内容宽度的关键字。 关联的值是一个整数

常数值:“宽度”

MIMETYPE_AUDIO_AAC

Added in API level 21
String MIMETYPE_AUDIO_AAC

常数值:“audio / mp4a-latm”

MIMETYPE_AUDIO_AC3

Added in API level 21
String MIMETYPE_AUDIO_AC3

常数值:“audio / ac3”

MIMETYPE_AUDIO_AMR_NB

Added in API level 21
String MIMETYPE_AUDIO_AMR_NB

常数值:“audio / 3gpp”

MIMETYPE_AUDIO_AMR_WB

Added in API level 21
String MIMETYPE_AUDIO_AMR_WB

常量值:“audio / amr-wb”

MIMETYPE_AUDIO_EAC3

Added in API level 23
String MIMETYPE_AUDIO_EAC3

常数值:“audio / eac3”

MIMETYPE_AUDIO_FLAC

Added in API level 21
String MIMETYPE_AUDIO_FLAC

常数值:“audio / flac”

MIMETYPE_AUDIO_G711_ALAW

Added in API level 21
String MIMETYPE_AUDIO_G711_ALAW

常数值:“audio / g711-alaw”

MIMETYPE_AUDIO_G711_MLAW

Added in API level 21
String MIMETYPE_AUDIO_G711_MLAW

常数值:“audio / g711-mlaw”

MIMETYPE_AUDIO_MPEG

Added in API level 21
String MIMETYPE_AUDIO_MPEG

常量值:“audio / mpeg”

MIMETYPE_AUDIO_MSGSM

Added in API level 21
String MIMETYPE_AUDIO_MSGSM

常数值:“audio / gsm”

MIMETYPE_AUDIO_OPUS

Added in API level 21
String MIMETYPE_AUDIO_OPUS

常量值:“audio / opus”

MIMETYPE_AUDIO_QCELP

Added in API level 21
String MIMETYPE_AUDIO_QCELP

常量值:“audio / qcelp”

MIMETYPE_AUDIO_RAW

Added in API level 21
String MIMETYPE_AUDIO_RAW

常数值:“audio / raw”

MIMETYPE_AUDIO_VORBIS

Added in API level 21
String MIMETYPE_AUDIO_VORBIS

常数值:“audio / vorbis”

MIMETYPE_TEXT_CEA_608

Added in API level 21
String MIMETYPE_TEXT_CEA_608

CEA-608隐藏式字幕数据的MIME类型。

常数值:“text / cea-608”

MIMETYPE_TEXT_VTT

Added in API level 21
String MIMETYPE_TEXT_VTT

WebVTT字幕数据的MIME类型。

常量值:“text / vtt”

MIMETYPE_VIDEO_AVC

Added in API level 21
String MIMETYPE_VIDEO_AVC

常数值:“video / avc”

MIMETYPE_VIDEO_DOLBY_VISION

Added in API level 24
String MIMETYPE_VIDEO_DOLBY_VISION

常值:“视频/杜比视觉”

MIMETYPE_VIDEO_H263

Added in API level 21
String MIMETYPE_VIDEO_H263

常数值:“video / 3gpp”

MIMETYPE_VIDEO_HEVC

Added in API level 21
String MIMETYPE_VIDEO_HEVC

Constant Value: "video/hevc"

MIMETYPE_VIDEO_MPEG2

Added in API level 21
String MIMETYPE_VIDEO_MPEG2

常量值:“video / mpeg2”

MIMETYPE_VIDEO_MPEG4

Added in API level 21
String MIMETYPE_VIDEO_MPEG4

常数值:“video / mp4v-es”

MIMETYPE_VIDEO_RAW

Added in API level 21
String MIMETYPE_VIDEO_RAW

常数值:“视频/原始”

MIMETYPE_VIDEO_VP8

Added in API level 21
String MIMETYPE_VIDEO_VP8

常量值:“video / x-vnd.on2.vp8”

MIMETYPE_VIDEO_VP9

Added in API level 21
String MIMETYPE_VIDEO_VP9

常量值:“video / x-vnd.on2.vp9”

Public constructors

MediaFormat

Added in API level 16
MediaFormat ()

创建一个空的MediaFormat

Public methods

containsKey

Added in API level 16
boolean containsKey (String name)

如果给定名称的键存在于格式中,则返回true。

Parameters
name String
Returns
boolean

createAudioFormat

Added in API level 16
MediaFormat createAudioFormat (String mime, 
                int sampleRate, 
                int channelCount)

创建最小的音频格式。

Parameters
mime String: The mime type of the content.
sampleRate int: The sampling rate of the content.
channelCount int: The number of audio channels in the content.
Returns
MediaFormat

createSubtitleFormat

Added in API level 19
MediaFormat createSubtitleFormat (String mime, 
                String language)

创建最小的字幕格式。

Parameters
mime String: The mime type of the content.
language String: The language of the content, using either ISO 639-1 or 639-2/T codes. Specify null or "und" if language information is only included in the content. (This will also work if there are multiple language tracks in the content.)
Returns
MediaFormat

createVideoFormat

Added in API level 16
MediaFormat createVideoFormat (String mime, 
                int width, 
                int height)

创建一个最小的视频格式。

Parameters
mime String: The mime type of the content.
width int: The width of the content (in pixels)
height int: The height of the content (in pixels)
Returns
MediaFormat

getByteBuffer

Added in API level 16
ByteBuffer getByteBuffer (String name)

返回ByteBuffer键的值。

Parameters
name String
Returns
ByteBuffer

getFeatureEnabled

Added in API level 21
boolean getFeatureEnabled (String feature)

返回要启用的功能( true )还是禁用的功能( false )。

Parameters
feature String: the name of a MediaCodecInfo.CodecCapabilities feature.
Returns
boolean
Throws
IllegalArgumentException if the feature was neither set to be enabled nor to be disabled.

getFloat

Added in API level 16
float getFloat (String name)

返回浮点键的值。

Parameters
name String
Returns
float

getInteger

Added in API level 16
int getInteger (String name)

返回整数键的值。

Parameters
name String
Returns
int

getLong

Added in API level 16
long getLong (String name)

返回长键的值。

Parameters
name String
Returns
long

getString

Added in API level 16
String getString (String name)

返回字符串键的值。

Parameters
name String
Returns
String

setByteBuffer

Added in API level 16
void setByteBuffer (String name, 
                ByteBuffer bytes)

设置ByteBuffer键的值。

Parameters
name String
bytes ByteBuffer

setFeatureEnabled

Added in API level 21
void setFeatureEnabled (String feature, 
                boolean enabled)

设置要启用的功能( true )还是禁用的功能( false )。 如果enabledtrue ,则要求该功能存在。 否则,该功能被要求不存在。

Parameters
feature String: the name of a MediaCodecInfo.CodecCapabilities feature.
enabled boolean

也可以看看:

setFloat

Added in API level 16
void setFloat (String name, 
                float value)

设置浮点键的值。

Parameters
name String
value float

setInteger

Added in API level 16
void setInteger (String name, 
                int value)

设置整数键的值。

Parameters
name String
value int

setLong

Added in API level 16
void setLong (String name, 
                long value)

设置长键的值。

Parameters
name String
value long

setString

Added in API level 16
void setString (String name, 
                String value)

设置字符串键的值。

Parameters
name String
value String

toString

Added in API level 16
String toString ()

返回对象的字符串表示形式。 通常, toString方法返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。

ObjecttoString方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @ ”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Returns
String a string representation of the object.

Hooray!