从Android 8.0开始,media_profiles.xml/media_profiles_ducam.xml(双摄项目)成为了配置视频画质、格式、帧率等参数的文件了,而不同于之前7.0上放在MediaProflie.cpp中配置了。
1.确认codec格式及目前的支持情况
//支持mp4/3gp这两种文件格式
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
//帧率30、60
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
//摄像头id 0、1、2
<!ATTLIST EncoderProfile cameraId (0|1|2) #REQUIRED>
//视频编码格式
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
//视频输出文件格式mp4、3gp
<!ELEMENT EncoderOutputFileFormat EMPTY>
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
2.CamcorderProfiles
0是后摄 1是前摄 2是双后摄中的副摄像头 3是双前摄中的副摄像头如果需要添加cameraId,直接copy整个cameraID目录下的item并按需要修改特定的item即可
<CamcorderProfiles cameraId="0">
<CamcorderProfiles cameraId="1">
<CamcorderProfiles cameraId="2">
每一个都是一个组合,包含了很多item,里面包含很多组参数
3.具体参数
在Android O中,在CamcorderProfiles组合中如果要添加新的item,quality的值一定要在/frameworks/av/media/libmedia/MediaProfiles.cpp的const MediaProfiles::NameToTagMap MediaProfiles::sCamcorderQualityNameMap[]中能够找到,而且不能自行在此map表中添加,否则会VTS 测试fail。
<CamcorderProfiles>
//format表示文件格式,格式可以直接改为MPEG4,duration在limitation限制的APP中有用(比如彩信),30代表30s
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h263" //codec格式h263,可改成支持的格式h263、h264、MPEG4
bitRate="192000"
width="176" //宽
height="144" //高
frameRate="20" /> //视频帧率
<Audio codec="aac" //audio codec格式
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="3gp" duration="30">
<Video codec="m4v"
bitRate="1000000"
width=