1、media_profiles.xml解析、
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED> 支持mp4/3gp這兩種視頻文件格式
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED> 幀率30、60
<!ATTLIST EncoderProfile cameraId (0|1|2) #REQUIRED> 攝像頭id 0、1、2
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED> 視頻編碼格式
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED> 視頻輸出文件格式mp4、3gp
2、media_profile.xml解析 -- 每種size對應的編解碼配置
<EncoderProfile quality="low" fileFormat="3gp" duration="60">? ?
<Video codec="h264"
bitRate="128000"? ?//筆者瞭解到這個改動請跟平臺廠商聯繫,不同的視頻編解碼和size 存在速率邊界
width="176"
height="144"
frameRate="30" /> //這個有sensor和系統性能決定,有的可能支持不到30fps
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
3、media_profile.xml解析 -- 平臺硬件支持限制
<VideoEncoderCap name="h264" enabled="true" //編解碼264是否支持
minBitRate="64000" maxBitRate="100000000" //不用的size對於編解碼速率不同最小最大邊界
minFrameWidth="176" maxFrameWidth="3840" //size width 支持最小最大
minFrameHeight="144" maxFrameHeight="2160" //size height支持最小最大
minFrameRate="15" maxFrameRate="30" /> //size 幀率支持最小最大
4、編解碼分爲三種正常錄像/timelapsel延時錄像(也可以叫慢錄)/highspeed高速錄像(也可以叫快錄)
例如:low -- timelapselow --highspeedlow 具體代碼如最下
代碼地址:/frameworks/av/media/libmedia/MediaProfiles.cpp
const MediaProfiles::NameToTagMap MediaProfiles::sCamcorderQualityNameMap[] = {
{"low", CAMCORDER_QUALITY_LOW}, 0
{"high", CAMCORDER_QUALITY_HIGH}, 1
{"qcif", CAMCORDER_QUALITY_QCIF}, 2
{"cif", CAMCORDER_QUALITY_CIF}, 3
{"480p", CAMCORDER_QUALITY_480P}, 4
{"720p", CAMCORDER_QUALITY_720P}, 5
{"1080p", CAMCORDER_QUALITY_1080P}, 6
{"2160p", CAMCORDER_QUALITY_2160P}, 7
{"qvga", CAMCORDER_QUALITY_QVGA}, 8
{"timelapselow", CAMCORDER_QUALITY_TIME_LAPSE_LOW}, 1000
{"timelapsehigh", CAMCORDER_QUALITY_TIME_LAPSE_HIGH},1001
{"timelapseqcif", CAMCORDER_QUALITY_TIME_LAPSE_QCIF}, 1002
{"timelapsecif", CAMCORDER_QUALITY_TIME_LAPSE_CIF}, 1003
{"timelapse480p", CAMCORDER_QUALITY_TIME_LAPSE_480P}, 1004
{"timelapse720p", CAMCORDER_QUALITY_TIME_LAPSE_720P},1005
{"timelapse1080p", CAMCORDER_QUALITY_TIME_LAPSE_1080P},1006
{"timelapse2160p", CAMCORDER_QUALITY_TIME_LAPSE_2160P}, 1008
{"timelapseqvga", CAMCORDER_QUALITY_TIME_LAPSE_QVGA}, 1007
{"highspeedlow", CAMCORDER_QUALITY_HIGH_SPEED_LOW}, 2000
{"highspeedhigh", CAMCORDER_QUALITY_HIGH_SPEED_HIGH},2001
{"highspeed480p", CAMCORDER_QUALITY_HIGH_SPEED_480P},2002
{"highspeed720p", CAMCORDER_QUALITY_HIGH_SPEED_720P},2003
{"highspeed1080p", CAMCORDER_QUALITY_HIGH_SPEED_1080P},2004
{"highspeed2160p", CAMCORDER_QUALITY_HIGH_SPEED_2160P},2005
};